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

在一个典型的A / B测试的随机分配是在每用户的基础上完成的。举例来说,如果我们重新设计我们的注册页面,一半的来电用户将会获得新的页面(以下简称“试验组”),其余的将得到旧的页面,并作为基线措施(以下简称“对照组”)。每用户随机分配是一个简单,功能强大的测试方式,如果一项新功能,改变用户的行为(做了新的注册页面吸引更多的人来报名吗?)。

这对大多数测试情况下的理想工具。不幸的是,如果你正在做试验,在很大程度上依赖于用户之间的互动产品 - 如约会应用程序 - 在每个用户的基础上做随机分配可能会导致不可靠的试验和误导性的结论。

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

OkCupid的整点是让用户在通话彼此188bet金宝搏官网,所以我们经常要测试旨在使用户对用户交互更容易或更有趣的新功能。然而,这是难以运行的用户到用户的功能在每个用户的基础上做随机分配的A / B测试。

这里有一个例子:我们的开发人员的假设一个建立了一个新的视频聊天功能,想测试,如果它的人来发动我们所有的用户才喜欢它。我可以做一个A / B测试了随机视频聊天给我们的用户的一半......但谁,他们会使用与功能?

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

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

如果让与任何人测试组使用视频聊天,对照组中的人物不会真的是一个对照组,因为他们要接触到这种新的视频聊天功能。但是这是一个奇怪的,令人沮丧的,半经验,人们可以与他们交谈,但他们不能主动与他们喜欢的人的谈话。

因此,也许你决定限制视频聊天会话其中两个发送器和接收器测试小组。此举有助对照组免费视频聊天,但现在它会导致试验组中的用户不平坦的体验,因为视频聊天选项只会出现一组随机的用户。这可能会改变在许多方面是偏差的实验结果他们的行为:

  • 他们可能不会买入的特征是间歇性(“我会忽略这一点,直到它的测试版了”)

  • 相反,他们可以该功能并买入完全(“我只希望做视频聊天”),从而切断了控制组和测试组之间的接触。这将使事情变得更糟为大家 - 试验组将限制自己网站的一个小角落里,与对照组将有一堆忽略消息,并得不到回报的爱。

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

高阶效应

每个用户分配的另一个限制是,你不能衡量“高阶效应”(也被称为网络效应或外部性,如果你更多的业务-Y)。当由一个新的功能诱导的变化漏出试验组和对照组中影响行为,以及发生这些效果。

还有的在上面的视频聊天例如,这些效果的例子,但可以从几乎任何实验操作出现这些高阶效应 - 即使是简单的事情,不立即看起来他们挖掘到用户到用户交互。例如,假设我们想测试一个新的规则,要求用户将文本的500个字符到他们的个人资料。

我们预计这个新的规则,迫使试验组写出比较有趣的配置文件,这将导致该网站上获得更好的体验 - 他们会得到更多,更好的消息,因为其他用户会更多地了解他们。但是,我们也可以预见,这将改变经验的人,对照组 - 他们会看到有趣的文章用户的突然涌入,也有在网站上获得更佳的体验,因为他们会觉得更有趣的人们,他们想要的信息。

因此,这种变化将理论上提高了测试组中的用户体验,以及对照组 - 一个明确的胜利,我们将要推出给大家。但是,如果我们A / B与每个用户分配测试它,我们可能看不到这是一个明确的胜利,因为测试寻找改进测试组关系到对照组。

在这种情况下,溢出效应结束了屏蔽与用户行为的真正改变,但变化是模糊,因为改善来自于对照组遥相呼应。它也有可能用于高阶效应产生,一旦你推出一个功能出来大家,消失了一个虚幻的变化。事实证明,从社交网络的A / B测试你真的不能信任任何东西。

使用per-社区随机分配

一种可以替代的每个用户随机分配是使用per-社区随机分配。在这种情况下,“社区”是任何组的用户,其作用主要针对其他用户在同一组中的。数据在队LinkedInInstagram的已经讨论了自己的用途以社区为基础的A / B测试,但最困难的部分是搞清楚如何定义“社会”为您的特定产品。

一种常见的数学方法来定义用户群体是一个用户之间的关系进行建模社交图,然后应用图形分割算法查找隔离,非相互作用的基团。

对于许多社交网站和应用程序,很容易转换的用户交互(例如,消息,邀请好友,连接,以下)转换成的曲线图。每个用户是一个节点,并且边缘被放置在有一些相互作用的节点之间。然后,您可以将图形分割方法 - 如标准化切割- 到节点分割成与许多组内的连接和相对少的组之间的连接基团。

然而,婚姻关系的应用程序社交图谱是不同于其他社交媒体平台出现的有点不同。在约会应用,典型的用户专注于寻找新的人聊天,而不是保持与现有连接接触,因此社会是由“人,你附近的”真正的定义,而不是“人,你有相互作用的历史”。而不是建立一个社交网络来描述对用户之间的连接,我创建了一个“地理社交网络”,通过计算连接是如何频繁地对之间进行地点。当图形分割应用于该图中,我们得到了一组可以作为我们的实验不同的测试区域的地理区域。

定义地理社区

因此,定义地理区域的实验是容易的,对不对?你只要每个城市随机分配给特定的实验条件。但是......比任何人都知道谁已经看了无数的方法,对城市和地铁地区普查定义的边界,事实证明,这很难分辨某个城市的两端。

而且当你意识到没有一个共识“约会市场”与每个城市的相关变得更加困难。每个人定义自己的一套独特的地理边界的。有人说住市区可能跟生活在近郊的人,但没有进一步的;但在那些郊区的人会说话的人在更远的郊区;然后在这些郊区的人可能说话的人下一个城镇了。

不过,可以通过绘制最大化每个区域相对于连接的数量横跨使用区域施&Malik的发生内的连接的数量的界限取数学的方法来定义“最优”的区域标准化切算法图分割。

下面是该方法的概要(如果你想实际的数学证明,你可以去原始PDF):

  1. 建立一个图形来描述有多少消息被对美国/加拿大地区之间发送的方形邻接矩阵一个(尺寸NUM_LOCATIONS-通过-NUM_LOCATIONS)。在该值一个[一世Ĵ]设置为位置的用户之间发送的消息的数量一世在用户位置Ĵ。我没有被邮件的发送者或接收者之间的区别,所以一个是对称的。

  2. 计算图的拉普拉斯,大号从邻接矩阵,一个和度矩阵,d作为大号=d-一个。度矩阵就是对角线上,和零其他地方的每个节点的度对角矩阵。

  3. 计算的特征分解大号,并检查其特征值。每个完全隔离(,断开)节点集合将通过与0这些区域进一步分割的相关联的本征值是由在与所述本征向量看图案进行的本征向量来表示ķ最小的,非零特征值。的价值ķ可以根据你要多少地区做出改变。

我多样ķ在宽范围内(为5〜250)和测试有多好各组区域的那样在通过测量消息的相对于每一个区域中的消息的区域之间的比率确定可分离用户社区。事实证明,美国和加拿大城市中最佳的分离发生了36区的解决方案。确定这些地区,我们验证了新鲜的seperability,未进入细分分析实时数据,我发现所有的交互是〜95%(,消息,喜欢,剖面视图)对是那样的同一区域内的用户之间发生的。

这里有一个地图显示您这些区域的样子。

结论

现在我们有一组区域是(大部分)不与人交往,我们可以在每个社区的基础上部署实验。这让我们准确地测试更改用户到用户交互,避免高阶效应的恶劣影响是跨社交网络传播。

不过,也有缺点,使用每个社区分配。我不得不作出改变我们的统计分析,以反映我们现在有一个嵌套的实验设计(而不是每个用户被分配到一组独立)。不幸的是,这种设计大大减少统计力量。

结论:A / B测试的概念很简单,但如果你的产品涉及任何你会考虑“社会交往”可能难以执行。由于用户和高阶效应之间的相互作用,一个标准的现成的现成的测试方法可能会产生误导。没有解决这一点,将在所有产品的工作单进场。所以...我想我最后的建议是,你应该聘请一些数据科学家,像做实验。