本文總結了多種推薦場景中的注意事項,或者推薦中比較關鍵的因素,不涉及演算法描述,僅僅說明關注點,僅供參考。
推薦演算法有很多種,從演算法的角度來說,我認為主要由以下幾種:協同過濾系列(基於item和user),機器學習分類系列(喜歡和不喜歡二分類,或者回歸中的分值代表喜歡程度),矩陣分解系列(mahout als演算法,netflix舉行推薦大賽獲獎演算法),關聯規則(電商常用)。本文將從以上幾種系列進行總結。
一、協同過濾系列
協同過濾演算法感覺是最熱也是推薦最精準的演算法之一。在sns交友推薦中,目前協同過濾演算法是最精準的演算法(個人之見),原因有以下幾點:1、交友**中使用者的基礎屬性不足以完全表達乙個人,除非現在可以把人的相貌資訊完全表達出來,畢竟陌生人交友首先看相貌。2、使用者的行為已經將使用者對其他使用者的描述看法融入到動作中。
使用協同過濾注意事項:
1、使用者的行為考慮盡量周全,可以將不同隱士行為給一定權值,將隱士行為綜合起來得到顯示的評分。
2、對推薦結果重新排序,達到利益最大化,像交友**應該加入活躍因子和**因子,活躍因子公升函式,**因子減函式,控制推薦活躍使用者,保證使用者**率均衡。
3、對於交友**的推薦,正向推薦是使用者可能喜歡的人,如果將行為使用者和被行為使用者順序顛倒且評分值不變,這樣推薦給被行為使用者可能喜歡他的人,將兩者取交集,就是可能雙方互相喜歡,即推薦最高境界互惠型推薦。
4、 基於物品的協同過濾,相似度進行歸一化有助於提高推薦的多樣性。因為不同物品內部的相似度不平衡,有些物品內部的相似度較高,造成推薦結果傾向於該類物品。對於兩個不同的類,什麼樣的類其類內物品之間的相似度高,什麼樣的類其類內物品相似度低呢?一般來說,熱門的類其類內物品相似度一般比較大。如果不進行歸一化,就會推薦
比較熱門的類裡面的物品,而這些物品也是比較熱門的。因此,推薦的覆蓋率就比較低。相反,如果進行相似度的歸一化,則可以提高推薦系統的覆蓋率。
5、在itembased cf中,tanimoto係數比其他係數會得到更大的覆蓋量,它不關心使用者對物品的具體評分值是多少,它在關心使用者與物品之間是否存在關聯關係。這樣導致了,不同物品之間的相似度平衡,不會偏向某個物品。
6、對基於使用者的推薦系統來說,pearson相關係數比其他對比使用者的方法更勝一籌。基於物品的推薦來說,余弦相似度方法比pearson相關度量表現更好。
7、降低流行物品的權重。很多領域存在一些很多人都喜愛的物品,讓兩個使用者對有爭議的物品(冷門物品)達成共識更有價值。可以使用反使用者頻率緩解。
8、基於物品的推薦來說,余弦相似度方法比pearson相關度量表現更好。在基於物品的推薦演算法中,余弦相似度由於效果精確,已經被證實是一種標準的度量體系。這種方法也被廣泛用於資訊檢索和文字挖掘,用於比較兩份文件,文件表示為詞的向量。基本的余弦方法不會考慮使用者評分平均分之間的差異,改進版的余弦方法能夠解決這個問題,做法是在評分值中減去平均值,改進余弦方法的取值在-1和+1之間,就像pearson方法一樣。
9、電商推薦中需要加入貨品上架時間和購買時間因素,加入季節上下文因子。
二、機器學習分類系列
1、機器學習方式(邏輯回歸、決策樹、svm)。使用歷史資料中成功和失敗的資料集,訓練出模型,使用模型進行**推薦。(成功案例和失敗案例比較難把握)
2、機器學習方法一般會使用較多的屬性,只包含基礎屬性效果會很差,如果包含的屬性較多的話,很多使用者的很多屬性會為空,資料預處理比較麻煩。
3、很多模型會使用協同過濾推薦出資料,然後使用邏輯回歸(使用關鍵屬性指標)計算推薦資料推薦指數,對推薦資料進行排序。
三、矩陣分解系列
2、矩陣分解系列在文字聚類中應用較多。
四、關聯規則推薦
1、一般用於電商**推薦,比如購買此物品的人還購買了什麼。
2、電商**物品擺放,一般也會依賴於關聯規則進行調整
電商**推薦:關聯規則推薦,協同過濾推薦(基於物品),關注新上架物品和季節性物品,弱化流行物品相似度,長尾物品的相似更有價值,長尾物品更能帶動公司效益。
spfa演算法注意事項
終於來到spfa演算法了!之前已經說明過了bellman ford演算法 我們今天說明的spfa演算法僅僅只是對該演算法的乙個優化。bellman ford演算法會遍歷所有的邊,但是有很多的邊遍歷了其實沒有什麼意義,我們只用遍歷那些到源點距離變小的點所連線的邊即可,只有當乙個點的前驅結點更新了,該節...
Android NDK C 開發注意事項總結
相信android開發者都喜歡用c 編寫一些高效的應用,有關android ndk的c 開發相關知識android123總結如下 1.從android ndk r5開始支援了stl port,在這個版本開始就可以使用部分stl庫的功能了,比如說vector string擺脫c下面容易出現的陣列未初始...
vue使用注意事項總結
一 v for的key繫結 先上文件 可以看到,如果對於key的繫結會造成一些bug,而且往往這些bug是我們沒有注意到的 例如如下 v for item,key in list key key div 官方demo是繫結的itemid 但是在具體的開發場景中,可以沒有id或者可以繫結的值,之前預設...