从Facebook社交网络中挖掘情侣关系
2016-06-15
之前在微信公众号上看过一篇文章叫《单身数学家如何通过数据挖掘找真爱》,一个叫麦金利的小伙在一个相亲网站上注册12个假账户,爬取25至45岁女性的资料,将收集到5000个样本用 K-means 算法分成七个类型后,他选择了其中两个他最感兴趣的类型,分别“量身定制”了个人资料,在收到了400多封私信后,终于找到了心目中的女神!
这位数学博士真是把数据挖掘和机器学习用在了解决个人问题的精准营销上,真是绝!作为单身屌丝算法男,对老司机的做法表示非常佩服。也一直跃跃欲试来着,正如前几天看到一则鸡汤所说:“真正的顺其自然,其实是竭尽所能之后的不强求,而非两手一摊的不作为。”耳边传来秦昊的一曲翻唱:“在千山万水人海相遇,喔原来你也在这里。”
最近重温了一篇Paper,给大家分享一些有趣的东西,HITS算法的提出者克莱因伯格,带着一个Facebook的工程师,把Facebook上的情侣关系分析了一桶,找到了一种只用网络结构就能识别情侣的方法,其效果甚至好于很多机器学习的高纬度模型训练。
我们知道,Facebook和微信一样,好友关系是双向的,不像Twitter、微博一样可以单向关注,所以Facebook的网络可以抽象为一个无向图。两个节点(账号)如果互加好友,则建立一条边。
正常来讲,一对情侣/夫妻在网上表现比较明显的是会有不少合照,以及相互访问对方的动态(各位可以脑补一下若干年前玩人人时的状态,会屌丝们会不会经常去看女神的主页?),但数据实证表明,当一个人的状态是“恋爱中”或者“已婚”时,判定与其同框合影最多和互访最多的人为情侣的概率只有41.5%和30%的准确率,而用克莱因伯格等提出的网络指标 Dispersion(有道翻译为:离差,有点别扭,下文还是用原单词吧),准确率达到了50%以上,对于已婚人士,甚至达到了60%+。怎么做到的呢?
以往研究者常常用“共同好友”来刻画关系强弱,他们称之为 Embeddedness(嵌入性)。克莱因伯格等人分析 Facebook 的抽样关系数据得出的结论是,共同好友越多的,不一定能够很好识别“情侣”关系。恰恰相反,很多情侣/伴侣的好友们,相互之间建立的连接并不多。比如:男生的同学圈、同事圈内的朋友可能相互认识,也可能认识男生的女朋友,但不太可能男生的同学圈的人都认识女生的同学圈(除了同校情侣)。
所以第一个结论是,共同好友数多的,不一定是情侣。事实上,在他们的实证数据中,识别共同好友数最多的人为情侣,其准确率才24%。看来很多情侣关系,还真是茫茫人海中相遇!所以同学圈、同事圈情侣要小心哦。
接下来 Dispersion 要出场了,从字眼来看,似乎正好跟 Embeddedness 唱反调,前者是分,后者是同。被你猜对了,这篇文章发现两个人的共同朋友当中,互相不认识且除了他俩外没有其他共同认识的人越多,这俩人是情侣的可能性就越大。所以 Dispersion 就定义为两者共同好友中互相不认识且除了他俩外没有其他共同认识的朋友的关系数量。
除此之外,文章还分析了超过1万对情侣从相识-恋爱-订婚-结婚的关系历程中,Dispersion 这个指标的变化,很有意思。他们发现,在关系确立的第一年里,动态互访(Profile Viewing)其实最能体现情侣关系,但是之后呢,看照片同现(Photo Viewing)和Dispersion指标就比动态互访要准多了。
为了验证 Dispersion 这个指标的鲁棒性,作者做了一件更残酷的事情。他们分析已经宣布在一起的情侣之间的 Dispersion ,发现这个指标越低的情侣,60天后越容易宣布恢复“单身”状态。所以从这里可以看出第二个结论,多认识对方朋友圈中与你朋友圈不熟的人,有助于情侣关系的稳固。
参考原文:
L. Backstrom, J. Kleinberg. Romantic Partnerships and the Dispersion of Social Ties: A Network Analysis of Relationship Status on Facebook. Proc. 17th ACM Conference on Computer Supported Cooperative Work and Social Computing (CSCW), 2014.