智能推薦算法演變及學習筆記

【說在前面】本人博客新手一枚,象牙塔的老白,職業場的小白。如下內容僅爲我的看法,歡迎批評指正,不喜勿噴![握手][握手]html

1、基於內容的智能推薦:最古老的智能推薦方案!

1. 定義

根據用戶歷史喜歡的item,爲用戶推薦與其內容類似的item。python

2. 主要步驟

(1)從用戶每一個歷史item的內容中抽取出一些特徵
  • 結構化數據:直接用便可
  • 非結構化數據:轉化爲結構化數據後再使用(例如:針對文本數據的向量空間模型、TF-IDF等)
(2)利用用戶歷史喜歡或不喜歡的item特徵集合,學習出用戶的興趣特徵表示
  • 能夠直接選擇item的類似度衡量方法:歐幾里得距離(適用於結構化數據)、餘弦類似性(適用於非結構化數據轉化後的向量表示)等
  • 能夠採用機器學習算法進行有監督訓練:線性迴歸、最近鄰、樸素貝葉斯、決策樹、神經網絡等
(3)比較用戶的興趣特徵與候選item的特徵,選擇相關性前Top-n的item進行推薦
  • 若是2中直接採用類似度衡量方法:只要把與用戶興趣特徵最相關的n個item做爲推薦返回給用戶便可
  • 若是2中採用機器學習算法:只要把模型預測的用戶最可能感興趣的n個item做爲推薦返回給用戶便可

3. 優缺點

(1)優勢
  • 不須要其它用戶的數據,沒有物品冷啓動問題和數據稀疏問題
  • 能推薦新的或不是很流行的項目,沒有新項目問題
  • 能爲具備特殊興趣愛好的用戶進行推薦
  • 能夠經過推薦項目的內容特徵,解釋其推薦理由
(2)缺點
  • 存在用戶冷啓動問題
  • 對item內容的特徵抽取並不容易實現
  • 將各用戶獨立,只能推薦用戶歷史感興趣的item,用戶的潛在喜愛沒法挖掘

2、基於協同過濾的智能推薦:最流行的智能推薦方案!

1. 基於內存的協同過濾方法

(1)基於用戶的推薦:主要考慮用戶之間的類似度,將類似用戶評分Top-n的物品推薦給用戶

(2)基於物品的推薦:主要考慮物品之間的類似度,將與用戶喜愛物品類似度Top-n的物品推薦給用戶

(3)優缺點

和基於內容的推薦方法相比,該協同過濾具備以下的優勢:面試

  • 可以過濾難以進行機器自動內容分析的信息,如藝術品、音樂等
  • 可以共享其餘用戶的經驗,避免了內容分析的不徹底和不精確
  • 可以有效使用其餘類似用戶的反饋信息,加快個性化學習的速度
  • 具備推薦新信息的能力,能夠發現用戶潛在的但本身還沒有發現的興趣偏好

但該協同過濾仍有許多的問題須要解決:算法

  • 存在冷啓動問題和數據稀疏問題
  • 商品、用戶越多,協同過濾越複雜,可擴展問題
  • 不能爲具備特殊興趣愛好的用戶進行推薦(找不到類似用戶)

2. 基於模型的協同過濾方法:最主流的智能推薦方案!

(1)基於關聯規則的推薦:主要方法是從 Apriori 和 FP-Growth 兩個算法發展演變而來(計算複雜度過大)

(2)基於矩陣分解的推薦:主要方法包括SVD分解及其變種、分解機、張量分解等(都未解決數據稀疏問題和冷啓動問題)
(3)基於隱語義模型的推薦:主要方法包括隱性語義分析LSA和隱含狄利克雷分佈LDA等。(主要是基於用戶的nlp語義分析進行相關推薦)

(4)基於機器學習的推薦(參考數據挖掘項目全流程介紹)
  • 基於聚類算法的推薦:k-means、層次聚類等
  • 基於分類算法的推薦:最近鄰、樸素貝葉斯、決策樹等
  • 基於迴歸算法的推薦:線性迴歸、邏輯迴歸等
  • 基於集成學習的推薦:gbdt、xgboost、lightgbm等
(5)CTR預估模型演變之路(手動劃重點)
  • LR/GBDT/xgboost:機器學習算法的直接使用
  • FM/FFM:FM在LR的基礎上,考慮了特徵間的二次交叉;而FFM則是在FM的基礎上,考慮了特徵交叉的field特色

  • GBDT+LR/FM/FFM:GBDT模型可以學習高階非線性特徵組合、LR/FM/FFM易於處理大規模稀疏數據

  • MLR:等價於聚類+lr,先聚成m類,而後每一個聚類單獨訓練一個LR,分而治之

 

  • DNN/wide & deep/deepFM/NFM/DCN等(引入深度學習):都是在高階特徵的提取上下了很多功夫
    • wide & deep:能夠看做是 DNN 和特徵工程的融合
    • deepFM/NFM:能夠看做是FM、FFM和DNN的融合
    • DCN :cross網絡是FM在高階特徵組合的推廣,不須要特徵工程
    • 後續還有引入注意力機制、強化學習等的智能推薦方法

  • 雙塔模型DSSM:兩側分別對{用戶,上下文} 和 {物品} 進行建模網絡

(6)基於圖模型的推薦
  • SimRank系列算法和馬爾科夫模型算法:基於用戶-物品二分圖的拓撲結構信息來衡量任意兩個對象間的類似程度
  • 基於知識圖譜的推薦:
    • 基於特徵的推薦方法:主要是從知識圖譜中抽取用戶和物品的屬性做爲特徵,放入到傳統的模型中(只引入了實體特徵,沒有引入關係特徵)
    • 基於路徑的推薦方法:將知識圖譜視爲一個異構信息網絡(用戶-物品),而後構造物品之間的基於meta-path的特徵(meta-path是鏈接兩個實體的一條特定的路徑)
    • 知識圖譜特徵學習:基於距離的翻譯模型追求h + r = t(TransE、TransH、TransR等)、基於語義的匹配模型將h/r/t輸入網絡中學習(SME、NTN、MLP、NAM等)
    • 結合知識圖譜特徵學習的推薦系統:依次訓練學習(DKN)、聯合訓練學習(CKE/Ripple Network)、交替訓練學習(MKR)

 3、混合推薦

1. 從推薦結果的角度

  • 加權型混合推薦:指將多種推薦技術的計算結果加權混合產生推薦
  • 分支型混合推薦:指根據問題背景和實際狀況採用不一樣的推薦方法
  • 混雜型混合推薦:指採用多種推薦技術給出的推薦結果,即取並集

2. 從特徵的角度

  • 特徵組合:指組合來自不一樣推薦數據源的特徵被另外一種推薦算法所採用
  • 特徵擴充:指一種技術產生附加的特徵信息嵌入到另外一種推薦技術的特徵輸入中

3. 從算法的角度

  • 加強型混合推薦:指前一個推薦方法的輸出做爲後一個推薦方法的輸入
  • 層疊型混合推薦:指第一推薦方法輸出粗略的推薦列表,該推薦列表又由下一推薦方法改進

4. 從系統的角度

  • 離線學習和在線學習:hadoop/storm/spark等大數據環境下的智能推薦
  • 知足業務上的一些需求:加入人工規則等

 4、智能推薦系統可能存在的問題

1. 冷啓動問題

  • 主要包含新用戶啓動問題、新物品啓動問題和新系統啓動問題
  • 能夠採用熱門物品推薦、根據地域推薦、讓用戶選擇興趣標籤、根據好友推薦、利用交叉領域信息等方法

2. 數據稀疏性問題

  • 能夠採用簡單填值、用戶/物品聚類、矩陣分解、降維、混合推薦等方法

3. 馬太/長尾效應機器學習

  • 指的是存在熱門物品愈來愈受關注、其餘物品愈來愈得不到關注的問題
  • 能夠採用混合推薦等方法

4. 模糊問題ide

  • 指的是用戶的興趣愛好不太明顯、比較散亂(例如一家人用同一個智能電視)
  • 能夠採用混合推薦等方法

5. 同義問題oop

  • 指的是存在推薦相關性過大、甚至推薦重複的物品給用戶(例如一個物品的不一樣版本)
  • 能夠採用混合推薦等方法

6. 穩定性/可塑性問題post

  • 指的是用戶興趣會慢慢改變、而推薦系統仍然保留用戶的歷史興趣
  • 能夠對用戶的興趣物品進行時間衰減操做

7. 多樣性/精確性問題學習

  • 能夠採用混合推薦等方法

 5、智能推薦的企業級應用

1. 採用召回候選集+業務規則過濾+模型打分排序的智能推薦系統思路

2. 採用分支型混合推薦應對不一樣的業務場景

3. 評估指標

我的理解企業級的上線問題以及評估指標,應該與數據挖掘相似,這裏再也不贅述。

  • 一是離線算法自己的評估指標:分類問題評估指標和迴歸問題評估指標等
  • 二是業務上線的評估指標:例如點擊率、轉化率等

 

老規矩,最後直接上完整的思惟導圖!

若是您對數據挖掘感興趣,歡迎瀏覽個人另外一篇博客:數據挖掘比賽/項目全流程介紹

若是您對人工智能算法感興趣,歡迎瀏覽個人另外一篇博客:人工智能新手入門學習路線和學習資源合集(含AI綜述/python/機器學習/深度學習/tensorflow)

若是你是計算機專業的應屆畢業生,歡迎瀏覽個人另一篇博客:若是你是一個計算機領域的應屆生,你如何準備求職面試?

若是你是計算機專業的本科生,歡迎瀏覽個人另一篇博客:若是你是一個計算機領域的本科生,你能夠選擇學習什麼?

若是你是計算機專業的研究生,歡迎瀏覽個人另一篇博客:若是你是一個計算機領域的研究生,你能夠選擇學習什麼?

若是你對金融科技感興趣,歡迎瀏覽個人另外一篇博客:若是你想了解金融科技,不妨先了解金融科技有哪些可能?

以後博主將持續分享各大算法的學習思路和學習筆記:hello world: 個人博客寫做思路

相關文章
相關標籤/搜索