淺談網頁搜索排序中的投票模型

來源:互聯網
上載者:User
關鍵字 投票 淺談

仲介交易 HTTP://www.aliyun.com/zixun/aggregation/6858.html">SEO診斷 淘寶客 雲主機 技術大廳

前些天讀了一本《選舉的困境》,其中有一章,從美國的選舉制度說起,介紹美國選舉制度的不足,然後針對其不足,提出種種改善,然而每種改善都有其各自的問題,其中的變化很有趣。

先說美國選舉制度,美國的總統選舉是一種「贏者通吃」的方式,每個州根據其人口多少,有幾十或幾百的「州票」,州裡的人對總統候選人進行選舉,在某個州獲得票最多的那個候選人,獲得這個州所有的「州票」,然後統計所有候選人的「州票」 多少,獲得最多「州票」的候選人獲勝。

這樣制度的問題是顯然的,比如如果只有兩個州,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選制,中間派候選人都會在第一輪被淘汰。 而中間派候選人則是全體民眾都可以接受的人,也最能調和各派之間矛盾,最和諧。

這個方案的本質問題是,雖然每個選民可以對候選人排序,但是在第一輪的時候卻只考慮了第一選,沒有考慮選民的二、三選。

方案5:上行複選制,跟方案4類似,只不過第一輪淘汰的不是支援最少,而是反對最多的候選人(獲得最多末選票的候選人)

再看上面提到的情況,中間派候選人由於不是任何人的末選,所以第一輪淘汰的是左派或者右派,再第二輪選舉中,中間派的候選人就可以獲勝了。

方案5也有方案5的問題,考慮這樣一種情況,只有兩個候選人AB參選,選民9人,其中6人喜歡A而討厭B,3人喜歡B而討厭A,無論按照之前的哪種方式,都會是A獲勝。 但是現在又多了兩個候選人C和D,喜歡B的3人中,都是把A列在最後一個候選的,而喜歡A的6人的末選,卻是BCD各2票,這樣,在第一輪選舉中,A就由於獲得了最多的末選票被淘汰了,而通過精心的構造例子,完全可以使B最終當選。 僅僅由於CD參選或者不參選,A和B之間的勝負關係就發生了大逆轉。

實際使用此方案的例子不多,只有在西元前507年的雅典有類似的方案,不是讓民眾投支援票,而是投反對票,把反對最多的人投出局。

方案6:多賽制,民眾對候選人排序,然後候選人之間兩兩pk,統計每一張選票上看候選人A在候選人B前面還是B在A前面,如此找到獲勝場次最多的候選人來贏得選舉。

這樣的問題是可能導致迴圈勝負,如ABC三個候選人,有3個民眾,投票分別是ABC,BCA,CAB,可以看出AB之間A獲勝兩次,A>B; BC之間B獲勝兩次,B>C,AC之間C獲勝兩次,C>A,這樣就構成了一個A>B>C的迴圈。 這個是不是有點像足球聯賽的記分制啊,如果積分相同,足球比賽中可以再看淨勝球、進球、勝負關係等,但是作者並沒有在這個方面進行展開,而是介紹了另一種方式:博達制。

方案7:博達制,民眾對候選人排序,假如有n個候選人,第一位的候選人得n分,第二位得n-1分,以此類推,然後統計每個候選人的總分,獲得最多分的獲勝。

有人對博達制的批評是:可能有選民會利用這種方式進行作弊(投「策略票」),最支援B的候選人本來心目中的排序是B>A>C,但是由於相對A,他們還是更喜歡B,因此,為了把B拉上來,就得把A拉下去, 他們的投票就變成了B>C>A。 博達對此批評的回應是:我的制度只適用于誠實的投票者。

而這本書的作者卻認為博達制的「策略票」問題沒那麼嚴重,如果無法準確預測民意和精確控制策略票的投法,有可能因為用力過猛,不但把A拉下來了,反而讓C獲得的支援票增加,這樣就使得最支援B的那些人的「策略票」 反而使得他們最討厭的C當選了,當年在IMDB上就發生過類似一幕:

電影《蝙蝠俠6》上映後,蝙蝠俠的粉絲們覺得這部片太酷了,於是就想把蝙蝠俠6投成IMDB第一位,於是他們瘋狂的給蝙蝠俠6打高分,而同時,也紛紛的給當時的IMDB第一《教父》投低分,導致的結果就是用力過猛,教父變成了第三名, 原來的第二肖申克的救贖(TSR)變成了第二(原來的第二是排在教父後面,新的第二是排在蝙蝠俠6後面),而後來,隨著瘋狂粉絲的熱情消退,理性的意見佔據了上風,蝙蝠俠6的得分逐漸下降,跌到了第10。 而教父還是在肖申克的救贖後面,很久沒有回去了。

博達制是否有其他問題呢?

以上只是對這本書第14章的一個筆記,也僅僅針對「多候選人單職位」問題進行了討論,書的後面還會對「多候選人多職位」的情況繼續探討,也就是根據每個人對候選人的排序,來決定最終的候選人排序。

回到搜尋引擎領域來,如上策略的變遷會給我們一些啟示,先看看之前抽象出來的問題:

有n個候選人,每個選民對這n個候選人投票,最終在n個候選人中選出最合適、最符合民意、也符合邏輯的那個人。

這很像搜尋引擎在解決的問題:

系統裡有n個網頁,有m個特徵(頁面品質、頁面內容豐富度、頁面超鏈、文本相關性等)對n個網頁有不同的打分,如何根據這些特徵的「投票」,選出最適合放在第一位的網頁呢?

從選舉的例子中,我們可以得到的幾個啟示:

1. 設計演算法時,要避免出現「贏者通吃」帶來的資訊丟失問題。

2. 不要因為某幾個特徵特別好,就把某個網頁排到最前,或者因為某幾個特徵特別差,就把某個網頁拋棄。

3. 最合適放在首位的網頁不一定是在每個特徵上都最好,而應該是能夠兼顧所有特徵,綜合表現最好的那個。

4. 搜尋引擎消費者對搜尋結果的點擊行為,可以看成是對搜尋結果進行的「投票」,這樣的「投票」資訊的使用方式,也要注意考慮是否會帶來選舉過程中出現的種種不合理。

以上提到的種種選舉方案,僅僅是對「多候選人單職位的」的情況進行討論,而搜尋引擎面對的問題,則更類似于「多候選人排序」的情況,也即:

系統裡有n個網頁,有m個特徵(頁面品質、頁面內容豐富度、頁面超鏈、文本相關性等)對n個網頁有不同的打分,如何根據這些特徵的「投票」,決定n個網頁的順序?

而這個「多候選人排序」問題,是有一個「不可能的民主」的理論的,該理論的大意是,「合理」的民主應該滿足3個條件:

1. 如果選民都認為A比B好,那麼最終結果應該也是A比B好

2. 沒有「獨裁者」,也即,不存在這樣一個人,無論別人怎麼排序,最終結果的排序都和這個人的排序一致

3. 無關因素獨立性,也即,在第一次投票完成後,A排在B前面,現在進行第二次投票,如果所有人都沒有改變自己投票中A和B的相對順序,那最終結果應該也是A在B前面

而通過數學的證明,可以得出結論:如果某種選舉方式滿足條件1和3,則必然不滿足2,也即必然存在「獨裁者」,這個問題的證明,可以參考這篇博客:HTTP://roba.rushcj.com/?p=509

根據「不可能的民主」理論,和搜尋引擎結合起來看,似乎搜尋引擎很難給出一個合理的網頁排序,但是搜尋引擎和投票又似乎有所不同,有兩個角度可以破解

1. 認為條件3過於強,需要弱化。

2. 也許在網頁排序問題上,真的存在這樣一個「獨裁特徵」,這個「獨裁特徵」從目前看來,最適合的應該就是「使用者滿意度」了,按照使用者的滿意程度來排序網頁,就是最合理的網頁排序。 如何衡量「使用者滿意度」呢?這就是我們一直在努力的。

by liangaili

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.