现在相亲话题在网上越来越火了。有意思的是,无论男方还是女方都有不少人在对自己的相亲对象疯狂地吐槽。给人的感觉就是明明有很多单身的男男女女,但想要把他们撮合成情侣却比登天还要难。
有人可能会觉得,只要把有婚恋意向的单身男女各100人放在一起让他们自由地进行选择,那么应该很快就能组合成100对情侣。但这样的事情是不可能发生的,因为这不符合人性。在现实中,更有可能发生的情况是所有的男性都想要选择吸引力排在前10%的女性,同时所有的女性都想要选择吸引力排在前10%的男性。
所以对于约会类软件来说,让会员们自由地浏览所有异性的资料并不是一种很好的策略,不仅不会增加配对的成功率,还会给大家徒增烦恼。于是这些软件大部分都使用了配对算法,由算法来决定每一名会员能看见哪些异性的资料。
美国著名约会软件Tinder采取的策略是在后台对会员进行打分评估,然后把那些评分在同一个档次的男女匹配起来。简单来说就是九分男刷出来的大部分都是九分女,六分男刷出来的大部分都是六分女,反之亦然。
那么Tinder到底是如何给会员进行打分的呢?毕竟会员在注册Tinder的时候无非也就是上传几张照片,再写一些自我介绍而已。人工智能并不能仅凭这些信息就判断出一名会员在异性眼中的吸引力。
为了解决这个问题,Tinder使用了Elo积分算法。这是一种通常用在国际象棋和网球等体育比赛中的算法。以国际象棋为例,每名职业选手最开始都会有一个初始积分,每当他赢得一场比赛后,积分就会增加,输掉一场比赛后,积分就会减少。而Elo积分算法的巧妙之处在于,它根据对战双方的积分差距来决定在比赛结束后双方增加和扣除的分数。如果你战胜了一名比自己积分高出很多的对手,那么你会获得比较多的积分,因为这对于你来说是比较困难的一件事。如果你赢了一名比自己积分更低的选手,那么你的积分只会增加一点点,因为这对于你来说是情理之中的事情。当一名选手参加了足够多的比赛之后,他的分数就会稳定在一个相对固定的区间。人们通过这名选手的积分就可以快速地判断他的水平。
Tinder官方曾经透露他们也使用了这样的Elo积分机制。当用户们在Tinder中刷到软件推荐给他们的异性时,如果感兴趣就向右划,不感兴趣就向左划。这样的右划和左划就相当于象棋比赛中的胜利和失败。一名用户如果多次被别人右划,即多次被别人标记为“感兴趣”,那么他/她的分数就会越来越高。反之,如果一名用户总是被标记为“不感兴趣”,那么他/她的分数就会越来越低。跟象棋比赛积分类似,如果被一名高分用户标记为“感兴趣”的话,分数会获得大幅增长。如果只是被一名低分用户标记为感兴趣的话,分数只会增长一点点。当然,这个分数是Tinder后台中的一个隐藏数值,对所有用户都不可见。Tinder官方隐晦地用“受欢迎度”(desirability)来指代他们给每名用户在恋爱市场上的评估分数。
在Tinder里,只有当两名用户互相把对方标记为感兴趣后才能进行联系。这看起来似乎很公平,每个人都可以在软件中自由地选择心仪的对象。但事实上,每名用户只能看到那些由算法推荐的跟他/她处于同一“圈层”的有限数量的异性。如果用户反复刷新的话,系统可能就会重新推荐之前已经被划掉过的异性,因为算法为这位用户筛选出来的异性名单已经被刷完了。这听起来可能有些残酷和势利,但婚恋市场本来就是残酷和势利的。
当一名用户舒舒服服地躺在床上对手机中的异性进行左划右划时,他/她自己的资料也正在无数陌生人的手机中被端详、审视、评价。最终,每名用户都会得到一个其他人对自己做出的集体评审结果。
也许是为了避免被外界指责说他们把用户分成三六九等,Tinder官方在2019年澄清说他们已经放弃了Elo积分算法,而是采用了一种更加智能的算法,可以通过每名用户在软件里的操作历史来为他/她推荐相匹配的异性。但Tinder拒绝透露这种新算法的具体规则。很难说这种所谓新算法会不会只是Elo算法的一个升级版而已。
除了Tinder之外,也有一些约会软件使用的是不那么弱肉强食的算法,比如Hinge使用的是一种叫做Gale-Shapley的算法。这是一种可以把两组数量相等的元素进行配对的算法。比如说有男女各100人,每个人都对另外100名异性有一个从最喜欢到最不喜欢的选择顺序。那么Gale-Shapley算法可以把这两组人组成100对情侣,并使得每一个人都可以跟愿意和他/她组成情侣的人中排序最高的人组成一对。从数学的角度来说,这200名男女之间此时就形成了一种稳定组合状态,即在现有组合之外,不存在一男一女同时想要与对方形成新的组合。在2012年,发明这个算法的两名教授获得了诺贝尔经济学奖。
Hinge所做的就是根据用户所填写的约会偏好和使用app时的点赞记录等信息来猜测出他/她对于异性的偏好排序。在推测出每名用户的对于其他异性用户的偏好排序后,再使用Gale-Shapley算法对他们进行配对。所以最后每名用户在app里看到的异性都是算法认为的“他们喜欢的人里最有可能喜欢他们的人”。
还有一个约会网站OkCupid则使用了另外一种算法。会员在这个网站上注册时需要从几千个问题中挑选一些进行回答,比如最喜欢的电影或者信仰的宗教。接下来,网站后台会把那些在相同问题下给出相同回答的人匹配在一起,背后的逻辑是他们拥有类似的价值观和生活品味。
2012年,正在加州大学洛杉矶分校攻读数学博士学位的麦金莱(McKinlay)也在OkCupid上注册了会员。也许是因为过于直男,麦金莱在注册时选择的问题全是些女生们不感兴趣的冷僻问题,因此系统只给他推荐了数量很少的跟他相匹配的女性。可想而知,他自己的资料也几乎不会被系统推荐给其他女性用户。
使用了一段时间后,麦金莱觉得自己简直就是一个在女性用户面前毫无存在感的透明人,这让他很愤怒。
麦金莱决定用数学家的方式来解决这个问题。他发现OkCupid允许查看其他用户在某个问题下的回答,前提条件是你自己在注册时也选择了同样的问题。于是麦金莱批量生成了一批账号,把所有的问题都回答了一遍,然后用这些账号去抓取女性用户在各种问题下的答案。一开始,他创建的机器人账号由于操作速度太快,很快就被系统封杀了。后来他又抓取了真实用户的点击速度和浏览模式,然后重新创建了一批账号,让这些账号模仿真实用户的行为去读取数据。这一次,他成功了。海量的数据源源不断地涌入了他的笔记本电脑。
麦金莱在撰写博士论文的过程中可以申请使用学校的超级计算机。他利用这个机会把自己收集到的六百万条数据导入超级计算机进行了分析。从统计学的角度,麦金莱把OkCupid网上的女性会员分成了七个大类。
在这七个分类中,麦金莱挑选了两个自己最感兴趣的分类。一类是从事音乐和艺术相关工作的女性,另一类是从事编辑和设计相关工作的女性。他重新创建了两个账户,分别用来与这两组女性用户来匹配。在给这两个新账户选择回答问题这个步骤中,麦金莱开启了作弊模式。他让电脑帮自己计算出了能和目标组里的女性们达到最佳匹配度的问题组合。除此之外,他还处心积虑地按照大数据分析结果给这两个账户选择了不同的头像,用来吸引不同的女性人群。他的一个账户使用了攀岩的照片,营造出一个户外运动健将的形象。另一个账户则使用了弹吉他的照片,强调他的艺术气质。
在创建好这两个新账户后,麦金莱点击了网站的刷新按钮。系统给他推荐了超过一万名匹配度在90%以上的异性。他成功地欺骗了这个网站的匹配算法。
与此同时,麦金莱的资料也被推荐给了无数的女性用户。他的个人主页被浏览次数从零暴增至多达每天400次。其中不少女性都给他留言,问他有没有兴趣在线下见面。
在虚拟的网络世界,麦金莱可以用作弊的手段把自己伪装成一个倍受欢迎的男性用户。但在现实世界中,他还是那个言辞木讷的数学在读博士。麦金莱也很清楚这一点。
不过,这是他迟早要面对的问题。在6月的最后一天,他鼓起勇气,跟一名女设计师进行了一次约会。这位不擅长讨女孩子欢心的数学家在真人约会中原形毕露。女生在约会结束后就再也没有联系过他了。
第二天,麦金莱又跟一名女编辑进行了一次约会。这次约会也没有结果。接下来的第三次和第四次约会也一样。
麦金莱发现,虽然他的约会全部都是见光死,但他每天还是能收到十几条新的留言。他开始真正体会到大数据的威力。搞砸几次约会根本就无所谓,反正后面永远还有无数的人愿意跟他见面。麦金莱变得越来越麻木了。他懒得再去费心安排约会的细节,而是随便跟对方约在咖啡馆见面。电影、音乐会之类耗时的活动也被排除在约会的内容之外。为了提高效率,他甚至开始在同一天里安排两场约会。
在这个夏天,麦金莱一共跟80多名女生进行了约会,绝大多数都是没有任何结果的见光死。只有三个女生跟他见了第二次面,但也没有后话了。离开了虚拟的网络世界,他仍然只是一个战斗力只有五的渣渣。
麦金莱的第88个约会对象是一名28岁的艺术学生。在约会中,这个女孩告诉麦金莱,为了能得到更好的匹配结果,她把自己在网站上的资料稍微优化了一下。
呵呵,这算什么。麦金莱忍不住把自己用超级计算机所做的事情全部告诉了这个女孩子。幸运的是,这个女孩子并没有觉得他是一个变态,反而觉得这很酷。两个人很快进行了第二次和第三次约会。两周后,他们都把自己的OkCupid账号停用了。一年后,麦金莱向这个女孩子成功求婚。
这就是一名数学家在欺骗约会网站的算法之后找到伴侣的故事。麦金莱并不觉得自己所做的事情有什么不道德:“每个人都会想办法让自己的资料变得更加吸引人,我只不过是做得更加专业一些而已。”
评论