一句話介紹推薦系統的作用:高效地達成用戶與意向對象的匹配。
1.1 推薦系統的應用
推薦系統是建立在海量數據挖掘基礎上,高效地為用戶提供個性化的決策支持和信息服務,以提高用戶體驗及商業效益。常見的推薦應用場景如:
構建推薦系統前,首先要根據業務目标确定推薦系統的優化目标,對于不同的應用場景,推薦系統(模型學習)關注的是不同的業務指标,比如:
由于不同的業務指标可能存在一些聯系,技術實現上,大多數時候都會設計一個多目标優化的框架(如:CTR和CVR模型進行Cotrain),共同進行模型的訓練與預測,各個任務之間能夠更好地共享信息。
二、推薦系統的技術架構2.1 推薦系統的層次組成推薦系統基于海量的物品數據的挖掘,通常由 召回層→排序層(粗排、精排、重排)組成,不同的層次的組成,其實也就是信息篩選的漏鬥,這也是工程上效率的需要,把意向對象的數量從粗犷到精細化的篩選過程(這過程就像是找工作的時候,HR根據簡曆985/211粗篩出一部分,再做技能匹配及面試精準篩選,最終敲定合适的人選):
對于完整的推薦系統結構,還需要考慮一個問題是:對于新的用戶、新的物品如何有效推薦的問題,也就是“冷啟動”的問題,因為沒有太多數據和特征來學習召回及排序模型,所以往往要用一些冷啟動方法替代來達到目的(這個目的不隻是提高點擊等消費指标,更深層的可能會極大的帶動業務增長)。
冷啟動一般分為三類,用戶冷啟動、物品冷啟動還有系統冷啟動,常用的冷啟動方法如:
縱觀推薦技術的發展史,簡單來說就是特征工程自動化的過程,從人工設計特征 LR,到模型實現自動特征交互:如基于LR的自動特征交互組合的因式分解機FM及FFM 以及 GBDT樹特征 LR ,到自動提取高層次特征的深度學習模型(DNN)。
推薦系統整體技術棧可以分為傳統機器學習推薦及深度學習推薦,而不同的推薦層偏好不同(複雜度、精确度)的模型或策略(圖來源:王喆老師的專欄):
3.1 傳統機器學習推薦模型
傳統機器學習推薦可以簡單劃分為協同過濾算法及基于邏輯回歸的序列算法:
3.1.1 協同過濾的相關算法
協同過濾算法可以簡單劃分為基于用戶/物品的方法:
通過分析用戶喜歡的物品,我們發現如果兩個用戶(用戶A 和用戶 B)喜歡過的物品差不多,則這兩個用戶相似。此時,我們可以将用戶 A 喜歡過但是用戶 B 沒有看過的物品推薦給用戶 B。基于用戶的協同過濾算法(UserCF)的具體實現思路如下:
(1)計算用戶之間的相似度;(2)根據用戶的相似度,找到這個集合中用戶未見過但是喜歡的物品(即目标用戶興趣相似的用戶有過的行為)進行推薦。
通過分析用戶喜歡的物品,我們發現如果兩個物品被一撥人喜歡,則這兩個物品相似。此時,我們就會将用戶喜歡相似物品中某個大概率物品推薦給這群用戶。基于物品的協同過濾算法的具體實現思路如下:
(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模型拟合能力的同時,也容易引入一些噪聲,導緻模型過拟合)
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 兩部分并聯組成,綜合了傳統機器學習和深度學習的長處。
深度因子分解機(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。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!