在线约会网站的统计数据


10

我很好奇在线约会系统如何使用调查数据来确定匹配项。

假设他们具有过去比赛的结果数据(例如1 =幸福结婚,0 =没有第二个约会)。

接下来,假设他们有两个偏好问题,

  • “您喜欢户外活动多少?(1 =非常不喜欢,5 =非常喜欢)”
  • “您对生活有多乐观?(1 =非常不喜欢,5 =非常喜欢)”

还假设对于每个偏好问题,他们都有一个指标“配偶分享您的偏好有多重要?(1 =不重要,3 =非常重要)”

如果他们每对都有这4个问题,以及比赛是否成功的结果,那么将使用该信息预测未来比赛的基本模型是什么?


2
我以为成功的比赛是女孩漂亮或男人有钱时发生的。其他一切都是次要的。
2011年

4
检查blog.okcupid.com-他们在哪里谈论基础匹配模型。
Felix S

您能否提及您想更深入地研究什么?迈克尔的答案是一个相当扎实的概述。

如果您阅读了EHarmony的专利(专利6,735,568- google.com/…),则其系统使用主成分分析,因子分析的组合,并使用神经网络。正如其他人提到的那样,诸如K-NN,CARTS和GLM之类的方法也可以很好地工作。
克里斯·西莫卡特

@ChrisSimokat-哇!非常感谢您的神奇链接。不过那很有趣。我从没想过您可以“版权”使用统计方法和算法。
d_a_c321

Answers:


4

我曾经与某人聊天,该人为使用统计技术的一个在线约会网站工作(他们可能宁愿我不说谁)。很有意思-首先,他们使用了非常简单的方法,例如轮廓向量之间的距离最近的邻居具有euclidiean或L_1(城市街区)的距离,但是对于匹配两个太相似的人是好是坏,存在争议事情。然后他继续说,现在他们已经收集了很多数据(谁对谁,谁约会的人,谁结婚等等)感兴趣,他们正在使用它来不断地重新训练模型。在增量批处理框架中进行的工作,在此框架中,他们使用一批数据定期更新其模型,然后重新计算数据库上的匹配概率。很有趣的东西,但是我


3

您要求一个简单的模型。这是我从R代码开始的方式:

 glm(match ~ outdoorDif*outdoorImport + optimistDif*optimistImport,
     family=binomial(link="logit"))

outdoorDif =两个人对他们享受户外活动的回答的差异。outdoorImport =两项比赛的平均分数,有关一场比赛对享受户外活动的重要性的重要性。

*表示前面和后面的术语是相互影响的,并且也分别包含在内。

您建议匹配数据是二进制的,只有两个选项是“幸福的婚姻”和“没有第二个约会”,因此这就是我在选择Logit模型时所假定的。这似乎不现实。如果您有两个以上的可能结果,则需要切换到多项式或有序logit或某些此类模型。

正如您所建议的,如果有人尝试多次匹配,那么在模型中考虑这可能是一件非常重要的事情。做到这一点的一种方法可能是使用单独的变量来指示每个人先前尝试进行的匹配的次数,然后将二者进行交互。


感谢您的答复。.我给您赏金!:)这似乎是一个好方法。也许,如果您有N个问题适合M个类别(例如,运动问题),则可以使用该类别内重要性和差异的平均值来丰富模型,并将其添加为附加项。这不是完美的,但这可能是捕获多个相关变量之间相互作用的简单方法。再次感谢您,很高兴听到其他未解决您问题的想法;)。
d_a_c321

您是否不应该先将答案标准化?如果每个人都喜欢户外活动,那么户外活动的回答就应该变得不那么重要了,因为这将很难预测兼容性。
Sklivvz 2011年

@Skliwz,我不确定您如何标准化多选(常规)答案。另外,请记住,有时由于以下原因而需要对连续预测变量进行线性变换:stats.stackexchange.com/q/7112/3748和此处:stats.stackexchange.com/q/19216/3748,但它们不会改变排除一些异常计算问题的模型预测。如果每个人都喜欢户外活动,那么户外活动和户外活动的答案就无关紧要了,但是对于我指定的模型,我认为这并不是真正的问题。(并不是我的模型是完美的)
Michael Bishop

1

一种简单的方法如下。

对于两个偏好问题,取两个受访者的回答之间的绝对差,给出两个变量,例如z1和z2,而不是四个。

对于重要性问题,我可以创建一个将两个答案结合在一起的分数。如果响应是(1,1),则我给一个1,一个(1,2)或(2,1)得到一个2,一个(1,3)或(3,1)得到一个3,(2,3)或(3,2)得到4,而(3,3)得到5。我们称其为“重要性分数”。另一种选择是仅使用max(response),而不是5给出3个类别,但我认为5类别版本更好。

现在,我将创建十个变量x1-x10(为具体起见),所有这些变量的默认值为零。对于第一个问题的重要性得分为1的那些观察,x1 = z1。如果第二个问题的重要性分数也等于1,则x2 = z2。对于那些第一个问题的重要性得分为2的观察,x3 = z1,如果第二个问题的重要性得分为2,则x4 = z2,依此类推。对于每个观察,恰好x1,x3,x5,x7,x9!= 0,并且类似地对于x2,x4,x6,x8,x10。

完成所有这些操作后,我将对逻辑结果进行二进制回归,将二进制结果作为目标变量,并将x1-x10作为回归变量。

通过允许男性和女性受访者的重要性被不同地对待,例如a(1,2)!= a(2,1),我们可以按性别对响应进行排序,对此更复杂的版本可能会创建更多的重要性得分。

该模型的一个不足之处是,您可能对同一个人有多个观察结果,从广义上讲,这意味着“错误”并非独立于各个观察结果。但是,在样本中有很多人的情况下,我可能会一开始就忽略它,或者在没有重复的情况下构建样本。

另一个不足之处是,随着重要性的增加,偏好之间的给定差异对p(fail)的影响也会增加,这似乎是合理的,这暗示了(x1,x3,x5,x7,x9)系数之间的关系以及(x2,x4,x6,x8,x10)的系数之间。(可能不是完整的排序,因为对我来说,先验不清楚(2,2)重要性分数与(1,3)重要性分数之间的关系。)但是,我们并未在模型中强加此顺序。一开始我可能会忽略它,然后看看结果是否令我感到惊讶。

这种方法的优点是它不对“重要性”和偏好响应之间的关系的功能形式强加任何假设。这与先前的不足意见相抵触,但我认为缺少一种功能形式可能比相关的未能考虑系数之间的预期关系更有利。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.