2012-02-16 91 views
5

我想設置一個人羣來源從一組可以從20-2000項(排名amoung十大並不重要)改變最好10個項目的系統。在算法上有一個很好的stackoverflow帖子,用於做 How to rank a million images with a crowdsourced sort的實際排序。我傾向於向用戶詢問他們最喜歡的兩項內容,然後使用TrueSkill算法。匹配排名的最佳匹配算法?

我的問題是給我使用類似trueskill評分系統,什麼是決定哪些項目配對,以顯示用戶評價最好的算法?我將有數量有限的機會向人們詢問他們最喜歡的物品,因此,重要的是,所呈現的對將爲系統提供識別前10名時最有價值的信息。同樣,我最感興趣的是找到前十名,更不用說其餘的項目如何排在他們自己之間,甚至是前十名之間的排名如何。

回答

1

這個問題是非常相似的舉辦淘汰賽比賽,其中的玩家技能不爲人所熟知和玩家數量是非常高的(認爲校企網球比賽)。由於循環賽(O(n^2)比賽)非常昂貴,但一個簡單的淘汰賽太簡單了,通常的選擇是去k-elimination結構。基本上,每個玩家(在你的上下文中都是一個物品)在輸掉k場比賽後被淘汰出局。看看雙消除結構:http://en.wikipedia.org/wiki/Double-elimination_tournament

或許你可以充分地修改以滿足您的需求。

1

另一個公知的算法爲這個製作在Go或象棋比賽以計算排名。你可以看看MacMahon Algorithms,它們同時計算這樣的配對和等級。應該可以截斷這個算法,這樣它只會產生一組10個最好的項目。

您可以在Christian Gerlach's thesis,他描述了實際的優化算法找到更多詳細資料(不幸的是,論文是德語)。