编译_七猫
UCLA(美国加州大学)的数学实验室里,克里斯·麦克金雷缩在他的办公间,一颗小小的灯泡和屏幕映射的微光就是凌晨三点唯一的光源。他在这里赶他的博士论文(题目:《大数据处理和并行计算方法》)。当电脑忙着编译代码的时候,他点开另外一个窗口,查看他的OkCupid收件箱。
对了,OkCupid是一个相亲网站。
现在来介绍一下我们的男主角:麦克金雷,35岁,未婚,身材干瘪,头发稀少,在外表上几乎没有什么竞争力。他是美国4000万网络相亲大军中的一员,从Match.com到J-Date再到e-Harmony,但凡是有点名气的相亲网站上,都有他的资料。自从9个月前跟前女友分手之后,麦克金雷就一直在寻找新的缘分,但始终没有结果。其中有一个网站,OkCupid,曾经依照它的算法给麦克金雷推荐了几十个与他“很般配”的姑娘,而麦克金雷给她们之中的大多数都发了自我介绍的信息。大多数人都无视了他的信息;只有六个跟他进行了初次约会,但没有一个能更进一步。
2012年6月的这个凌晨,麦克金雷的电脑编译着代码,另外一个窗口上则是他那冷清孤单的相亲网站资料页。这时候他突然醒悟过来,原来他犯了一个致命的错误:他一直像其他用户一样使用这个在线相亲网站,他现在意识到,他应该要像一个数学家那样相亲。
用算法找到你的灵魂伴侣
2004年,四个哈佛数学专业的学生创办了OkCupid,其卖点就是“用算法来找到你的灵魂伴侣”。这个网站精心设计了若干生活态度和心理测试题(他们甚至还开发了一个平台以供会员自行创建心理测试),会员们需要回答十个必答问题和若干个其他附加题目。这些题目都是选择题,覆盖面囊括政治、宗教、家庭、爱情、性甚至是智能手机品牌。比如,“下面哪种情况最可能吸引你去看电影?”或者“宗教和上帝在你的生活中到底有多重要?”
会员们不仅需要记录自己的答案(单选),还需要选择可接受的伴侣回答(可多选),以及认为这个问题有多重要(从“没有关系”到“至关紧要”)。据统计,该网站会员平均每人会回答350个问题。
回答的问题越多,匹配的精准度就越高—根据这些问题的答案数据,OkCupid的算法引擎会自动测算两个会员之间的匹配度,100%就是数学上的灵魂伴侣,于是,当然越接近100%的越好。
但就算是数学上,麦克金雷与洛杉矶女人的匹配度也很可悲。主要是因为,OkCupid在选择潜在匹配对象时,首先会锁定回答了同一个问题的人群,然后再根据性别性向进一步筛选,最后再根据答案计算两两之间在这个问题上的分值。问题是,麦克金雷都是随机选择问题的,而他回答的问题,最终看起来都是“不受欢迎”的问题,也就是说,回答这些问题的人很少。所以,在一个拥有200万女性的大都市里,起码有8万女性在使用OkCupid,可是麦克金雷的90分以上匹配者只有不到100个。在一个匹配度等同于存在感的网站上,他实际上就是一个透明人。
他意识到,他必须提升这些数字。麦克金雷认为,他可以通过统计分析来获知哪些问题对他喜欢的女人来说是最重要的,然后他就可以建立一个新的交友档案,诚实地回答这些“正确”的问题,然后其他的问题都不用管了。理论上来说,这样他就能够匹配到洛杉矶里任何一个适合他的女人,而不会遇上任何一个不适合的。
爱情有一个最优策略
即使对于一个数学家来说,麦克金雷也是个极不寻常的人。
他在波士顿郊区长大,2001年在米德布里学院的中文系毕业,同年8月在纽约找了一份兼职工作,在世贸大楼的北塔91层的一家公司当翻译,将中文翻译成英文。在他走进社会的第五个星期,双子楼遭遇惨剧—在9·11那天,麦克金雷要到下午2点才需要上班,所以当第一架飞机在早上8点46分撞上北塔时,他还在睡梦之中。
“那天之后,我就一再问我自己,我到底想要干什么,”麦克金雷说。
刚好,他有个哥伦比亚的朋友看中了他的反应能力和数学能力,将他招募进麻省理工那著名的黑杰克队伍(MIT Blackjack Team)—他们依靠快速算牌技巧和团队配合用扑克牌玩21点,在赌场赢取大笔奖金。之后几年,他往返于纽约和拉斯维加斯,最多每年可以赚到6万美元。
这种经历加深了他对应用数学的兴趣,并最终鼓励他积极进取,在此领域更加钻研,得到了硕士甚至是博士学位。“他们能够在不同情况下使用数学方法,”麦克金雷在提起自己的算牌伙伴时说,“哪怕是看见不认识的扑克游戏,比如牌九,他们也能回家写代码,然后得出一个最优策略。”
他认为,在寻找真爱的道路上,也有一个最优策略。
科学地寻找真爱
首先,他需要数据。他建立了12个虚拟的OkCupid账号,并通过一个Python脚本来控制它们。这个脚本会寻找他的目标(25岁到45岁之间的异性恋及双性恋女性),浏览他们的网页,抓取所有公开的信息:种族、身高、是否吸烟、星座,等等。
要找到她们的问题和答案,他必须再多做一点事情。OkCupid让用户看见别人的回答,不过只能是他们自己回答过的问题。于是麦克金雷让他的代码操纵着各个账号回答随机的问题—反正他不用这些账号来吸引任何人的注意,所以答案并不重要—然后,将姑娘们的答案存入自己的数据库里。
麦克金雷满意地看着他的程序满载而归。不过,他只收集了1000个账号的资料,就遇上了新的屏障:OkCupid有一个防滥用系统,专门用来防止此类数据收割,于是没过多久,他的虚拟账号就一个个地被封了。
他必须将他们训练得像人类。
他找到了他的朋友萨姆·托里西。托里西也是个妙人,他是一个神经学家,不过最近他在教麦克金雷音乐理论知识,作为交换,麦克金雷得给他上几堂高数课。托里西自己也在OkCupid上征友,他觉得麦克金雷做的这件事很有意义,就同意在自己的电脑安一个监控软件,记录他的使用情况。有了这个数据,麦克金雷就能编写一个程序,模拟托雷西的鼠标点击速度和打字速度,简而言之,“看起来像人”。他从家里再带了一台电脑插在数学系的网口上,这样就能够24小时无间断地运行了。
三星期后,他喜获丰收,现在他有全国各地20000个姑娘的600万个问题和答案了。那个凌晨三点突如其来的念头变成了麦克金雷的另外一个重要项目。他本来已经经常在办公间里过夜了,这下,他干脆直接不再续租公寓,完全搬到办公间里来。他带了一张薄薄的小毛毯,等要睡觉的时候,就躺在桌子上睡。
大数据处理与真爱的类别
要想让麦克金雷的计划奏效,他需要在这600万个问题和答案中寻找某个模式,好将这20000个姑娘分成不同的类别。他开始试用不同的算法,最终,当他找到一个改进版本的贝尔实验室K-Modes算法时,突破点到来了。这个算法最早在1998年投入使用,是用来分析各地黄豆灾害的具体原因,它能够根据大量的数据特征,慢慢地将所有对象细分再细分成不同的类型。有了这个算法,麦克金雷就能够轻松地将他收割来的数据投入不同的类别里,在20000人中找到最适合他的女人。
他开始实践。根据她们的问题和答案,20000人被逐步分成了7组。麦克金雷认为这样就够了,他已经对这个进展感到欣喜若狂,“那是六月的最高点”。
然后他还需要做一次重复验证,于是他给了这个程序一个新任务:过去这一个月里,有5000个洛杉矶和旧金山地区的女性登录了OkCupid。他又让K-Modes来算了一遍,结果证明这些人也以一种相似的方式被分为了7组。也就是说,他的算法是可行的!
在不同类别中,他都选择了一些档案来研究,发现其中一个太年轻了,有两个则太老,还有一个对于宗教过于虔诚。不过有一个类别看起来很不错:里面都是25岁左右的女性,看起来很有个性,音乐家或者艺术家。她们是黄金类别,就是他所想要的那种。他觉得,在这里,他能找到真爱。
事实上,还有另外一个类别看起来也挺酷—这里面的女性年纪稍微大一点,都从事创造性的职业,比如说编辑或者设计师。他决定两者都试试看,于是他创建了两个账号,分别针对A类优化和B类优化。
他翻阅这两个类别的女性档案,寻找她们感兴趣的东西。结果,原来教师还是很受欢迎的,所以他在介绍里强调自己是一名数学教授。当然,最重要的部分还是那些问题。他选出在这两个类别里最受欢迎的500个问题,然后如实作答—他不希望未来的恋爱和婚姻建立在虚假之上。但他决定让计算机决定每个问题到底有多重要,他用了一种机器学习的算法,叫“自适应增强”(adaptive boosting),以获得最理想的分值。
这样,他就创建了两个账号,其中一个的资料照片是他攀岩的样子,而另外一个则是他在弹吉他。“不管未来的计划如何,你现在更感兴趣的是什么?性,还是爱?”他的答案是爱。但对于比较年轻的A类别,他按照机器的建议为这个问题评分为“非常重要”,对于B类别,则是“至关紧要”。
当他答完最后一个问题,他在OkCupid上进行了一项搜索,按匹配度来排序。最上面的:一整页的99%匹配度。他翻页,再翻页,1万人过去了,跟他的匹配度还在90%以上。
他还需要再做一件事来提升自己的受关注度。OkCupid是这样的,如果有人访问了你的页面,你就会收到一条通知。所以麦克金雷写了一个新程序,去自动访问那些评分最高的匹配对象,按年纪降序进行:星期一是1000个41岁的女性,周二是1000个40岁的女性,如此两个星期后,是1000个27岁的女性,然后再重复。来访问他的页面的女性也很快增多了,有时候达到每天400人,而他的消息箱里也涌入了很多信息。
“我从来没见过跟我匹配度这么高的人,而且我觉得你的资料还挺吸引人的,”有个女人写道,“而且一个擅长数学的糙汉子感觉总会有些故事……我觉得自己得来跟你打声招呼。”
“嗨—你的资料看起来真的很吸引我,所以我过来打声招呼。”另一个这样写,“我想我们之间有很多共同点,虽然数学方面不是,但其他方面像得惊人!”
“你真的可以翻译中文?”还有一个问。“我曾经上过一堂课,但实在太难了。”
真爱在相遇之后开始
数学和算法的部分到此结束。在麦克金雷寻找真爱的道路上,他还需要做一件事:离开他的四方格工作间—约会。
2012年6月30日,麦克金雷在UCLA体育馆洗了个澡,然后去见了他的第一个约会对象,Sheila。她是一个设计师,A类别,那种年轻的艺术家类型。他们在回音公园(Echo Park)的一家咖啡馆进行了午餐约会。“其实我有点害怕,”麦克金雷回忆道,“到这个时间之前,这一直像是个学术项目。”
但当他跟Sheila告别时,很显然,他们彼此都没有动心。于是他第二天又进行了他的第二次约会,是一个来自B类别的博客写手。他本打算带着女伴在回音公园的湖畔浪漫散步交谈,但到了那里才发现,正有一群人在湖里挖淤泥。更糟糕的是,她热爱法国作家马塞尔·普鲁斯特,对生活的态度很不积极。麦克金雷表示,这次约会甚至感觉有些抑郁。
到第20次约会的时候,他发现A类别的人里面,有很多都有文身,或者养了中大型犬,而他对这些事都不是很能接受。一个月后,他认为这些不合适的人妨碍了他的效率,于是他删掉了自己的A类别账号,专心约会B类别的人。他的效率提高了,但结果依然同样。他已经约会了55个人,但只跟三个人见了第二面,只有一个人约了第三次会。
大多数失败的约会让人怀疑人生,但对于麦克金雷来说,这更糟糕,他开始怀疑自己的算法。
直到他收到王恬(音译)的信息。她是个28岁的艺术家,还是监狱废止运动的积极分子。她正在UCLA读艺术硕士,希望在UCLA附近寻找到身高180cm左右蓝眼睛的家伙,然后,她就找到了麦克金雷。他们的匹配度是91。
他们约在校园的雕塑公园相见。从那里,他们一起走到了一家校园寿司连锁店。他立刻就感受到了真爱的电力。他们从书籍讨论到艺术和音乐,聊着聊着,她承认,在给他发信息之前,她特地在自己的资料上做了小小的改动;然后他给她讲了他的爱情算法,从头到尾,这一整个故事。
“这事儿可实在有点神经质,”她说,“不过我喜欢。”
她是麦克金雷约会的第88个人。但跟以前的87个人都不同,他们进行了第二次约会,第三次,两个星期后,他们都冻结了自己的OkCupid账号。
“我想我做的与其他人没有太大不同,只是一个基于算法、大数据和机器学习的版本,”麦克金雷表示。所有人都希望在相亲网站上建立一个更优化的账号资料,他只是用数据和程序创建了一个。
对于王恬来说,麦克金雷的壮举只是一个有趣的故事。她知道,这些数学和编程都只是让他们相遇的故事前言,真正的挑战是他们相遇之后的生活。“人类比账号上的那些资料要复杂多了,”她说,“所以,我们相遇的方式可能有某种不真实的成分,但那之后的每一刻都很真实。”
麦克金雷也同意她的看法:“并不是因为我们匹配才有一个很好的关系,而是,这个算法能够让我们站在了彼此可以触及的地方。我用OkCupid找到了对的人。”
她不以为然地敲了敲他的手肘:“你没有找到我,因为是我找到了你。”麦克金雷思考了一下,承认她说的是对的。
现在麦克金雷已经获得了他的博士学位,继续教授数学;而王恬正在卡塔尔进行一项为期一年的伙伴活动。在与记者见面后的一周,王恬回到了卡塔尔,而在他们每天的Skype对话里,麦克金雷突然掏出一枚钻戒,放在摄像头面前。
她说她愿意。
他们还没决定具体的婚礼日期;也许他们还需要一个算法来进行优化。
来源:《连线》