推薦算法

推薦算法愈來愈多的運用到咱們的生活中,特別是在網站中,當你瀏覽大大小小的網站,你的行爲被時刻記錄着,並根據一些依據對你推薦一些物品。下面會簡單介紹一下推薦算法,後續會繼續對這些算法進行補充。算法

1.協同過濾算法機器學習

2.基於流行度的算法函數

3.基於模型的算法學習

4.混合算法測試

 

協同過濾算法網站

 

協同過濾算法有兩種,一種是基於用戶的協同過濾算法,一種是基於物品的協同過濾算法。spa

基於用戶的協同過濾算法

該算法主要是找出用戶的類似用戶,將類似用戶瀏覽或購買而用戶沒有購買的商品推薦給用戶。.net

基於用戶的協同過濾算法流程以下:blog

1.分析各個用戶對item的評價(經過瀏覽記錄、購買記錄等);博客

2.依據用戶對item的評價計算得出全部用戶之間的類似度;

3.選出與當前用戶最類似的N個用戶;

4.將這N個用戶評價最高而且當前用戶又沒有瀏覽過的item推薦給當前用戶。

以下圖:

 

基於物品的協同過濾算法

基於物品的協同過濾算法原理爲在計算鄰居時採用物品自己,而不是從用戶的角度,即基於用戶對物品的偏好找到類似的物品,而後根據用戶的歷史偏好,推薦類似的物品給他。基於物品的協同過濾算法原理大同小異,只是主體在於物品:

1.分析各個用戶對item的瀏覽記錄。 依據瀏覽記錄分析得出全部item之間的類似度;

2.對於當前用戶評價高的item,找出與之類似度最高的N個item;

3.將這N個item推薦給用戶。

以下圖:

 

基於流行度的算法

該方法比較簡單粗暴,主要是把當前的流行物品或者時間推薦給用戶,不考慮用戶的偏好,這種算法比較適合應用在新用戶上,這類用戶沒有任何歷史數據,能夠直接給他們推薦流行的東西,根據用戶的點擊,再進一步推薦。

 

基於模型的算法

基於模型的方法有不少,用到的諸如機器學習的方法也能夠很深,這裏只簡單介紹下比較簡單的方法——Logistics迴歸預測。咱們經過分析系統中用戶的行爲和購買記錄等數據,獲得以下表:

     

 

表中的行是一種物品,x1~xn是影響用戶行爲的各類特徵屬性,如用戶年齡段、性別、地域、物品的價格、類別等等,y則是用戶對於該物品的喜愛程度,能夠是購買記錄、瀏覽、收藏等等。經過大量這類的數據,咱們能夠迴歸擬合出一個函數,計算出x1~xn對應的係數,這便是各特徵屬性對應的權重,權重值越大則代表該屬性對於用戶選擇商品越重要。   

在擬合函數的時候咱們會想到,單一的某種屬性和另外一種屬性可能並不存在強關聯。好比,年齡與購買護膚品這個行爲並不呈強關聯,性別與購買護膚品也不強關聯,但當咱們把年齡與性別綜合在一塊兒考慮時,它們便和購買行爲產生了強關聯。好比(我只是好比),20~30歲的女性用戶更傾向於購買護膚品,這就叫交叉屬性。經過反覆測試和經驗,咱們能夠調整特徵屬性的組合,擬合出最準確的迴歸函數。最後得出的屬性權重以下:      

       

 

基於模型的算法因爲快速、準確,適用於實時性比較高的業務如新聞、廣告等,而如果須要這種算法達到更好的效果,則須要人工干預反覆的進行屬性的組合和篩選,也就是常說的Feature Engineering。而因爲新聞的時效性,系統也須要反覆更新線上的數學模型,以適應變化。

 

混合算法

一般推薦算法中會使用多種算法的融合,每每會獲得比單一算法更好的結果,算法融合可使用加權融合,賦予不一樣算法不一樣的權重,從而獲得不一樣的結果。

 

總結:

以上幾類推薦算法中,基於流行度的算法比較適合使用在新用戶羣體中,不須要分析用戶行爲數據,就能夠直接進行推薦。基於用戶的協同過濾算法比較適合使用在用戶數目較少的狀況下,用戶數過大會使得計算量過大。基於物品的協同過濾算法比較適合使用在用戶數目大的狀況下。基於模型的推薦算法,可使用多種不一樣的模型來進行推薦,具體須要根據實際狀況。在條件容許的狀況下,可使用模型融合算法,或許會獲得更好的結果。

 

參考博客:https://blog.csdn.net/u010670689/article/details/71513133/

參考博客:https://blog.csdn.net/xiaokang123456kao/article/details/74735992

相關文章
相關標籤/搜索