您的位置:首页 > 职场人生

程序员 520 表白:我写算法只为找到你!

2019-05-19 12:02 1386 查看

明天又到了一年一度的520,面对大街上,朋友圈里情侣们的各色秀恩爱,单身程序员又要受到一万点伤害。

难道我注定要要一辈子散发着单身狗的清香?

究竟怎么样才能遇到我未来的另一半呢?

所幸的是,在今天这个时代,我们拥有互联网和大数据,它们给很多事情提供了便利,我们可以与很多人接触到——甚至是那些在几分钟前你想都不敢想的人。

当然,这其中也包括恋爱交友。没错,大数据和算法(Algorithm)可以帮你更快地找到理想伴侣。

本文经授权转载自DataGirls(ID:DataGirls)

美国交友网站OKCupid的创始人之一克里斯蒂安·鲁德尔(Christian Rudder)研究出了一种算法将两个人联系在一起,并基于一系列问题来检验他们的速配指数。他们的答案越匹配,他们的速配指数越高。

以下是他在TED-ed上的分享内容:


【TED-ed】线上约会背后的数学原理(Inside OKCupid: The math of online dating - Christian Rudder)

本次分享主要讲解了数据收集、吸引力量化、算法设计等OKcupid在对线上用户进行速配时使用的数学原理。


如何得到你与他/她的速配指数


你可能会问,我们如何能用数学来运算人与之间的吸引力呢?

首先,需要收集数据。

OKCupid通过让用户回答问题来收集数据。这些问题可以从像电影或歌曲品味,“你很邋遢吗”这样的小问题,或者“你想要什么样的孩子”一类的大问题。

很多人认为这些问题就是根据两个人喜好相互配对,人们有截然不同的回答时确实是这样。当两个人在回答问题上有分歧时,最好的方法就是收集数据,将答案与理想伴侣的答案进行比较,并为这些数据添加更多维度(比如,重要程度)。

例如,在你的生活中,特定问题扮演什么角色?他们的重要程度是多少?为了计算速配指数,计算机必须找到一种方法来比较每个问题的答案,每个问题的理想合作伙伴的答案,以及与别人的答案的重要性水平。

这一方法是使用加权比例尺来衡量每一级别的重要性,如下图所示:

毫不相关: 0分;不那么重要:1分;有点重要:10分;非常重要:50分;必须如此:250分

那么,计算机怎么运算出来速配指数的?

假设你是A,而电脑想要和你配对的人是B。那么整个问题就会变成:

B的答案有多符合你的期待?

答案会是一个分数。分母是你认为所有问题的重要性的总分数。分子是B的答案的总分数。某个人的得分取决于问题的回应是否符合期待。分母的多少则取决于你对问题的重视程度。

对每个问题都这样做,最后分数叠加起来变成百分数。最后一个百分比就是你的满意度——根据你的答案来看,你和B在一起有多开心。然后,再来计算B的满意度。

OKCupid使用的算法是将人A的满意度乘以B的满意度再开根号。最后得出一个数学表达式,也就是你与B在一起的幸福指数。


速配指数背后的算法优化


问题来了,为什么要用如此复杂算法呢?为什么不直接取平均数?

事实上,这叫做几何平均数。

表示一组数字的中心趋势或典型值的一种均值或平均值。(Rudder, 2013) 我们的数据本身取值范围非常广,属性差异很大。诸如,你的文学品味和你未来的计划,甚至“你是否相信上帝”。几何平均数在这种情况是最理想的解决方案。(最重要的是,即使是一个非常小的数据集,该算法仍然有用)。

边际误差 vs 可能速配度

再加上对边际误差的修正,也就是在调查结果中的随机抽样的统计学误差,使我们的结果更加精确。它总是显示你可能的最低速配度,因为他们希望A和B回答更多的问题,来增加可信度。

例如,如果A和B只回答了两个相同的问题,那么样本量的误差范围是50%。这意味着最高速配度是50%。下面我列出了一张表格,显示两个人必须回答多少问题,才能得到0.01的边际误差,或者具有99.99%的速配度。


速配指数高低有什么影响?


那么两个人的速配指数高低到底有什么用呢?

OkCupid的研究人员对此也很感兴趣。研究发现,速配指数实际上会影响发送消息的可能性,和把发送消息变成彼此聊天回话的概率。

例如,如果一个人被告知他与B只有30%的速配指数,那么有14.2%的机率他会发送消息,大约有10%的机会这条消息会转化为四条或多条消息的对话。然而,如果一个人被告知两人的速配指数是90%,那么发送消息的几率会上升到16.9%,单个消息变成四条或更多的对话的概率是17%。

发送信息的几率 VS 速配指数

形成对话的概率

尽管,人们对将算法引入到恋爱生活中还有很多担忧。比如说,算法过于依赖于用户的回答的诚实度和自我评估。也不是每个人都相信,仅仅通过数学公式就能帮他们找到理想伴侣。

但我相信用数据分析来进行交友的未来是非常广阔和令人兴奋的。如果你现在还没有恋人,非常希望在下一个情人节来临之前找到你的Mr.right or Ms.right,利用数据分析和数学算法应该是会是个不错的开始。

Roses are red

Violets are blue

I wrote this algorithm

Just to find you

参考文献:

1.Match Percentage. (n.d.). Retrieved April 26, 2016, from https://www.okcupid.com/help/match-percentages

2.Rudder, C. (2013, February 13). Inside OKCupid: The math of online dating.

3.Rudder, C. (2014). Dataclysm:Who We Are. New York: Crown Publishers.

4.Matthew Simonson(2016),OKCupid: The Math Behind Online Dating

5.Zoe Kleinman(2015),How to get a date using data this Valentine's Day

#欢迎来留言#

你有过用“程序员式的方法撩妹吗?

【END】

 热 文 推 荐 

☞ 比 Java 更具争议的 PHP,处处留坑?

微软将取缔 8 亿 Windows 10 用户的密码!

☞ To B 赛道上,“飞奔的大象”阿里会赢吗?

厉害!女学生偷师男子学校,变身区块链开发工程师

“我月入 3 万,每天都只想跳槽”

深扒! 币安被盗的7074.18枚比特币去哪了?

如何使用「番茄法」高效的写算法题?

面对互联网一线大厂,这些技术你需要了解!

刺激!华为程序员年薪200万 ?真相让人心酸!


你点的每个“在看”,我都认真当成了喜欢
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: