2011-04-03 240 views
2

我讀過的大多數推薦算法文章都集中在用戶對項目進行評分的Netflix模型。我想要做的是略有不同(我認爲)。如何實現這個推薦算法?

比方說,我想創建一個網站,向用戶展示兩張汽車圖片。用戶然後可以選擇他們更喜歡哪輛車。用戶可以按照他/她喜歡的次數重複這個過程,但是希望當他們繼續時,照片對於用戶喜歡的內容變得越來越精緻。

你會如何實現這個算法?看起來像一種可能的方法是實施一個ELO排名算法,並將這些結果的順序用作「評級」,但是這具有嚴重的缺陷,即多個項目不能得到最大評級(用戶可能已經完成了,如果有能力評價項目本身)。

另一種看起來更有希望的方法是預先確定每輛車的一般屬性(例如顏色,車身類型,2門和4門等),並使用這些方法來獲得每個用戶都喜歡的屬性並基於此建議。

+0

聽起來像一個「熱或不」的算法。這裏是pick a或b實現的另一篇文章。 http://stackoverflow.com/questions/164831/how-to-rank-a-million-images-with-a-crowdsourced-sort – 2011-04-03 16:48:20

+0

作爲一種觀察,Netflix競賽中的許多條目使用奇異值分解(alaval Value Decomposition,ala)西蒙·芬克的真棒梯度下降近似)。無論如何,一個關鍵的假設是用戶對電影的評價 - 而不僅僅是比較評級,所以你的情況可能不會略有不同。 – 2011-04-04 02:35:35

回答

1

我會採取刺。

假設每輛車都有一組屬性。如果這組屬性被編碼爲矢量,則一種可能的推薦方法是使用自組織映射(SOM)。 SOM的基本要點是它是輸入向量的分類器。如果訓練SOM的輸入向量表示不同類別的輸入,SOM將開始將其存儲向量聚類爲更像每類輸入。請注意,原始輸入向量不會保留。爲了訓練帶有輸入矢量的SOM,選取當前在SOM中的最佳矢量,然後該矢量周圍的區域變得更像輸入。當然,請參閱維基百科http://en.wikipedia.org/wiki/Self-organizing_map

那麼這如何適用於這種情況呢?那麼,可以使用一個SOM訓練該人喜歡的圖像,並且可以訓練他們喜歡的圖像。即使沒有他們喜歡的單一風格,集羣也應該圍繞他們喜歡/不喜歡的汽車形成。然後看看他們是否喜歡一輛沒有被他們挑選過的汽車,是從它們的喜好和不喜歡中發現它與團體的匹配程度。請注意,在這種情況下,最好匹配彼此不相似或更不可能被喜歡的汽車。

當人第一次加入該網站時,允許他們從蝙蝠身上挑選一些喜歡和不喜歡的東西來播種SOM。

祝你好運!

0

Maby答案有點太遲,但你可能想檢查this。這是關於一位麻省理工學院教授認爲5星評級,如評級等不起作用,他提出了一種算法,可以按照您的建議(車輛A或車輛B)以成對方式輸入。該算法相當複雜,但可以在鏈接中找到。