在线交友背后的数学原理,有意思的数学

2017 年 7 月 12 日 算法与数学之美

欣赏 TED-Ed 带字幕视频, 或者看下面编写的文字版.  

来源:遇见数学 

编辑:Gemini







01

交友网站的背后是算法帝国

大家好,我叫 Christian Rudder,我是 OKCupid 网站的创办人之一。这个网站现在已经是全美最大的交友网站。


就象这网站上大多数其他人一样,我是学数学的,正如你想象的那样,我们擅于分析。我们把这方法也应用在爱情上。我们把它叫做"配对算法"。


基本上 OK Cupid 的配对算法帮助我们决定两个人是否应该约会。我们的整个业务都是基于这一点。


"算法"这个词说起来专业而高级,大家喜欢把它想成很大的一件事,但其实,算法只不过是一个系统的,一步一步的解决问题的方法。根本没有那么复杂。


现在,我将为大家解释我们怎样得出这一个特殊的算法。你会在这看到它是怎样成形的。


为什么算法如此重要?为什么我们要有这堂课?请注意我刚才提到的一个很重要的词:它们是一种"逐步"解决问题的方法,你或许也知道,电脑擅长于一步一步的运算过程。没有算法的电脑,基本上只是一个昂贵的镇纸。


02

简单原理

既然电脑已经普及到我们的日常生活,算法是无处不在。OK Cupid 配对算法背后的数学逻辑是非常简单的。就是一些加法,乘法,再来一点平方根


不过,设计这套算法的关键部分,在于要找出那些神秘的人与人之间的相互吸引力,并把它设计成电脑可以计算的步骤,我们要做的第一件事就把人和数据关联起来,这样算法才能生效。


要最快的从人们那里得到数据,最好就是直接询问他们。我们决定 OK Cupid 应该向用户问问题,比如说:

  • "你会想要小孩吗?",

  • "你多久刷一次牙?",

  • "你喜欢看恐怖电影么?"。

  • 也有严肃些的问题,比如:"你相信上帝么?"。


目前有很多问题在进行同类型配对上都很合适,就是当双方的答案相同时。比如,两个人都喜欢看恐怖电影可能配对得更成功。而一个人喜欢,另外一个人不喜欢的情况下,适配度就差点。


但如果碰到下面的问题 :"你喜欢成为关注的中心么?"如果交往中的双方都回答是,那他们可有大问题了。


我们很早就意识到了这一点,所以我们觉得需要在每个问题再收集多一些数据。我们不仅要人们回答自己的看法,也要他们回答所期待未来意中人如何回答


这方法很有效,不过我们还要再多加一个维度。有些问题能表达人们的与众不同之处。比如,关于政治的问题," 焚烧书籍或者国旗,哪个更糟糕 ?"这能展露人们电影口味之外的东西. 


同时,并不是所有问题都同等重要的,所以我们最后增加了一点判别数据权重的维度。任何 OK Cupid 的问题,你都可以告诉我们这问题对你的重要性,它的程度从"无关"到"必要"。


现在,每一个问题,我们有三个资讯提供给算法:

  1. 你的答案;

  2. 你希望别人怎么回答;也就是你潜在的意中人的答案;

  3. 这个问题对你有多重要?


有了这些信息,OK Cupid 可以知道两个人相处和谐程度如何。算法吃进数字,吐出打分后的结果。


03

举例说明


实际举例来说吧,看我们怎样把你和另外一个人进行配对,暂且称他为 "B"。你和 B 的适配度是基于你们双方都进行过回答的问题。姑且把这些共同问题称之为 "s"。


简单举例,我们用小样本的 "s",只需两个共同回答过的问题电脑会根据它算出适配度。


这里是我们的两道简单问题:

第一个是,"你有多杂乱无章?". 可供选择的答案选项有非常杂乱无章,一般,和非常有条理


我们假设你回答的是"非常有条理",你期待别人的回答是"非常有条理",并且对你来说,这个问题非常重要。


从你的回答可以认为, 基本上你就是个井井有条的有点洁癖的人。所以你也希望对方同样如此, 就这样简单。


我们假设 B 有些不同。他的回答是自己非常有条理,但是他也接受意中人回答"一般",并且这个问题于他而言不太重要。


好, 现在我们再看第二个问题,就是我们最开始举例的:"你喜欢成为关注的中心么?"


答题项只有"是"或者"否"。现在你的回答是"否",你希望别人怎样回答这栏答的是"否", 这个问题对于你而言, 显得不太重要。而B呢,他自己的回答是"是",他希望别人回答"否",因为他希望所有焦点都在他身上,而这个问题对他还算重要。


04

计算匹配度


现在,我们让电脑来处理一切。我们的第一步是,既然我们要用电脑来处理它,我们就需要给一些数值来定义比如"还算重要"和"非常重要",因为电脑需要把所有资料都转化成数字。


在 OK Cupid 上我们按如下级别:

  • "无所谓"是 0,

  • "不太重要"的值是1,

  • "还算重要"的值是 10,

  • "非常重要"的值是 50,

  • "绝对必要"的值是 250.


接下来, 算法要做两个简单的计算。第一个是你对B的回答给多少分,另外一个是,你给对方答题的满分是多少?


你可以指定 B 的答案在第一个有关条理性的问题上,对你是非常重要。它值50分,B 答对了。

第二个问题只有1分,因为你说这问题对你不太重要,B 答错了。所以B的回答在51分满分里拿到了50分。适配满意度是 98%。非常好。


算法的第二个问题是看 B 对你的满意程度。B给对于你有关条理性的回答给1分,对于第二个问题的答案给10分。满分11分,就是1+10.你得到了10分.

在第二个问题上,你俩彼此都满意。你的回答在B的满意度分数是10/11,百分比是91%。还不错。


最后一步是把两个适配度百分比放在一起,为你们俩个人打一个分数。为得到这点,算法把你们两人的得分相乘,然后开n次方根,n 就是问题的数目。


因为"s"-- 也就是问题的数目,在这个例子里,只是"2",我们得到的适配度百分比等于98% 乘以 91% 再开平方根。结果等于94%。


94%就是你和 B 之间的适配度百分比。这是通过数学方法来表达--你们彼此之间相处的愉快程度是怎样。


基于我们所知道的信息。为什么算法要相乘,而不是除?比如,把两个分数求平均值以后再开平方根?总的来说,这个公式叫几何平均数,它很适合处理差异很大的数据,以及代表不同属性的数据。


换句话说,它能完美的计算出浪漫爱情适配度。你有大范围的,数不清的数据值,就像刚说过的,有关电影的,有关政治的,有关宗教的,有关所有的一切。


凭直觉讲,以下情况很有道理。两个人彼此的满意度是50%,会好过那些两个人彼此满意度是0或者100的。因为爱慕应该是互相的。


在增加了对误差幅度的小修改后 --这种情况在问题量很小的时候会出现,就像我们刚举的运算实例一样--这套算法就可以运作了。


任何时候当 OK Cupid 将两个人配对时,它按照我们刚介绍的步骤来運作,首先它收集你的答题的数据,然后它比较你的选项和你期待的对方选项,以简单的,数学的方法来进行。


这种能将现实世界的现象,转化为电脑芯片能读取的数据的能力,我认为,是现代最重要的一种技术。就像你用话语来给一个人讲故事,你是用算法来跟电脑讲故事。如果你学会了这种语言,你就可以去讲故事了。我希望我刚才的介绍能帮助你做到这点。



往期精彩文章:

  1. 第一个被认为“科学家”的人:泰勒斯

  2. 数学思维比数学运算更重要

  3. 二十世纪的十大科学骗局

  4. 瞎扯现代数学的基础

  5. x背后的轶闻趣事

  6. 主宰这个世界的10大算法

  7. 16个让你烧脑让你晕的悖论

  8. 机器学习中距离和相似性度量方法

  9. 传说中的快排是怎样的

  10. 玻璃秘史:一个人 改变了全世界

  11. 程序人生的四个象限和两条主线

  12. 比特币的原理及运作机制

  13. 概率论公式,你值得拥有

  14. 分类算法之朴素贝叶斯算法

  15. 采样定理:有限个点构建出整个函数


长按二维码识别

欢迎大家把独特见解分享出来,投稿邮箱:

math_alg@163.com



登录查看更多
0

相关内容

数学是关于数量、结构、变化等主题的探索。
【硬核书】不完全信息决策理论,467页pdf
专知会员服务
336+阅读 · 2020年6月24日
【圣经书】《强化学习导论(2nd)》电子书与代码,548页pdf
专知会员服务
197+阅读 · 2020年5月22日
干货书《数据科学数学系基础》2020最新版,266页pdf
专知会员服务
315+阅读 · 2020年3月23日
做机器学习和AI必备的42个数学知识点
AI前线
8+阅读 · 2018年12月6日
第二章 机器学习中的数学基础
Datartisan数据工匠
12+阅读 · 2018年4月5日
[遇见数学] 2017回顾 | 曾经推荐过的好书
遇见数学
4+阅读 · 2017年12月26日
机器学习翻译基本原理
论智
5+阅读 · 2017年12月21日
GAN的数学原理
算法与数学之美
14+阅读 · 2017年9月2日
【原理】GAN的数学原理
GAN生成式对抗网络
8+阅读 · 2017年8月30日
大学数学不好,或许是数学教材的锅?
算法与数学之美
15+阅读 · 2017年8月1日
【基础数学】- 01
遇见数学
19+阅读 · 2017年7月25日
[有意思的数学] 参数估计
机器学习和数学
14+阅读 · 2017年6月4日
Arxiv
5+阅读 · 2019年4月21日
Arxiv
5+阅读 · 2018年1月23日
VIP会员
相关资讯
做机器学习和AI必备的42个数学知识点
AI前线
8+阅读 · 2018年12月6日
第二章 机器学习中的数学基础
Datartisan数据工匠
12+阅读 · 2018年4月5日
[遇见数学] 2017回顾 | 曾经推荐过的好书
遇见数学
4+阅读 · 2017年12月26日
机器学习翻译基本原理
论智
5+阅读 · 2017年12月21日
GAN的数学原理
算法与数学之美
14+阅读 · 2017年9月2日
【原理】GAN的数学原理
GAN生成式对抗网络
8+阅读 · 2017年8月30日
大学数学不好,或许是数学教材的锅?
算法与数学之美
15+阅读 · 2017年8月1日
【基础数学】- 01
遇见数学
19+阅读 · 2017年7月25日
[有意思的数学] 参数估计
机器学习和数学
14+阅读 · 2017年6月4日
Top
微信扫码咨询专知VIP会员