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

由Brenton McMenamin

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

典型A / B测试中的随机分配是按用户完成的。例如,如果我们重新设计了我们的注册页面,我们的收入用户将获得新页面(“测试组”),其余的将获得旧页面并用作基线测量(“控制组”)。每用户随机分配是一种简单,强大的方法来测试,如果新功能更改用户行为(新的注册页面诱饵更多人注册?)。

这是大多数测试情况的​​完美工具。遗憾的是,如果您正在进行依赖于用户之间的交互的产品的测试 - 例如约会应用程序 - 在每用户的基础上进行随机分配可能导致不可靠的实验和误导性结论。

为什么每用户分配可能会失败

OkCupid的目的就是让用户互相交流188bet金宝搏官网,所以我们经常想要测试新功能,让用户间的互动更简单、更有趣。然而,很难在每个用户的基础上对用户对用户的功能进行随机分配的A/B测试。

这是一个例子:让我们说我们的一个开发人员建立了一个新的视频聊天功能,并希望在向所有用户推出它之前人们喜欢它。我可以做一个/ b试验,随机地给了一个用户的一半聊天......但他们会用谁使用这个功能?

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

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

如果你让测试组和任何人使用视频聊天,控制组的人就不是真正的控制组因为他们会接触到这个新的视频聊天功能。然而,这是一种奇怪的、令人沮丧的、不完整的体验,人们可以与他们聊天,但却不能与自己喜欢的人展开对话。

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

  • 他们可能不会买到一个间歇的功能(“我会忽略这一点,直到它从beta出来”)
  • 相反,他们可以(“我只想做视频聊天”),从而切断了控制组和测试组之间的联系。这会让所有人的情况变得更糟——测试组会把自己限制在网站的一个小角落里,而控制组会收到一堆被忽视的信息和没有回报的爱。

解决方法会导致偏见和不准确的实验结果。

高阶效应

每个用户分配的另一个限制是您无法衡量“高阶效应”(如果您更像Business-y,也称为网络效果或外部性)。当由新功能引起的变化泄漏出测试组并影响对照组中的行为时,发生这些效果。

上面的视频聊天示例有这些效果的示例,但是从几乎任何实验操作中都可能出现这些更高的顺序效果 - 即使是单独看出的简单事物也是如此,他们可以在用户到用户的交互中进行。例如,假设我们想测试一个新规则,要求用户将500个字符的文本放入其配置文件中。

我们期望这一新规则强制测试组写入更有趣的配置文件,这将导致网站上更好的体验 - 他们会得到更多,更好的消息,因为其他用户会更多地了解它们。However, we can also anticipate that this would change the experience for people in the control group — they’d see a sudden influx of users with interesting essays and also have an improved experience on the site because they’d find more interesting people that they want to message.

因此,这种变化理论上会改善测试组中的用户的经验以及对照组 - 我们希望向大家发射的明确胜利。但是,如果我们使用每用户分配测试它,我们可能不会将此视为明确的胜利,因为测试寻找对测试组的改进相对于对照组。

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

使用每个社区的随机分配

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

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

对于许多社交网站和应用来说,翻译用户互动(如。例如,发送信息、加为好友、联系、跟踪)。每个用户都是一个节点,边缘被放置在有一些交互的节点之间。然后,您可以应用图划分方法-例如标准化的削减—将节点划分为组,组内连接较多,组间连接相对较少。

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

定义地理社区

所以为实验定义地理区域很容易,对吧?你只是把每个城市随机分配到一个特定的实验条件下。但是,任何看过人口普查定义城市和都市区边界的人都知道,很难判断一个城市的边界在哪里。

当你意识到每个城市并没有一个统一的“约会市场”时,事情就变得更难了。每个人都定义自己独特的地理边界。住在市中心的人可能会和住在附近郊区的人交谈,但不会和更远的人交谈;但是住在郊区的人会和更远的郊区的人交谈;郊区的人可能会和下一个城镇的人交谈。

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

以下是该方法的一般轮廓(如果您想要实际的数学证据,则可以转到原始PDF):

  1. 建立一个图来描述有多少消息在美国/加拿大的位置之间发送作为平方邻接矩阵一个(大小num_Locations-经过-num_Locations).的价值一个j]设置为位于用户之间发送的消息数给位置上的用户j.我没有区分信息的发送者和接收者,所以一个是对称的。
  2. 计算拉普拉斯图,l,从邻接矩阵,一个,次数矩阵,D, 作为lD- - - - - -一个.学位矩阵只是对角线矩阵,其在对角线和零中的每个节点的程度。
  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科技博客

阅读来自工程团队的故事,每天连接数百万人

中等的是一个开放的平台,17亿读者来寻找洞察力和动态的思维。在这里,专家和未被发现的声音相似地潜入任何主题的核心,并将新的想法带到表面上。学到更多

关注与你有关的作家、出版物和主题,你会在你的主页和收件箱中看到它们。探索

如果你有故事要讲,有知识要分享,有观点要提供,欢迎回家。发布你对任何话题的想法都是很容易和免费的。开一个博客

获取媒体应用程序

一个按钮,称“在App Store上下载”,如果点击它将导致您到iOS App Store
一个按钮,上面写着“Get it on,谷歌Play”,如果点击它,你就会进入谷歌Play商店