或者

浅谈网页搜索排序中的投票模型

作者:希腊神话 浏览:120 发布时间:2018-05-24
分享 评论 0

    前些天读了一本《选举的困境》,其中有一章,从美国的选举制度说起,介绍美国选举制度的不足,然后针对其不足,提出种种改善,然而每种改善都有其各自的问题,其中的变化很有趣.


    先说美国选举制度,美国的总统选举是一种"赢者通吃"的方式,每个州根据其人口多少,有几十或几百的"州票",州里的人对总统候选人进行选举,在某个州获得票最多的那个候选人,获得这个州所有的"州票",然后统计所有候选人的"州票"多少,获得最多"州票"的候选人获胜.


    这样制度的问题是显然的,比如如果只有两个州,A州5个人,而B州4个人,州票也分别是5和4,如果某候选人X在A州以3:2获胜,另一个候选人Y在B州以4:0获胜,这样显然候选人Y在全国范围内获得了6张票,而候选人X只有在A州的3张票,但是由于"赢者通吃",X获得了A周的全部5张"州票",Y只获得了B周的4张"州票",在全国只有1/3民众支持的X居然获得了选举的胜利.


    这样的情况在2000年美国总统选举中就出现过,小布什的州票领先于戈尔,然而在全国民众中统计支持戈尔的人数却是大于小布什的,当然戈尔输给小布什还有另一个原因,这里按下不表.


    如果放在算法领域,可以看出这里的问题在于,为了统计结果R(最适合的总统人选),找到了一个特征A(每个民众的投票),而决定结果R的,却不是特征A,而是由特征A推导出来的特征B(州票),在特征A向特征B的推导过程中,信息丢失了(每个洲的支持百分比不一样).


    "赢者通吃"这种制度的具体历史原因先不说,有兴趣的朋友可以去看原着.解决这种问题的最直接方案就是从"赢者通吃"变成直选,也就是一人一票,直接统计票数,然而这样也会遇到一系列问题.


    在谈那一系列问题之前,先把要解决的问题抽象一下:


    有n个候选人,每个选民对这n个候选人投票,最终在n个候选人中选出最合适、最符合民意、也符合逻辑的那个人.


    方案1:一票制,每人一票,选出自己最喜欢的候选人,对结果进行统计,得票最多的那个人当选.


    这样做的问题是会导致作者定义的一种"鹬蚌困局",举例说,如果有ABC三个候选人,其中BC政见比较类似,支持B的人也比较支持C,反之亦然,在全民中,喜欢BC的人占多数,A的政见和BC相反,支持A的人在全民中占少数.这样导致的后果就是,BC获得的票会比较分散,而A获得的票比较集中从而获得胜利,如果BC中有1人不参加选举,票就会集中到B或者C一个人的手中,从而使多数选民的支持者当选.前面按下不表的戈尔失败的另一个原因,就是有人认为有跟戈尔政见类似的耐德的参与,他分散了部分戈尔的选票.


    可以对此问题有所改善的方案叫做"二选制".


    方案2:二选制,每人一票,如果无人获得大于50%的支持,则将得票最高的两个候选人拿出来,再进行一轮选举,得票多的人获胜.


    法国总统选举就是这样的二选制,但是这样的方法只能改善"鹬蚌困局",而不能彻底解决,2002年的法国总统大选就出现了类似的情况,当时支持左派政见的民众较多,然而在二选制下,最终的前两名却是一个右派和一个极右派.出现这种情况的原因是当年有16个总统候选人,且多数是持左派政见者,这样就导致左派的票极端分散.


    方案3:n选制,每人一票,如果无人获得大于50%的支持,则去掉支持最少的候选人,再进行一轮投票,若依旧无人获得大于50%的支持,再去掉得票最少的候选人,直到有人大于50%支持为止.


    2001年奥委会决定北京为2008年奥运会主办城市的时候,就是用的这样的制度,在第一轮投票里大阪被淘汰,北京在第二轮就获得了半数以上的支持,从而当选.


    n选制的问题在于不实用,如果是奥委会这种只有几百个人投票的情况还可以使用,如果类似前面法国总统选举,有16个候选人,举国上下最多可能进行15次投票,成本太高.


    方案4:即刻复选制,每个民众对候选人进行排序,如果某个候选人获得了50%以上的首选,则直接获得胜利,否则淘汰票数最低的候选人,并且把票数最低候选人的得票中的第二候选人拿出来,分给对应的候选人,如果有人获得50%以上,则当选,否则再淘汰一位最低的,并且把他票分给里面排序最高的且未被淘汰的候选人,如此往复.


    爱尔兰总统选举和伦敦市长选举采用的是类似的方案,此方案也有问题,试想如此场景:选民共10人,中间派候选人是3人的首选,左派和右派的候选人分别是4人的首选,当然左派选民最讨厌右派候选人,而右派选民也最讨厌左派候选人,而左派右派的民众对中间派候选人倒是都可以接受,不管是即可复选制还是n选制,中间派候选人都会在第一轮被淘汰.而中间派候选人则是全体民众都可以接受的人,也最能调和各派之间矛盾,最和谐.


    这个方案的本质问题是,虽然每个选民可以对候选人排序,但是在第一轮的时候却只考虑了第一选,没有考虑选民的二、三选.