社交网络A/B测试的陷阱

由Brenton McMenamin

在OkCupid,我经常被要求帮助运行A/B测试,以衡量新功能或设计改变会对我们的用户产生什188bet金宝搏官网么样的影响。进行A/B测试的通常方法是将用户随机分成两组,给每一组不同的产品版本,然后寻找两组用户的行为差异。

在典型的a /B测试中,随机分配是基于每个用户进行的。例如,如果我们重新设计我们的注册页面,那么一半的新用户将会看到新页面(“测试组”),而剩下的用户将会看到旧页面并以此作为基准(“控制组”)。按用户随机分配是一种简单而强大的方法,可以测试新功能是否改变了用户行为(新注册页面是否吸引了更多用户注册?)

对于大多数测试情况来说,这是一个完美的工具。不幸的是,如果你在测试一款严重依赖用户互动的产品——比如一款约会应用——按每个用户进行随机分配可能会导致不可靠的实验和误导性的结论。

为什么按用户分配会失败

OkCupid的目的是让用户能够相互交188bet金宝搏官网谈,所以我们经常想要测试一些新功能,这些功能旨在让用户与用户之间的交互更容易或更有趣。然而,在基于每个用户的基础上进行随机分配的用户对用户特性上运行A/B测试是很困难的。

举个例子:我们的一名开发者创造了一个新的视频聊天功能,并想在面向所有用户发布前测试人们是否喜欢它。我可以做一个A/B测试,随机给一半的用户视频聊天,但他们会和谁一起使用这个功能呢?

视频聊天只能如果用户有功能,所以有两种方法可以运行这个实验:你可以让测试组的人视频聊天大家(包括对照组的人),或者你可以限制测试组只使用视频聊天和其他人,也碰巧分配给测试组。

这两种方法都有很大的局限性。

如果你让测试组和任何人使用视频聊天,对照组的人就不是真正的对照组,因为他们接触到了这个新的视频聊天功能。然而,这是一种奇怪、令人沮丧的半体验,人们可以与他们聊天,但他们不能主动与自己喜欢的人交谈。

所以,也许你决定将视频聊天限制在发送方和接收方都在测试组的对话中。这将使控制组免于视频聊天,但现在它将导致测试组用户的体验不均衡,因为视频聊天选项只会出现在随机的一组用户中。这可能会在许多方面改变他们的行为,从而使实验结果产生偏差:

  • 他们可能不会接受一个间歇性的功能(“我会忽略它,直到它经过beta测试”)。
  • 相反,他们可以这一功能和完全认同(“我只想视频聊天”),从而切断了对照组和测试组之间的联系。这对每个人来说都是雪上加霜——测试组会把自己限制在网站的一个小角落里,而对照组会收到一堆被忽略的信息和得不到回报的爱。

任何一种变通方法都会导致有偏差和不准确的实验结果。

高阶效应

每个用户分配的另一个限制是,你不能衡量“高阶效应”(如果你更注重商务,也称为网络效应或外部性)。当由新特性引起的更改泄露出测试组,并影响控制组的行为时,这些影响就会发生。

在上面的视频聊天的例子中就有这些效果的例子,但是这些更高阶的效果几乎可以从任何实验操作中产生——即使是一些简单的事情,也不会立刻让人觉得它们与用户对用户的交互有关。例如,假设我们想测试一个新规则,要求用户在他们的配置文件中输入500个字符的文本。

我们希望这个新规则能迫使测试组写更多有趣的个人资料,从而带来更好的网站体验——他们会得到更多更好的信息,因为其他用户对他们了解得更多。然而,我们也可以预期,这将改变控制组的人的体验——他们会看到突然涌入的用户写着有趣的文章,同时他们在网站上也会有更好的体验,因为他们会找到更有趣的人,他们想要发送消息。

因此,从理论上讲,这一改变将改善测试组和对照组用户的体验——这是我们希望向所有人发布的一个明显的胜利。然而,如果我们用按用户分配的方式进行A/B测试,我们可能不会认为这是一个明显的胜利,因为测试是在寻找对测试组的改进相对于对照组。

在这种情况下,溢出效应最终掩盖了对用户行为的真正更改,但是更改被掩盖了,因为改进得到了控制组的响应。高阶效果也可能产生虚幻的变化,但一旦你向所有人推出一个功能,这种变化就会消失。事实证明,你不能真正相信社交网络中的A/B测试。

使用每个社区的随机分配

一个替代按用户随机分配的方法是使用per-社区随机分配。在这种情况下,“社区”是指任何一组用户,其交互主要指向同一组中的其他用户。数据团队LinkedInInstagram他们已经讨论了基于社区的A/B测试的用途,但困难的部分是如何为你的特定产品定义一个“社区”。

定义用户社区的一种常见数学方法是使用社交图,然后应用图划分算法找到孤立的、非交互的群。

对于许多社交网站和应用程序来说,很容易翻译用户交互(如。例如,发送信息、交友、联系、跟踪)。每个用户都是一个节点,边被放置在有一些交互的节点之间。然后,您可以应用图分区方法——例如规范化的削减—将节点划分为组,组内连接数量多,组间连接数量少。

然而,约会应用的社交图与其他社交媒体平台上出现的社交图有些不同。在约会应用中,典型的用户专注于找新朋友聊天,而不是与现有的熟人保持联系,所以这个社区实际上是由“你身边的任何人”定义的,而不是“你有交往历史的人”。我没有建立一个社交网络来描述成对用户之间的联系,而是通过计算成对用户之间的联系频率来创建一个“地理社交网络”位置.当对该图进行图划分时,我们得到了一组地理区域,可以作为我们实验的不同测试区域。

定义地理社区

所以为实验定义地理区域很简单,对吧?你只需将每个城市随机分配到一个特定的实验条件。但是,所有人都知道,人口普查以无数种方式定义了城市和大都市地区的边界,结果是很难判断一个城市的边界在哪里。

当你意识到每个城市都没有一个统一的“约会市场”时,这就更难了。每个人都有自己独特的地理界限。住在市中心的人可能会和住在附近郊区的人交谈,但不会更进一步;但是住在郊区的人会和远郊的人交谈;然后这些郊区的人可能会和下一个城镇的人交谈。

然而,我可以采用数学方法来定义“最优”区域,通过使用Shi和Malik的方法绘制边界,使每个区域内的连接数量相对于跨区域出现的连接数量最大化规范化的削减图划分算法。

以下是该方法的概要(如果你想要真正的数学证明,你可以查看pdf格式的原始文件):

  1. 构建一个图来描述在一对美国/加拿大地点之间发送了多少消息,作为方形邻接矩阵一个(大小num_Locations——- - - - - -num_Locations).的价值一个j设置该位置用户之间发送的消息数给本地用户j.我没分清是消息的发送者还是接收者,所以一个是对称的。
  2. 计算拉普拉斯图,l,从邻接矩阵,一个,度矩阵,D,因为lD- - - - - -一个.度矩阵是一个对角线矩阵对角线上每个节点的度都是0。
  3. 计算特征分解l,并检查其特征值。每个完全隔离(即。,断开连接的)节点集将由一个特征向量表示,其相关特征值为0。这些区域的进一步分割是通过观察特征向量中的模式k最小的,非零特征值。的价值k可以根据您想要创建的区域数量而变化。

我不同k范围广泛(即。, 5到250),并通过测量区域之间的消息相对于每个区域内的消息的比例来测试每组区域在识别可分离用户社区方面做得如何。结果表明,美国和加拿大城市之间的最佳分离出现在36个区域的解决方案中。在定义这些区域之后,我们在未进入分割分析的新鲜实时数据上验证了可分割性,我发现约95%的交互(即。比如,消息、点赞、个人资料浏览等),发生在同一地区的两对用户之间。

这张地图向你展示了这些区域的样子。

https://techblog-static.188bet金宝搏官网okcupid.com/metroAreas_36_cleaned.html

结论

现在我们有一组区域(大多数)彼此之间不相互作用,我们可以在每个社区的基础上部署实验。这让我们能够准确地测试用户对用户交互的变化,并避免在整个社交网络中传播的高阶效应的有害影响。

然而,使用每个社区分配也有缺点。我不得不修改我们的统计分析,以反映我们现在有一个嵌套的实验设计(而不是每个用户被单独分配到一个组)。不幸的是,这种设计的统计力要小得多。

总而言之:A/B测试在概念上很简单,但如果你的产品包含任何你认为是“社交互动”的内容,那么执行起来就会很困难。由于用户之间的交互和高阶效应,标准的现成测试方法可能会产生误导。没有一种解决这个问题的方法可以适用于所有的产品。所以,我的最后一个建议是,你应该雇佣一些喜欢做实验的数据科学家。

最初发表在https://tech.188bet金宝搏官网okcupid.com2017年4月18日。

188bet金宝搏官网OkCupid科技博客

阅读OkCupid工程团队每天连接数百万人的188bet金宝搏官网故事

188bet金宝搏官网OkCupid科技博客

188bet金宝搏官网OkCupid的工程团队负责每天为数百万人配对。在OkCupid科技博客上阅读他们的故事188bet金宝搏官网

188bet金宝搏官网OkCupid科技博客

188bet金宝搏官网OkCupid的工程团队负责每天为数百万人配对。在OkCupid科技博客上阅读他们的故事188bet金宝搏官网