我學習的推薦引擎,我通過定義谷歌新聞如何爲這可能是他們感興趣的新聞,基於協同過濾生成用戶建議paper去了。他們提到用於在Google新聞中生成推薦的算法?
一個有趣的技術是Minhashing。我經歷了它的所作所爲,但我很確定我所擁有的是一個模糊的想法,而且我很可能錯了。下面是什麼我可以做出來的: -
- 收集一套所有新聞項目。
- 定義用戶的散列函數。該散列函數返回該用戶查看的新聞項目中的第一項的索引,在列表中全部爲新聞項目。
- 收集,說這樣的值「n」的數量,並代表一個含此值列表的用戶。
- 基於這些列表之間的相似計數,我們可以計算用戶之間的相似性爲普通物品的數量。這減少了大量的比較。
- 基於這些相似性度量,用戶劃分爲不同的簇。
這正是我想可能是。在步驟2中,不是定義一個常量散列函數,而是以一種方式改變散列函數,使其返回不同元素的索引。因此,一個散列函數可以返回用戶列表中第一個元素的索引,另一個散列函數可以返回用戶列表中第二個元素的索引,依此類推。所以哈希函數的性質滿足minwise independent permutations條件,這聽起來像是一種可能的方法。
誰能請確認是否是什麼,我認爲是正確的?或者Google新聞推薦的最小化部分以其他方式發揮作用?我不熟悉推薦的內部實現。任何幫助非常感謝。
謝謝!
非常感謝應答。這說得通。考慮到我們多次重複該算法,我們可以通過比較兩個用戶的哈希值列表來計算兩個用戶的相似度,這將使我們能夠衡量兩個用戶在某個位置上達成一致的次數。 我還有一個問題是,如何定義桶?爲了把一個特定的人放入桶中,我們需要將這個人與其他人關聯起來?他們只是將用戶與桶中的* 1 *用戶進行比較,因爲該桶中的所有其他用戶大多都是相似的? 再次感謝。 – Siddhant 2010-04-29 14:25:14
一個桶被定義爲「在隨機排列下的前2-4個項目具有相同散列值的人羣」。 因此,不需要將人員間的比較放入桶中。喜歡和散列表,每個人被直接送到一個桶。 我還沒有閱讀整篇論文,但我假設他們然後使用共享存儲區中的每個用戶來幫助確定建議。桶的整個目標是使「每個用戶」足夠小。 – mathmike 2010-04-29 15:51:40