全世界只有3.14 % 的人关注了
数据与算法之美
欣赏 TED-Ed 带字幕视频, 或者看下面编写的文字版.
01
交友网站的背后是算法帝国
大家好,我叫 Christian Rudder,我是 OKCupid 网站的创办人之一。这个网站现在已经是全美最大的交友网站。
就象这网站上大多数其他人一样,我是学数学的,正如你想象的那样,我们擅于分析。我们把这方法也应用在爱情上。我们把它叫做"配对算法"。
基本上 OK Cupid 的配对算法帮助我们决定两个人是否应该约会。我们的整个业务都是基于这一点。
"算法"这个词说起来专业而高级,大家喜欢把它想成很大的一件事,但其实,算法只不过是一个系统的,一步一步的解决问题的方法。根本没有那么复杂。
现在,我将为大家解释我们怎样得出这一个特殊的算法。你会在这看到它是怎样成形的。
为什么算法如此重要?为什么我们要有这堂课?请注意我刚才提到的一个很重要的词:它们是一种"逐步"解决问题的方法,你或许也知道,电脑擅长于一步一步的运算过程。没有算法的电脑,基本上只是一个昂贵的镇纸。
02
简单原理
既然电脑已经普及到我们的日常生活,算法是无处不在。OK Cupid 配对算法背后的数学逻辑是非常简单的。就是一些加法,乘法,再来一点平方根。
不过,设计这套算法的关键部分,在于要找出那些神秘的人与人之间的相互吸引力,并把它设计成电脑可以计算的步骤,我们要做的第一件事就把人和数据关联起来,这样算法才能生效。
要最快的从人们那里得到数据,最好就是直接询问他们。我们决定 OK Cupid 应该向用户问问题,比如说:
"你会想要小孩吗?",
"你多久刷一次牙?",
"你喜欢看恐怖电影么?"。
也有严肃些的问题,比如:"你相信上帝么?"。
目前有很多问题在进行同类型配对上都很合适,就是当双方的答案相同时。比如,两个人都喜欢看恐怖电影可能配对得更成功。而一个人喜欢,另外一个人不喜欢的情况下,适配度就差点。
但如果碰到下面的问题 :"你喜欢成为关注的中心么?"如果交往中的双方都回答是,那他们可有大问题了。
我们很早就意识到了这一点,所以我们觉得需要在每个问题再收集多一些数据。我们不仅要人们回答自己的看法,也要他们回答所期待未来意中人如何回答。
这方法很有效,不过我们还要再多加一个维度。有些问题能表达人们的与众不同之处。比如,关于政治的问题," 焚烧书籍或者国旗,哪个更糟糕 ?"这能展露人们电影口味之外的东西.
同时,并不是所有问题都同等重要的,所以我们最后增加了一点判别数据权重的维度。任何 OK Cupid 的问题,你都可以告诉我们这问题对你的重要性,它的程度从"无关"到"必要"。
现在,每一个问题,我们有三个资讯提供给算法:
你的答案;
你希望别人怎么回答;也就是你潜在的意中人的答案;
这个问题对你有多重要?
有了这些信息,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 将两个人配对时,它按照我们刚介绍的步骤来運作,首先它收集你的答题的数据,然后它比较你的选项和你期待的对方选项,以简单的,数学的方法来进行。
这种能将现实世界的现象,转化为电脑芯片能读取的数据的能力,我认为,是现代最重要的一种技术。就像你用话语来给一个人讲故事,你是用算法来跟电脑讲故事。如果你学会了这种语言,你就可以去讲故事了。我希望我刚才的介绍能帮助你做到这点。
来源:遇见数学
版权归原作者所有,转载仅供学习使用,不用于任何商业用途,如有侵权请留言联系删除,感谢合作。
精品课程推荐:
选购数学科普正版读物
严选“数学思维好物”
送给孩子的益智礼物 | 办公室神器
算法工程师成长阅读 | 居家高科技
理工科男女实用型礼物精选
----点击头像关注----
超级数学建模
数据与算法之美
少年数学家
数锐学堂
惊喜酱(个人号)
玩酷屋COOL