【推荐系统入门】一窥推荐系统的原理
一、推薦系統介紹
一句話介紹推薦系統的作用:高效地達成用戶與意向對象的匹配。
1.1 推薦系統的應用
推薦系統是建立在海量數據挖掘基礎上,高效地為用戶提供個性化的決策支持和信息服務,以提高用戶體驗及商業效益。常見的推薦應用場景如:
資訊類:今日頭條、騰訊公眾號等新聞、廣告、文章等內容推薦;
電商類:淘寶、京東、拼多多、亞馬遜等商品推薦;
娛樂類:抖音、快手、愛奇藝等視頻推薦;
生活服務類:美團、大眾點評、攜程等吃喝玩樂推薦;
社交類:微信、陌陌等好友推薦;
1.2 推薦系統的目標
構建推薦系統前,首先要根據業務目標確定推薦系統的優化目標,對于不同的應用場景,推薦系統(模型學習)關注的是不同的業務指標,比如:
對于電商推薦,不僅要預測用戶的點擊率(CTR),更重要的是預測用戶的轉化率(CVR);
對于內容推薦,業務關心的除了CTR,還有閱讀/觀看時長、點贊、轉發、評論等指標;
由于不同的業務指標可能存在一些聯系,技術實現上,大多數時候都會設計一個多目標優化的框架(如:CTR和CVR模型進行Cotrain),共同進行模型的訓練與預測,各個任務之間能夠更好地共享信息。
二、推薦系統的技術架構
2.1 推薦系統的層次組成
推薦系統基于海量的物品數據的挖掘,通常由 召回層→排序層(粗排、精排、重排)組成,不同的層次的組成,其實也就是信息篩選的漏斗,這也是工程上效率的需要,把意向對象的數量從粗獷到精細化的篩選過程(這過程就像是找工作的時候,HR根據簡歷985/211粗篩出一部分,再做技能匹配及面試精準篩選,最終敲定合適的人選):
召回層:從物品庫中根據多個維度篩選出潛在物品候選集(多路召回),并將候選集傳遞給排序環節。在召回供給池中,整個召回環節的輸出量往往以萬為單位。召回層主要作用是在海量的候選做粗篩,由于召回位置靠前且輸入空間較大,所以時延要求較高,偏好簡單方法,簡單快速地確定候選集。常用方法有:召回策略(如推薦熱門文章、命中某類標簽的文章等等)、雙塔模型(學習用戶及物品的embedding,內積表示預測意向概率)、FM及CF等模型做召回、知識圖譜(知識圖譜表示學習,知識推理用戶對物品的興趣程度)、用戶(多興趣)行為序列預測做召回等等。
粗排層:利用規則或者簡單模型對召回的物品進行排序,并根據配額進行截斷,截取出 Top N 條數據輸出給精排層,配額一般分業務場景,整個粗排環節的輸出量往往以千為單位。
精排層:利用大量特征的復雜模型,對物品進行更精準的排序,然后輸出給重排層,整個精排環節的輸出量往往以百為單位。粗排、精排的環節是推薦系統最關鍵,也是最具有技術含量的部分,使用的方法有深度學習推薦模型(Deep& Cross、NFM等)、強化學習等等。
重排層:主要以產品策略為導向進行重排(及融合),常見策略如去除已曝光、去重、打散、多樣性、新鮮度、效益優先等策略,并根據點擊回退在列表中插入新的信息來提升體驗,最后生成用戶可見的推薦列表,整個融合和重排環節的輸出量往往以幾十為單位。
2.2 冷啟動方法
對于完整的推薦系統結構,還需要考慮一個問題是:對于新的用戶、新的物品如何有效推薦的問題,也就是“冷啟動”的問題,因為沒有太多數據和特征來學習召回及排序模型,所以往往要用一些冷啟動方法替代來達到目的(這個目的不只是提高點擊等消費指標,更深層的可能會極大的帶動業務增長)。
冷啟動一般分為三類,用戶冷啟動、物品冷啟動還有系統冷啟動,常用的冷啟動方法如:
提供熱門及多樣性內容推薦。即使用統計的方法將最熱門的物品進行推薦,越熱門且品類豐富的內容被點擊的可能性越大;
利用新用戶基本信息關聯到相關內容(利用領域、職位、工作年齡、性別和所在地等信息給用戶推薦感興趣或者相關的內容,如年齡-關聯電影表、收入-關聯商品類型表,性別-文章關聯表等等);
利用新物品的內容關聯到相似物品,并對應相關用戶。
三、推薦系統的相關技術
縱觀推薦技術的發展史,簡單來說就是特征工程自動化的過程,從人工設計特征+LR,到模型實現自動特征交互:如基于LR的自動特征交互組合的因式分解機FM及FFM 以及 GBDT樹特征+LR ,到自動提取高層次特征的深度學習模型(DNN)。
推薦系統整體技術棧可以分為傳統機器學習推薦及深度學習推薦,而不同的推薦層偏好不同(復雜度、精確度)的模型或策略(圖來源:王喆老師的專欄):
3.1 傳統機器學習推薦模型
傳統機器學習推薦可以簡單劃分為協同過濾算法及基于邏輯回歸的序列算法:
3.1.1 協同過濾的相關算法
協同過濾算法可以簡單劃分為基于用戶/物品的方法:
基于用戶的協同過濾算法(UserCF)
通過分析用戶喜歡的物品,我們發現如果兩個用戶(用戶A 和用戶 B)喜歡過的物品差不多,則這兩個用戶相似。此時,我們可以將用戶 A 喜歡過但是用戶 B 沒有看過的物品推薦給用戶 B。基于用戶的協同過濾算法(UserCF)的具體實現思路如下:
(1)計算用戶之間的相似度;(2)根據用戶的相似度,找到這個集合中用戶未見過但是喜歡的物品(即目標用戶興趣相似的用戶有過的行為)進行推薦。
基于物品的協同過濾算法(ItemCF)
通過分析用戶喜歡的物品,我們發現如果兩個物品被一撥人喜歡,則這兩個物品相似。此時,我們就會將用戶喜歡相似物品中某個大概率物品推薦給這群用戶。基于物品的協同過濾算法的具體實現思路如下:
(1)計算物品之間的相似度;(2)就可以推薦給目標用戶沒有評價過的相似物品。
矩陣分解法
對于協同過濾算法,它本質上是一個矩陣填充問題,可以直接通過相似度計算(如基于用戶的相似、基于物品的相似等)去解決。但有一問題是現實中的共現矩陣中有絕大部分的評分是空白的,由于數據稀疏,因此在計算相似度的時候效果就會大打折扣。這里我們可以借助矩陣分解方法,找到用戶和物品的表征向量(K個維度,超參數),通過對用戶向量和物品向量的內積則是用戶對物品的偏好度(預測評分)。
由于矩陣分解引入了隱因子的概念,模型解釋性很弱。另外的,它只簡單利用了用戶對物品的打分(特征維度單一),很難融入更多的特征(比如用戶信息及其他行為的特征,商品屬性的特征等等)。而這些缺陷,下文介紹的邏輯回歸的相關算法可以很好地彌補。
3.1.2 邏輯回歸的相關算法
邏輯回歸(LR)由于其簡單高效、易于解釋,是工業應用最為廣泛的模型之一,比如用于金融風控領域的評分卡、互聯網的推薦系統。它是一種廣義線性的分類模型且其模型結構可以視為單層的神經網絡,由一層輸入層、一層僅帶有一個sigmoid激活函數的神經元的輸出層組成,而無隱藏層。
LR模型計算可以簡化成兩步,“通過模型權重[w]對輸入特征[x]線性求和 ,然后sigmoid激活輸出概率”。其中,sigmoid函數是一個s形的曲線,它的輸出值在[0, 1]之間,在遠離0的地方函數的值會很快接近0或1。
由于LR是線性模型,特征表達(特征交互)能力是不足的,為提高模型的能力,常用的有特征工程的方法或者基于模型的方法。
基于特征工程的優化
通過人工結合業務設計特征、特征衍生工具(如FeatureTools)暴力生成特征 以及 特征離散化編碼等特征工程的方法,為LR引入非線性的表達。具體可以參見【邏輯回歸優化】
基于模型的優化
另外還可以基于模型的方法提升特征交互的能力。如POLY2、引入隱向量的因子分解機(FM)可以看做是LR的基礎上,對所有特征進行了兩兩交叉,生成非線性的特征組合。
但FM等方法只能夠做二階的特征交叉,更高階的,可以利用GBDT自動進行篩選特征并生成特征組合,也就是提取GBDT子樹的特征劃分及組合路徑作為新的特征,再把該特征向量當作LR模型輸入,也就是經典的GBDT +LR方法。(需要注意的,GBDT子樹深度太深的化,特征組合層次比較高,極大提高LR模型擬合能力的同時,也容易引入一些噪聲,導致模型過擬合)
GBDT-LR相關代碼可以參見【邏輯回歸優化】
3.2 深度學習推薦模型
深度學習能夠全自動從原有數據中提取到高層次的特征,深度學習推薦模型的進化趨勢簡單來說是 Wide(廣)及 ?Deep(深)。Wide部分善于處理大量稀疏的特征,便于讓模型直接“記住”大量原始的特征信息,Deep部分的主要作用有更深層的擬合能力,發現更高層次特征隱含的本質規律。
3.2.1 深度矩陣分解(雙塔結構)
深度矩陣分解模型(Deep Matrix Factorization Model,DMF)是以傳統的矩陣分解(MF)模型為基礎,再與 MLP 網絡組合而成的一種模型,其中 MF 主要負責線性部分,MLP 主要負責非線性部分,它主要以學習用戶和物品的高階表征向量為目標。
DMF 模型的框架圖如下所示:該模型的輸入層為交互矩陣 Y,其行、列分別對應為對用戶和對物品的打分,并采用 multi-hot 形式分別表征用戶和物品。我們將用戶表征 Yi* 和物品表征 Y*j 分別送入 MLP 雙塔結構,生成用戶隱向量表征 Pi 和物品隱向量表征 qj。最后對二者使用余弦點積匹配分數。
3.2.2 Wide&Deep
與其說廣深(Wide&Deep)模型是一種模型,倒不如說是一套通用的范式框架。Wide&Deep 模型由 LR+MLP 兩部分并聯組成,綜合了傳統機器學習和深度學習的長處。
Wide 部分根據歷史行為數據推薦與用戶已有行為直接相關的物品;
Deep 部分負責捕捉新的特征組合,從而提高推薦的多樣性。
3.2.3 深度因子分解機(DeepFM)模型
深度因子分解機(Deep Factorization Machine,DeepFM)模型是從廣深(Wide&Deep)框架中演化出來的一種模型。它使用 FM 模型替換掉了 LR 部分,從而形成了 FM&Deep 結構。
3.2.4 Deep&Cross
深度和交叉網絡(Deep & Cross Network,DCN)模型是從廣深(Wide&Deep)框架中演化出來的一個模型。DCN 模型將 Wide 部分替換為由特殊網絡結構實現的特征交叉網絡,它的框架如下圖所示:左側的交叉層除了接收前一層的輸出外,還會同步接收原始輸入層的特征,從而實現特征信息的高階交叉。
3.2.5 注意力因子分解機(AFM)
注意力因子分解機(Attentional Factorization Machine,AFM)模型也是Wide&Deep 框架中的一種,它通過添加 Attention 網絡,自動學習不同特征之間交互的重要性。
3.2.6 神經因子分解機(NFM)
神經因子分解機(Neural Factorization Machine)模型也是 Wide&Deep 框架中的一種。NFM 模型把 Wide 部分放到一邊不做變化,Deep 部分在 FM 的基礎上結合了 MLP 部分。其中,FM 部分能夠提取二階線性特征,MLP 部分能夠提取高階非線性特征,從而使模型具備捕捉高階非線性特征的能力。
NFM 模型框架的 Deep 部分如下圖所示,NFM 模型是在 Embedding 層后將 FM 的輸出進行 Bi-Interaction Pooling 操作(將表征向量的兩兩元素相乘后,再將所有組合的結果進行求和),然后在后面接上 MLP。
小結:本文介紹了推薦系統的作用及組成,并對核心技術及發展做了解析。但更為關鍵的,推薦系統是工程上的應用,我們下一篇文章會結合實際營銷推薦場景做推薦項目實戰(Pyhton),敬請期待。
參考文獻:
https://zhuanlan.zhihu.com/p/100019681?
https://zhuanlan.zhihu.com/p/63186101?
https://zhuanlan.zhihu.com/p/61154299
- END -文章首發公眾號“算法進階”,文末閱讀原文可訪問文章原文及相關代碼
往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載黃海廣老師《機器學習課程》視頻課黃海廣老師《機器學習課程》711頁完整版課件
本站qq群955171419,加入微信群請掃碼:
總結
以上是生活随笔為你收集整理的【推荐系统入门】一窥推荐系统的原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ReferenceError: prim
- 下一篇: win7发现不了无线网络怎么办 win7