如果身在美国,就像其余四千万单身男人一样,注册一下相亲网站,坐等真爱上门不就可以了。
但是相信大多数人和McKinlay一样,尽管向OkCupid算法推荐匹配的女性发送了许多暧昧私信,但绝大多数都石沉大海了。
这个只进行过6次线下约会的男人正在电脑上编译机器代码,另一个窗口显示着他孤零零的交友头像,他突然顿悟:
他一直在使用错误的方法寻找爱情。
为了不辜负自己在应用数学领域取得的成绩,他决定,在某相亲网站上爬取每一条相关信息,利用关键的K-Modes的改良贝尔实验室算法找出数据规律,
缩小范围,然后一击命中。
换句话说,这是一次数学家独创的完美约会经验贴,还不快来看看!
OkCupid是哈佛大学的数学系学生于2004年创立的约会网站,最初这个网站吸引人们注意力的是它基于计算方法的配对模式。会员会回答很多多项选择问题,这些问题覆盖面很广。
通常,系统会从上千道问题的题库里选出350道问题——
“以下哪种情形最有可能让你去看电影?”或是“宗教/上帝在你的生活中有多重要?
”
对于每一道问题,用户会选择一个答案,以说明自己伴侣的哪一个回答是他可以接受的,并通过给问题评分来表明问题对自己的重要性(5分制,从无关紧要到必须回答)。OkCupid的匹配引擎会利用这些数据来计算男女之间的合适程度。越接近100%,所谓数学意义上的灵魂伴侣就越匹配。
McKinlay从数学上分析了自己一直以来的失败原因。
OkCupid的算法只会使用双方都愿意回答的问题去计算,而McKinlay选择的问题有些随机,并不主流。当他查看与自己匹配的人时,匹配度超过90%的女人不到100个。要知道,LA有两百万女性(大约八万女性在使用OkCupid)。如果把匹配度比作可见度,那McKinlay可以说就是个看不见的幽灵。
他意识到他应该去提高匹配的人数。如果McKinlay通过
统计取样确定哪些问题是他喜欢类型的女人愿意回答的,
那么他便可以诚实地回答这些问题而忽略其他问题,以此来创建一个全新的用户。利用这个办法,他可以匹配到在LA的每一个可能与他配对的女人,而不会匹配到不合适的人。
Chris McKinlay利用Python脚本浏览了上百道OkCupid的问卷题目,然后把女性用户分为七类,每一类都会贴上独特的标签,例如“多才多艺的”和“细心体贴的”等等。
他要寻找爱情,首先需要的是数据。就在他用旁边的窗口进行论文写作的时候,他建了12个假的OkCupid账户并写好了Python脚本去管理这些账户。这个脚本会搜索他的目标群体(25到45岁的异性恋的女人),访问她们的主页,然后爬取她们账户上每一条有用的信息:种族、身高、是否吸烟、星座—— “这些我全都要”他说。
为了找到心仪的另一半,他还做了一些额外调查。OkCupid可以让用户看到其他人的回答,但只能看到那些他们自己已经回答过的问题。 于是McKinlay设置了自己的机器人程序,以简单地随机回答每个问题,他并没有使用虚拟的个人资料吸引任何女性,因此答案并不重要,
主要他要将这些女性的答案收集到了数据库中。
McKinlay满意地看着他程序一路狂奔。 然后,在收集了大约一千个档案后,他遇到了第一个障碍。OkCupid有一个短平快的系统来防止这种数据收集,他的程序一个接一个地被禁。
因此他必须把自己的程序训练的更像真人一些。
根据手中的数据,
McKinlay通过编程模拟Torrisi的点击率和打字速度。
他从家里带来了第二台电脑并将其插入数学系的宽带线路,以便可以24小时不间断运行。
三周后,他已经收集了来自
全国各地20000名女性的600万个问题和答案。
按照McKinlay的工作计划,他需要从调查数据中找到一个规律,即需要根据相似性粗略地对女性进行分组。这个问题在他编写一个名为K-Modes的改良贝尔实验室算法时取得了进展。
K-Modes算法1998年首次用于分析患病的大豆作物。
他通过算法发现了一个自然的分割点,根据问题和答案,
20,000名女性被分为成七个统计学组。
“我太高兴了,”他说,“那是六月份令我最兴奋的事情了。”
他重新设置条件来收集另一个样本库:在过去一个月内登录OkCupid的来自洛杉矶和旧金山的5000名女性。通过K-Modes的另一次分组确认他们以类似的方式聚集并
确保统计抽样有效。
现在只需要决定哪个类群最适合他了,在抽查了每个类群的一些档案后,发现一个类群太年轻,两个太老,另一个太“基督”了。于是他徘徊在一个二十五岁左右的女性主导的类群中,工作类型比较独立,像是音乐家和艺术家。这简直是黄金单身群!
就像是大海捞针,他找到了他的针,也就在这个类群的某个地方,他找到了真爱。
一个相邻的类群看起来也引起了McKinlay的注意:年龄稍微大一些,从事专业的创造性工作,如编辑和设计师。
他决定将两个类群都设定为自己的目标!
于是设置了两个配置文件,A、B组各优化一个。
他对这两个类群进行了文本挖掘以了解她们感兴趣的内容:教学是一个热门话题,因此他撰写了一篇强调了他作为数学教授工作的文章。
更重要的是回答问题,于是他挑选了两个类群中最受欢迎的500个问题并决定诚实地填写答案,他不想在计算机生成的谎言的基础上建立未来的恋爱关系。但是他会使用一种称为
自适应提升的机器学习算法来得出最佳权重,从而让计算机确定分配每个问题的重要性。
有了这个后他发表了两个照片,一个是攀岩的照片,另一个是在音乐演出中弹吉他。
对于年轻的A群,他尊重计算机将问题评为“非常重要” 的结果。对于B群集,它则是“必须回答”的问题。
当回答完最后一个问题时,他按照匹配百分比对洛杉矶的女性进行了OkCupid搜索。从头开始:第一页匹配率全是99%女性。向下滚动......然后......向下滚动……,来自洛杉矶各地的一万名女性迎面而来。
离被关注还差一步!OkCupid会员在有人查看他们的网页时会收到通知,因此他写了一个新程序来访问查看他主页的女性的主页,并按年龄循环:周一有1000名41岁的女性,周二有1000名40岁的女性。两周后,轮到了27岁的女性。女性会回访他的个人资料,每天约400名左右。然后,私信开始滚滚而来。
“直到现在我还没有遇到过如此匹配的人,而且我发现你的个人资料很有趣,”
“我认为我们有很多共同之处,也许不是数学,但肯定还有很多!”
至此,数学部分已经完成。接下来,他需要离开他的小隔间,进入实际演练阶段,他要去真正的约会!
McKinlay开着他的尼桑穿越城镇来到加州大学洛杉矶分校的健身房,开始他的约会实践。Sheila是一位来自“A类群”的年轻的网页设计师。他们在Echo Park的一家咖啡馆吃了午饭。 “太不可思议了,这简直像一场学术活动一样。”
与Sheila约会结束后,双方都觉得不来电。第二天,McKinlay进行了第二次约会,一个来自 “B类群”的博客编辑。他们计划在Echo Park Lake周围散步,却发现正在施工。女方一直在读普鲁斯特并对生活感到失望。 “这有点令人沮丧,”
实践约会显然与计算机配置文件约会是完全不同的。他开始忽略一些主页没有内容的人的消息,只回应那些有幽默感或在首页展示一些有趣的东西的人。
后来一个来自28岁的艺术家Christine Tien Wang发来了消息。McKinlay之前在加州大学洛杉矶分校附近搜索到她,6英尺高蓝眼睛的人,正在那里修她的美术硕士学位。他们有91%的适合度。
他在校园的雕塑花园遇见了她。从那里他们走到一个大学寿司会场,他立刻感觉到了来电了!他们谈论了书籍、艺术、音乐,当她承认她在给他发消息之前对她的个人资料做了一些小改动后,他给她讲述了关于他黑进爱情网站的整个经过。
“我认为这样做有点腹黑和愤世嫉俗,”她说,“但我喜欢。”
这是第一次约会,第二次紧随其后,然后是第三次约会。两周后,他们都暂停了他们的OkCupid帐户。
我认为我所做的只是每个人在站点上所做事情的一种略微算法化,大规模且基于机器学习的版本。” McKinlay说。每个人都试图创建一个最佳的配置文件,
他只是有数据来设计一个。
这是他们第一次约会的一年后,McKinlay和Tien Wang在韦斯特伍德寿司吧台和一位记者见面,他们的已经正式确定关系了。
对Tien Wang来说,McKinlay的OkCupid黑客历程是一个有趣的故事。但所有的数学和编码只是他们故事的序幕。见面后,恋爱关系才真正被黑客入侵。 “人们比他们的个人资料要复杂得多,”她说,“所以我们遇到的方式有点肤浅,但我们之间发生的一切都不是肤浅的,
它是通过彼此的努力培养出来的。”
“这不是说,我们匹配因此我们关系很好,” McKinlay表示赞同, “这只是一种将我们放在同一个空间的机制,我能够使用OkCupid找人。”
当McKinlay拿出钻石戒指并将其举到网络摄像头前向她求婚时,Tien Wang说 “我愿意”。