年轻时在国内工作过几天的,难免有被介绍对象的历史。记得那些热心的大姐大妈,开口通常都是这样的:“我觉得你们的条件很般配啊!”然后列举对方的年龄,身高,学历,工作四大指标,再对性格,长相,家世背景略提一二,剩下的就是相亲程序了。也许不少人就是这样找到了自己的另一半,但是对于一心要寻找心灵伴侣(soul mate) 的小资文青而言,相亲对上眼的成功率肯定跟对着林子放枪,打到一只画眉的机会差不多。 世界进入互联网时代,婚恋交友网站层出不穷,估计抢了不少热心大妈的业务,不过他们的牵线搭桥水平,比“肤白貌美”配“有房有车”能高明多少,还真是个问号。国外的交友网站据说也是各种不靠谱。 偶然间在《Wired》杂志上读到下面这个故事,觉得非常有趣。适逢情人节加元宵节,讲给大家听听稀罕。愿已相依相守的人们更加珍惜彼此,愿还在寻找真爱的,月上柳梢头时,有约黄昏后!
失意宅男 来认识一下Chris
McKinlay,这个故事里的男主角。2012年初夏的时候, McKinlay还是UCLA数学系的一名博士生,日夜煎熬着在赶写他关于大规模数据处理的毕业论文。但是更让他念念不忘的,是他在交友网站OkCupid上的收件箱。35岁的小伙子,单身9个多月了,渴望着OkCupid 能帮他开始一段新的浪漫之旅。 据统计,全美有约4000万人通过Match.com, e-Harmony和J-Date之类的交友网站,寻找浪漫和缘分。其中的在线约会网站OkCupid,由哈佛的数学专业高才生创建,其特别之处在于这个网站使用数学计算方法给人们配对。每一位OkCupid的会员都需要填写一份调查问卷,涵盖生活中的各个方面,包括政治,宗教信仰,家庭,爱好,性向,手机等等。OkCupid的服务器上有成千上万道多项选择题,会员们每人平均回答350题左右,比如 “哪些因素会更吸引你去看某一部电影?”,或者“在你的生活中,宗教/上帝有多重要?”之类。对每个问题,用户要先给出自己的答案,再指出希望未来的对象做怎样的选项,还要回答这个问题对自己有多么重要(1-5分),等等。根据这些答案,OkCupid系统会自动计算用户间的匹配程度;匹配度高的,系统会优先推荐给会员去联系。(下面的视频,简单介绍了OkCupid的配对系统是怎么工作的)
在洛杉矶地区,至少有8万名女性OkCupid用户,可是系统给McKinlay找出来的适合对象(即90%以上匹配度)只有区区不足百人,她们大多数还不理踩McKinlay的搭讪。好几个月过去了,他只约会过六次,而且都是见了一次就再没有下文。McKinlay的郁闷可想而知。你也许想象McKinlay是个不懂人情世故的书呆子,其实并不尽然。他本科毕业于Middlebury College中文专业,第一份工作是在纽约做中文翻译;随后,他加入了著名的MIT学生 21点赌博小分队,出入于纽约与拉斯维加斯各大赌场之间,每年也能赚到六万美元。正是这段经历,使他对应用数学产生了浓厚的兴趣,这才来到UCLA,读他的数学博士。 变身骇客 2012年6月的一个清晨,面对着论文研究的满屏代码和OkCupid里他那无人理睬的账户,McKinlay想明白了:OkCupid的配对,归根结底是个数学模型;身为一个数学家,当然要用数学方法解决自己的找对象问题。因为OkCupid的算法仅是根据参与者都作答过的题目进行比较匹配,那么显然,自己以前答过的问题和姑娘们关心的事驴唇不对马嘴。如果借用抽样统计,弄明白自己喜欢的那类女性都关心什么样的问题,然后有的放矢地回答这些问题,重塑自己的形象档案,不就可以找出更多的匹配对象了吗? 说干就干。任何统计分析,首先少不了数据。McKinlay自己编写程序,又设置了一堆“僵尸”帐号,到处访问页面,随机兼做答案,专门收集目标人群(25到45的异性恋或双性恋女士)各方面的数据。这样干了不久,麻烦来了-- 像OkCupid这样的技术公司,当然要防范这类的大规模数据收集,保护其核心技术与用户资料。OkCupid的防御系统探测到这些反常的计算机行为,于是McKinlay的小替身们一个接一个被废掉了武功。 道高一尺,魔高一丈,McKinlay迅速了改变策略。他找到同为OkCupid用户的朋友Sam,说服Sam让他在计算机上装了一个新程序,可以模拟 Sam 的点击频率和打字速度,从而骗过了OkCupid的监测系统,继续疯狂收集资料。 分析归类 仅仅用了3周时间,McKinlay获得了2万名女用户6百多万个问题/回答的数据。他把博士论文抛到脑后,一头扎进这些数据的分析中。 McKinlay 的目标是要从这几百万的数据中找出一些模式,就是识别出一些特别的共性而给人们归类。他运用贝尔实验室的 K-Modes 算法来分析这些数据,期间不断进行一些参数微调。终于,神奇的结果出现了!两万名女子,依据她们的问题和答案,被自然归类到7个各具特色的集群中,就是下图中的一个个彩球:
看人下菜 通过对这些群组的观察和分析,McKinlay把注意力集中到两个群组上:A组是些特立独行,从事音乐或艺术,二十来岁的年轻姑娘;B组则是些年龄稍长,主要从事创造性强,如编辑,设计类工作的职业女性。McKinlay有针对性地为自己建立了两份OkCupid档案,面向A组的档案配了张攀岩的照片;面向B组的照片,显示他正在音乐俱乐部里弹吉他。他还做了点文本挖掘,发现教师似乎比较吃香,就在自己简历中教授数学的内容强化了一番。 最核心的当然还是那份OkCupid的调查问卷。McKinlay选取了在这两个群组中最常见的500个问题,然后认真诚实地给出了自己的回答,因为他既然想找一个真正契合的心灵伴侣,就不能只为投其所好,用谎言误导计算机,毁了自己的幸福。不过,McKinlay还是运用了一种称为“自适应增强”的机器学习方法,计算出每一个问题对于不同群组的重要程度,并照此下单。比如这个问题: 如此这般答完了最后一个问题,McKinlay长吸一口气,点击搜索,想看看OkCupid现在能给他找出多少匹配的女性。Oh my …… 结果显示的顶端,是一整页匹配度高达99%的女士!他不断的向下拉动页面,一行行一页页,扫过一万位女士,匹配度依在90%以上,而且全在本地! 这还是原来那个匹配人数不到100,乏人问津的McKinlay吗?! 吸引眼球 酒好也怕巷子深。McKinlay还要再做点工作,吸引姑娘们的注意。OkCupid的系统,在有人来访问个人主页时,主页用户会得到通知。于是,McKinlay又写了一个程序,周期性地去所有匹配度高的主页访问踩点,留下痕迹。来而不往非礼也。很快,McKinlay的主页也变得热闹起来,有时一天有400人次的访问量,各种信息,悄悄话也开始不断进来。McKinlay一下子成了香饽饽! 至此,技术宅男McKinlay的“网络速配研究”的数学部分完美成功,接下来就是实际进行约会了。每赴一次约会,McKinlay都会做详细的记录,于是又积累了点新的数据,比如A组的女孩,往往有几个纹身,多住在洛杉矶东部;而B组的女士,不少人养了条不大不小的狗,诸如此类。由于技术含量有限,这里就不啰嗦了。 到夏季结束时,McKinlay已经约会了好几十次。只能说,社会复杂,人心难测,只有三个姑娘给了他第二次机会,与一位约会了三次,然后统统没有了下文。深受打击的McKinlay开始怀疑自己,也怀疑自己的数据挖掘模型,到底有没有意义。 终遇佳人 正所谓山重水复,柳暗花明。第88次约会的时候,McKinlay 终于遇到了那个“她”,28岁的C.T. Wang 姑娘,UCLA美术专业的一位硕士生,91%的匹配度。事实上,还是Wang 姑娘主动先给他发信息打招呼的。俩人在学校花园见了面,一起在寿司店吃了饭,讨论书籍,艺术和音乐,然后她又成了他的第 89 次约会,接下来一次又一次。两周后,两人各自停止了在 OkCupid 的账户;一年后,McKinlay通过Skype求婚,Wang 姑娘答应了! 人海茫茫,乱花迷眼。错过风景无数,只求得卿一人! 再后来,McKinlay拿下了博士学位,还把自己在OkCupid上的经历写成了一本书。在Wang姑娘看来,McKinlay扮骇客,做数据挖掘的寻爱故事很有趣,但是所有的数学工具和程序代码不过是两人爱情故事的序曲,真正早就这段姻缘的还是在见面之后。“人们远比自己的档案资料要复杂得多。我们如何得以相见,只是表层的部分,但是随后发生的一切绝不肤浅,其中有很多的用心和努力。”她还要特别提醒McKinlay:“记住,不是你网到了我,是我找到了你!” 正应了那句:众里寻他千百度,蓦然回首,那人却在灯火阑珊处。 附上情歌一首,"True Love Will Find You in the End",真爱到底找到你。Happy Valentine's Day! |