日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > windows >内容正文

windows

推荐系统(Recommender System)笔记 01:推荐系统的演化

發(fā)布時(shí)間:2024/1/1 windows 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 推荐系统(Recommender System)笔记 01:推荐系统的演化 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

推薦系統(tǒng)(Recommender System)01

  • 推薦系統(tǒng)的架構(gòu)
    • 數(shù)據(jù)部分
    • 模型部分
  • 傳統(tǒng)推薦模型
    • 協(xié)同推薦(Collaborative Filtering)
    • 矩陣分解(Matrix Factorization)
    • 邏輯回歸(Logistic Regression)
    • 自動(dòng)特征交叉的解決方案
      • POLY2 模型 - 特征交叉的開始
      • FM 模型 - 隱向量特征交叉
      • FFM 模型 - 引入特征域
      • * 從 POLY2 到 FFM 的演化過(guò)程
      • GBDT + LR - 特征工程模型化
        • GBDT 模型
      • LS-PLM - 阿里曾經(jīng)的主流推薦模型
  • 深度學(xué)習(xí)推薦模型
    • AutoRec - 單隱層神經(jīng)網(wǎng)絡(luò)推薦模型
    • Deep Crossing - 深度學(xué)習(xí)架構(gòu)
    • NerualCF 模型 - CF 與深度學(xué)習(xí)相結(jié)合
    • PNN 模型 - 加強(qiáng)特征交叉能力
    • Wide&Deep 模型 - 記憶能力與泛化能力的綜合
      • *Deep&Cross 模型
    • FM 模型族和深度學(xué)習(xí)模型的結(jié)合
      • FNN 模型 - 使用 FM 的隱向量完成 Embedding 層的初始化
      • DeepFM - 用 FM 替代 Wide 部分
      • NFM - FM 的神經(jīng)網(wǎng)絡(luò)化
    • 注意力機(jī)制(Attention Policy)
      • AFM - 引入注意力機(jī)制的 FM 模型
      • DIN - 引入注意力機(jī)制的深度網(wǎng)絡(luò)
    • DIEN - 序列模型與推薦模型的結(jié)合
      • 興趣抽取層
      • 興趣進(jìn)化層
    • 強(qiáng)化學(xué)習(xí)與推薦系統(tǒng)
    • 總結(jié)

推薦系統(tǒng)的架構(gòu)

推薦系統(tǒng) (RS) 的核心思想:

在獲知 “用戶信息”,“物品信息”,“場(chǎng)景信息” 的基礎(chǔ)上,推薦系統(tǒng)要處理的問(wèn)題可以較形式化地定義為:對(duì)于用戶 U (user),在特定場(chǎng)景 C (context) 下,針對(duì)海量的 “物品” 信息,構(gòu)建一個(gè)函數(shù) f(U,I,C) ,預(yù)測(cè)用戶對(duì)特定候選物品 I (item) 的喜好程度,再根據(jù)喜好程度對(duì)所有候選物品進(jìn)行排序,生成推薦列表的問(wèn)題。

根據(jù)上述思想,可以得到推薦系統(tǒng)的邏輯框架,如下圖所示:

對(duì)于實(shí)際的推薦系統(tǒng),需要著重解決的問(wèn)題有 2 個(gè):

  • 數(shù)據(jù)和信息相關(guān)問(wèn)題:即如何獲取、存儲(chǔ)和處理 “用戶信息”,“物品信息”,“場(chǎng)景信息” 這三類數(shù)據(jù)
  • 算法和模型相關(guān)問(wèn)題:即如何選擇、訓(xùn)練和優(yōu)化模型。
  • 針對(duì)這兩個(gè)部分的問(wèn)題 ,我們可以得到推薦系統(tǒng)的技術(shù)架構(gòu):

    數(shù)據(jù)部分

    主要負(fù)責(zé)"用戶" “物品” "場(chǎng)景"的信息收集與處理。處理之后的數(shù)據(jù)主要有三個(gè)用途:

  • 作為推薦模型使用的樣本數(shù)據(jù)。主要用于模型的訓(xùn)練、測(cè)試和評(píng)估
  • 用以提取 “模型服務(wù)” 需要的特征 (feature),作為線上推斷的依據(jù)
  • 生成系統(tǒng)監(jiān)控、商業(yè)智能 (Business Intelligence , BI) 系統(tǒng)所需的統(tǒng)計(jì)型數(shù)據(jù)
  • 模型部分

    該部分是推薦系統(tǒng)的主體,模型的結(jié)構(gòu)由 “召回層” “排序?qū)印?"補(bǔ)充策略與算法層"組成:

    • 召回層:使用相對(duì)簡(jiǎn)單高效的召回算法從海量候選集中召回用戶可能感興趣的對(duì)象(第一次縮小范圍)
    • 排序?qū)?/strong>:利用排序模型對(duì)初篩的候選集進(jìn)行精排序
    • 補(bǔ)充策略與算法層:“再排序?qū)印?#xff0c;對(duì)于排序?qū)拥慕Y(jié)果,綜合額外的因素,補(bǔ)充算法進(jìn)行進(jìn)一步的篩選和排序

    傳統(tǒng)推薦模型

    根據(jù)演化關(guān)系圖,我們可以看到,傳統(tǒng)的推薦模型主要分為下面幾類:

  • 協(xié)同推薦模型 (Collaborative Filtering):從物品相似度和用戶相似度角度出發(fā),主要分為 User-user Collaborative Filtering 和 Item-item Collaborative Filtering,以及為了解決稀疏矩陣問(wèn)題衍生出的矩陣分解
  • 邏輯回歸模型 (Logistic Regression):與協(xié)同過(guò)濾僅利用用戶和物品之間的顯式或隱式反饋信息相比,邏輯回歸能夠利用和融合更多用戶、物品及上下文特征
  • 因子分解機(jī)模型 (Factorization Model):因子分解機(jī)在傳統(tǒng)邏輯回歸的基礎(chǔ)上,加入了二階部分,使模型具備了進(jìn)行特征組合的能力
  • 混合模型 (Mixed Model):結(jié)合多種模型
  • 協(xié)同推薦(Collaborative Filtering)

    矩陣分解(Matrix Factorization)

    該部分的內(nèi)容已經(jīng)在之前做過(guò)筆記,參考:Big Data Management筆記06:Recommender Systems

    這里只做一些總結(jié)。

    邏輯回歸(Logistic Regression)

    邏輯回歸 (Logistic Regression) 和前面兩種推薦模型有很大不同。協(xié)同推薦(Collaborative Filtering)主要僅利用用戶 (User) 和對(duì)象 (Item) 的相互行為信息作為推薦的依據(jù),而邏輯回歸 (Logistic Model) 模型能夠綜合利用對(duì)象、用戶、上下文等多種特征進(jìn)行全面推薦。 另外,邏輯回歸可以作為基本的感知機(jī)來(lái)充當(dāng)神經(jīng)網(wǎng)絡(luò)的基本神經(jīng)元。

    邏輯回歸本質(zhì)作為一個(gè)分類器 (Classifier),在推薦系統(tǒng)中,也扮演相同的角色。協(xié)同推薦 (CF) 和矩陣分解 (MF) 主要利用用戶之間或者對(duì)象之間的相似度 (Similarity) 進(jìn)行推薦,而邏輯回歸 (LR) 則把問(wèn)題轉(zhuǎn)換為其本職的分類問(wèn)題 (Classification)。通過(guò)預(yù)測(cè)對(duì)象為 “正樣本 (Positive)” 的概率,來(lái)對(duì)對(duì)象進(jìn)行排序。這里的 “正樣本” 可以根據(jù)用戶是否點(diǎn)擊、購(gòu)買、標(biāo)記等行為進(jìn)行標(biāo)簽。

    具體的推薦流程和分類任務(wù)的過(guò)程基本一致:

  • 將用戶年齡、性別、對(duì)象屬性、對(duì)象價(jià)格等特征組成特征向量 (特征工程與數(shù)據(jù)處理)
  • 確定邏輯回歸的優(yōu)化目標(biāo)(降低誤差率/提高點(diǎn)擊率等),使用樣本數(shù)據(jù)對(duì)模型進(jìn)行訓(xùn)練,確定模型的參數(shù)
  • 在模型服務(wù)階段(實(shí)測(cè)階段),將對(duì)象的特征向量輸入模型,得到該對(duì)象為 “正樣本” (用戶會(huì)點(diǎn)擊/購(gòu)買)的概率
  • 使用得到的概率進(jìn)行排序
  • 具體的數(shù)學(xué)過(guò)程如下所示,激活函數(shù)選擇 Sigmoid 將結(jié)果映射到 [0, 1] 之間。

    邏輯回歸模型 (LR) 的整個(gè)推斷過(guò)程如下式所示:

    邏輯回歸 (LR) 的優(yōu)勢(shì):

  • 數(shù)學(xué)含義上的支撐:“點(diǎn)擊事件” 和 LR 模型中的因變量 y 都服從伯努利分布
  • 可解釋性強(qiáng):LR 使用各特征的加權(quán)和是為了綜合不同特征對(duì)CTR 的影響,而不同特征的重要程度不一樣,所以為不同特征指定不同的權(quán)重代表不同特征的重要程度。這很符合我們的常理認(rèn)知
  • 工程化需要:邏輯回歸模型憑借其易于并行化、模型簡(jiǎn)單、訓(xùn)練開銷小等特點(diǎn),占據(jù)著工程領(lǐng)域的主流
  • 邏輯回歸 (LR) 的局限性:

    表達(dá)能力不強(qiáng),無(wú)法進(jìn)行特征交叉、特征篩選等一系列較為"高級(jí)"的操作,因此不可避免地造成信息的損失

    自動(dòng)特征交叉的解決方案

    邏輯回歸模型 (LR) 的表達(dá)能力不夠強(qiáng),不可避免地會(huì)造成信息損失。這是因?yàn)檫壿嫽貧w (LR) 只對(duì)單一特征做簡(jiǎn)單加權(quán),不具備進(jìn)行高維組合特征的能力,甚至可能會(huì)得出 “辛普森悖論” 那樣的錯(cuò)誤結(jié)論。因此需要對(duì)邏輯回歸模型 (LR) 進(jìn)行改造,使其具備特征交叉的能力。

    “辛普森悖論”:在對(duì)樣本集合進(jìn)行研究時(shí),在分組中占據(jù)優(yōu)勢(shì)的一方,在總體評(píng)價(jià)中反而會(huì)失勢(shì)的現(xiàn)象。

    比如:

    在上面這個(gè)分組樣本中,視頻 B 的點(diǎn)擊率都更高,因此應(yīng)當(dāng)推薦視頻 B。但是如果將數(shù)據(jù)匯總

    此時(shí)會(huì)發(fā)現(xiàn),視頻 A 的點(diǎn)擊率反而更高。這是因?yàn)槲覀円婚_始使用了 “視頻 ID + 用戶性別” 的組合特征計(jì)算點(diǎn)擊率,而在匯總數(shù)據(jù)中,我們使用 “視頻 ID” 這一單一特征

    POLY2 模型 - 特征交叉的開始

    POLY2 模型會(huì)對(duì)特征進(jìn)行 “暴力” 組合。它會(huì)將兩個(gè)特征 (xj1, xj2) 兩兩組合,窮舉出所有可能的組合,并且為每一個(gè)特征組合賦一個(gè)權(quán)值 wh(j1,j2) 。POLY2 模型本質(zhì)上還是線性模型。

    FM 模型 - 隱向量特征交叉

    依舊是窮舉組合,不同在于這里所賦的權(quán)值是兩個(gè)向量的內(nèi)積 (wj1 · wj2)。可以說(shuō) FM (因子分解) 是將 矩陣分解 (MF) 的隱向量思想更進(jìn)一步,從單純的對(duì)象 (Item) 和用戶 (User) 隱向量推廣到所有特征上。FM 模型將 POLY2 中 n2 級(jí)別的權(quán)重參數(shù)數(shù)量減少到 nk (k 為隱向量維度)

    相比于 POLY2,FM 會(huì)丟失對(duì)某些具體特征組合的精確記憶能力,但是有著更好的泛化能力

    我們考慮一種特征組合 <channel, brand>,某個(gè)訓(xùn)練樣本的特征組合為 <ESPN, Adidas>

    在 POLY2 中,只有當(dāng) ESPN 和 Adidas 同時(shí)出現(xiàn)在一個(gè)訓(xùn)練樣本中時(shí),模型才能學(xué)到這個(gè)特征組合的權(quán)重;

    在 FM 中,ESPN 的隱向量可以通過(guò) (ESPN, Gucci) 樣本進(jìn)行更新,Adidas 的隱向量也可以用通過(guò) (NBC, Adidas) 樣本進(jìn)行更新,如此一來(lái)大幅降低了模型對(duì)數(shù)據(jù)稀疏性的要求

    對(duì)于一個(gè)從未出現(xiàn)的特征組合 (NBC, Gucci) 由于模型在此之前已經(jīng)學(xué)習(xí)了 NBC 和 Gucci 的隱向量,因此也能計(jì)算該特征組合的權(quán)重

    FFM 模型 - 引入特征域

    FFM 基于 FM 引入了特征域感知 (field-aware) 這一概念,使得模型的表達(dá)能力更強(qiáng)。我們可以很清楚地從公式中看到,此時(shí)特征 xj1 的隱向量由 FM 中的 wj1 變?yōu)?wj1,f2,這就表示每一個(gè)特征的隱向量不唯一,而是有一組隱向量。

    仍然以公式為例,當(dāng)特征 xj1 與 xj2 進(jìn)行交叉時(shí),xj1 特征會(huì)從它的一組隱向量中,挑選與特征 xj2 的域 f2 對(duì)應(yīng)的隱向量 wj1,f2 進(jìn)行叉積計(jì)算

    這里需要對(duì)域 (field) 進(jìn)行介紹。這里的域就是所謂的特征域 (feature field),域內(nèi)的特征一般都是 one-hot 形式的特征向量。比如對(duì)于 ”性別“ 這個(gè)特征來(lái)說(shuō),表征為 ”女“ 的 one-hot 特征向量為 [0, 1, 0],此時(shí)的 ”性別“ 特征域中,全都是類似的 one-hot 向量。

    在了解了特征域的概念之后,我們?cè)僬w看一個(gè) FFM 模型的例子:

    根據(jù)訓(xùn)練樣本,我們可以知道,共有 3 個(gè)特征域 Publisher, Advertiser, Gender。

    在 FM 模型中,我們針對(duì)該樣本得到的權(quán)值應(yīng)為:wESPN · wNIKE 和 wESPN · wMale。在前后兩次特征交叉過(guò)程中,wESPN 的值是一樣的;

    在 FFM 模型中,ESPN 和 NIKE,ESPN 和 Male 交叉特殊的權(quán)重為:wESPN,A · wNIKE,P 和 wESPN,G · wMale,P。我們注意到 ESPN 在與 NIKE 和 Male 交叉時(shí)分別使用了不同的隱向量,這是因?yàn)?NIKE 和 Male 分別處于不同的特征域中

    在 FFM 模型中,需要學(xué)習(xí) n 個(gè)特征在 f 個(gè)特征域中的 k 維隱向量,因此參數(shù)數(shù)量為 n · f · k。訓(xùn)練過(guò)程中,不能像 FM 那樣簡(jiǎn)化,因此復(fù)雜度為 f · n2

    * 從 POLY2 到 FFM 的演化過(guò)程

    理論上來(lái)說(shuō),FM 模型族可以將交叉特征的方法推及 3 階甚至是更高維的向量組合。但是由于組合爆炸問(wèn)題的限制,從三階起,FM 模型的權(quán)重?cái)?shù)量以及訓(xùn)練復(fù)雜度都會(huì)很高,因此很難適用于實(shí)際問(wèn)題。

    GBDT + LR - 特征工程模型化

    我們前面已經(jīng)說(shuō)過(guò) FM 模型族只能用來(lái)處理二階的特征交叉,在涉及三階以及三階以上的高維特征交叉時(shí),會(huì)不可避免地面對(duì)組合爆炸以及復(fù)雜度過(guò)高地問(wèn)題。為了能更有效地進(jìn)行高維特征組合,GBDT + LR 的組合模型應(yīng)運(yùn)而生。

    該模型的整體思想:使用 GBDT 自動(dòng)進(jìn)行特征篩選和組合,生成新的離散特征向量,再把這個(gè)特征向量輸入給 LR 模型,最終預(yù)估 CTR 的一種組合模型。

    作為組合模型的兩個(gè)部分,GBDT 和 LR 模型是分開獨(dú)立訓(xùn)練的,因此我們不需要關(guān)心如何將 LR 的梯度回傳給 GBDT 模型。

    GBDT 模型

    GBDT 的基本結(jié)構(gòu)是決策樹 (Decision Tree) 組成的森林,學(xué)習(xí)的方式為梯度提升。

    GBDT 會(huì)逐一生成決策樹以生成整片森林,生成新子樹的過(guò)程是利用樣本標(biāo)簽值與當(dāng)前森林 (current forest) 預(yù)測(cè)值之間的殘差。

    比如當(dāng)前森林一共有 3 棵樹,那么,其預(yù)測(cè)值為:

    D(x) = dtree1(x) + dtree2(x) + dtree3(x)

    此時(shí)生成第四棵子樹,目標(biāo)是讓當(dāng)前預(yù)測(cè)結(jié)果加上第四棵子樹的預(yù)測(cè)結(jié)果更加接近擬合函數(shù) f(x) :

    D(x) + dtree4(x) = f(x)

    所以第四棵子樹的生成過(guò)程,是以目標(biāo)擬合函數(shù)和當(dāng)前預(yù)測(cè)值的殘差 R(x) 為目標(biāo)的:

    R(x) = f(x) - D(x)

    每棵樹的生成過(guò)程是一棵標(biāo)準(zhǔn)的回歸樹生成的過(guò)程,每個(gè)節(jié)點(diǎn)的分裂都是自然的特征選擇過(guò)程。

    接下來(lái)看 GBDT 如何進(jìn)行特征組合。GBDT 可以將原始的特征向量轉(zhuǎn)換為新的離散型特征向量。一個(gè)樣本在被輸入某個(gè)子樹后,最終會(huì)根據(jù)節(jié)點(diǎn)的規(guī)則,落入某個(gè)葉節(jié)點(diǎn),此時(shí)該葉節(jié)點(diǎn)值為 1,其余葉節(jié)點(diǎn)值為 0,所有葉節(jié)點(diǎn)組成的向量就是該樹的特征向量。而把森林中所有子樹的特征向量連接起來(lái)就是最后要輸入 LR 模型的離散型特征向量

    子樹 1 的特征向量為 [0, 0, 1, 0];

    子樹 2 的特征向量為 [1, 0, 0, 0];

    子樹 3 的特征向量為 [0, 0, 0, 1];

    最終的離散型特征向量為 [0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1]

    決策樹的深度 (Depth) 就決定了特征交叉的階數(shù)。如果深度為 4,那么有 3 層節(jié)點(diǎn)分裂,最終的葉節(jié)點(diǎn)換言之是 3 階特征組合之后的結(jié)果。 而這正是 FM 模型族最欠缺的能力 - 高階的特征組合能力。

    但是 GBDT 也存在缺點(diǎn),那就是容易過(guò)擬合 (overfitting),且它的特征轉(zhuǎn)換方式實(shí)際導(dǎo)致許多特征的數(shù)值信息丟失。 所以我們不能單純因?yàn)樘卣鹘M合能力強(qiáng)就說(shuō) GBDT 的效果比 FFM 更好,還是需要結(jié)合實(shí)際情況來(lái)選擇模型。

    GBDT + LR 的組合模型,其最大的意義在于開啟了特征工程模型化,特征工程完全交予一個(gè)獨(dú)立的模型完成,模型的輸入可以是原始的特征向量,讓程序員無(wú)需花費(fèi)過(guò)多的時(shí)間在特征工程上,實(shí)現(xiàn)了完全的端到端 (End to End) 訓(xùn)練。

    LS-PLM - 阿里曾經(jīng)的主流推薦模型

    大規(guī)模分段線性模型 (Large Scale Piece-Wise Linear Model, LS-PLM) 是前深度學(xué)習(xí)時(shí)代最后一個(gè)主流推薦模型。LS-PLM 也可成為混合邏輯回歸模型 (Mixed Logistic Model)。它屬于 LR 的衍生模型,基于 LR 提出了 ”分而治之“ 的思想,即先對(duì)樣本進(jìn)行切片,在不同的切片中應(yīng)用 LR 進(jìn)行 CTR 預(yù)估。

    一種比較直覺(jué)的切片方法就是聚類 (Clustering)。為了讓 CTR 模型對(duì)不同的用戶群體和應(yīng)用場(chǎng)景更具針對(duì)性,采用的方法就是先對(duì)全部的樣本進(jìn)行聚類,再對(duì)不同的簇 (Cluster) 運(yùn)用 LR 模型進(jìn)行 CTR 預(yù)估。

    具體的公式如上所示,其中 π(x) 就是聚類函數(shù) (Clustering Function),該函數(shù)采用 softmax 函數(shù)對(duì)樣本進(jìn)行多分類,再用 η(x) 表示的邏輯模型計(jì)算樣本在分片中具體的 CTR ,然后將兩者相乘之后求和。值得注意的是參數(shù) m,這是一個(gè)超參數(shù),表示聚類中簇 (Cluster) 的數(shù)量(”分片數(shù)“),當(dāng) m=1 時(shí),模型會(huì)退化為基本的 LR 模型;m 越大,模型的擬合能力越強(qiáng),同時(shí)模型的參數(shù)量也會(huì)越來(lái)越大,擬合所需的樣本數(shù)量就越多。

    為了便于理解,我們可以直觀比較 LR 和 LS-PLM 模型的分類效果。通過(guò)下面的樣本分類結(jié)果可以看到,LR 很難找到非線性的決策邊界/平面,但是 MLR 可以通過(guò) 4 分片完美處理這個(gè)問(wèn)題:

    LS-PLM 主要有 2 個(gè)優(yōu)點(diǎn):

  • 端到端的非線性學(xué)習(xí)能力:因?yàn)榫邆錁颖厩衅芰?#xff0c;因此可以挖掘出數(shù)據(jù)中隱藏的非線性模式。節(jié)省特征工程上的人力。使得 LS-PLM 可以完成端到端的訓(xùn)練,便于用一個(gè)模型對(duì)不同的應(yīng)用領(lǐng)域和業(yè)務(wù)場(chǎng)景進(jìn)行統(tǒng)一建模。
  • 模型的稀疏性強(qiáng):LS-PLM 在建模時(shí)引入了 L1 和 L2 范數(shù),可以使訓(xùn)練出來(lái)的模型有更高的稀疏性,讓模型的部署更加輕量級(jí)。模型服務(wù)過(guò)程僅需使用權(quán)重非零特征,因此稀疏模型也使其在線推斷的效率更高。
  • 從深度學(xué)習(xí)的角度來(lái)看,可以把 LS-PLM 模型看作是一個(gè)加入了注意力機(jī)制 (Attention) 的三層神經(jīng)網(wǎng)絡(luò)。 第一層是輸入層,輸入樣本的特征向量;中間層是 m 個(gè)神經(jīng)元組成的隱藏層,這里的 m 就是切片的數(shù)量;對(duì)于一個(gè) CTR 預(yù)估問(wèn)題,LS-PLM 最后一層就是單一神經(jīng)元組成的全連接層/輸出層。

    注意力機(jī)制應(yīng)用于隱藏層和輸出層之間,神經(jīng)元之間的權(quán)重是由分片函數(shù)得出的注意力得分 (attention score) 來(lái)確定的。換言之,樣本屬于哪個(gè)切片的概率就是其注意力得分。

    深度學(xué)習(xí)推薦模型

    上面這張演化圖展現(xiàn)了以多層感知機(jī) (MLP) 為核心演化而出的一系列深度學(xué)習(xí)模型,主要的演化方向有以下幾種:

  • 改變神經(jīng)網(wǎng)絡(luò)復(fù)雜程度,增加深度神經(jīng)網(wǎng)絡(luò)的層數(shù)和復(fù)雜度
  • 豐富深度學(xué)習(xí)網(wǎng)絡(luò)中的特征交叉方式
  • 通過(guò)結(jié)合兩種不同特點(diǎn)、優(yōu)勢(shì)互補(bǔ)的深度學(xué)習(xí)網(wǎng)絡(luò),提升模型的綜合能力
  • FM 模型的深度學(xué)習(xí)演化版本
  • 注意力機(jī)制和推薦模型相結(jié)合
  • 序列模型和推薦模型相結(jié)合
  • 強(qiáng)化學(xué)習(xí)和推薦模型相結(jié)合
  • AutoRec - 單隱層神經(jīng)網(wǎng)絡(luò)推薦模型

    該模型是將自編碼器 (AutoEncoder) 和CF 相結(jié)合的一種單隱藏層神經(jīng)網(wǎng)絡(luò)推薦模型。AutoRec 是一個(gè)標(biāo)準(zhǔn)的自編碼器 (AutoEncoder),它的核心思想在于利用 CF 中的共現(xiàn)矩陣,完成 User 向量和 Item 向量的自編碼,使用自編碼的結(jié)果來(lái)獲取 User 對(duì) Item 的預(yù)估評(píng)分,以此作為推薦的依據(jù)。

    自編碼器 (AutoEncoder)

    無(wú)論是視頻、音頻還是其他形式的數(shù)據(jù)都可以表示為向量的形式。假設(shè)這個(gè)向量為 r,自編碼器的意義在于將該向量作為輸入,使輸出的向量盡可能接近 r 本身。

    假設(shè)自編碼的重構(gòu)函數(shù)為 h(r, θ),那么自編碼器的損失函數(shù)/目標(biāo)函數(shù)為:

    這里的 S 就是所有數(shù)據(jù)向量的集合。完成訓(xùn)練之后的自編碼器,相當(dāng)于在重構(gòu)函數(shù) h(r, θ) 中保留了所有數(shù)據(jù)向量的精華。重構(gòu)函數(shù)的參數(shù)量遠(yuǎn)遠(yuǎn)小于輸入數(shù)據(jù)向量的維度量,因此,自編碼器實(shí)質(zhì)上完成了數(shù)據(jù)的壓縮和降維。

    在 AutoRec 中,我們?cè)僖淮慰紤] User 和 Item 組成的貢獻(xiàn)矩陣,我們可以從這個(gè)矩陣中提取出 “對(duì) Item i,所有 m 個(gè) User 對(duì)它的評(píng)分可以組成一個(gè) m 維的評(píng)分向量”。 AutoRec 的主要任務(wù)就是構(gòu)建一個(gè)重構(gòu)函數(shù) h(r, θ),使得該重構(gòu)函數(shù)生成的所有評(píng)分向量與原向量的平方殘差和最小。 在得到這個(gè)重構(gòu)函數(shù)之后,經(jīng)過(guò)評(píng)分預(yù)估和排序,就能得到最終的推薦列表。

    我們之前已經(jīng)說(shuō)過(guò),AutoRec 使用的是單隱藏層的神經(jīng)網(wǎng)絡(luò)模型,其結(jié)構(gòu)如下圖所示:

    藍(lán)色部分就是構(gòu)成隱藏層的神經(jīng)元。該模型的輸入層是評(píng)分向量 r,輸出層是一個(gè)多分類層,藍(lán)色神經(jīng)元表示 k 維隱藏層(k << m)。VW 分別表示輸入層-隱藏層和隱藏層-輸出層的參數(shù)矩陣。該模型表示的重構(gòu)函數(shù)如下所示:

    其中 f(·) 和 g(·) 分別是輸出層神經(jīng)元和隱藏層神經(jīng)元的激活函數(shù)。為防止重構(gòu)函數(shù)過(guò)擬合,在加入 L2 正則化之后,目標(biāo)函數(shù)/損失函數(shù)變?yōu)?#xff1a;

    作為一個(gè)只有三層的神經(jīng)網(wǎng)絡(luò),只需要利用梯度反向傳播(鏈?zhǔn)椒▌t)即可完成對(duì)網(wǎng)絡(luò)的訓(xùn)練。

    在了解了 AutoRec 的結(jié)構(gòu)之后,對(duì)于該模型的推薦方式就會(huì)感到十分直覺(jué)。輸入一個(gè) Item 的評(píng)分向量 r(i),模型的輸出向量 h(r(i), θ) 就是預(yù)測(cè)的所有 User 對(duì)于當(dāng)前 Item 的評(píng)分匯總,那么只需要找到第 u 維,即可得知 User u 對(duì)該 Item 的預(yù)估評(píng)分,使用這樣的方法可以得到 User u 對(duì)所有 Item 的預(yù)估評(píng)分,對(duì)這些評(píng)分進(jìn)行排序即可得到最后的推薦列表。

    根據(jù)是針對(duì) Item 評(píng)分向量還是 User 的評(píng)分向量搭建模型,AutoRec 可以分為 I-AutoRec 和 U-AutoRec。相比于 I-AutoRec,U-AutoRec 的優(yōu)勢(shì)在于只需要輸入一次目標(biāo)用戶的評(píng)分向量就能得到推薦列表,劣勢(shì)在于用戶的評(píng)分向量一般會(huì)比較稀疏,這回影響模型效果。

    AutoRec 使用了一個(gè)但隱藏層的神經(jīng)網(wǎng)絡(luò)模型,因此具有一定的泛化和表達(dá)能力,但是因?yàn)榻Y(jié)構(gòu)較為簡(jiǎn)單,因此表達(dá)能力會(huì)有些薄弱。

    Deep Crossing - 深度學(xué)習(xí)架構(gòu)

    是微軟 Bing 首先應(yīng)用的模型。目標(biāo)在于提高搜索廣告的點(diǎn)擊率。將特征分為 3 種類型,可用 one-hot/multi-hot 表示的類別型特征;數(shù)值型特征和需要深入處理的特征。在生成了所有輸入特征的特征向量之后,Deep Crossing 利用該特征向量預(yù)估 CTR。

    在這個(gè)深度模型中,需要考慮以下三個(gè)問(wèn)題:

  • 如何應(yīng)對(duì)類別型特征會(huì)產(chǎn)生的稀疏向量,該如何進(jìn)行稠密化
  • 如何進(jìn)行特征自動(dòng)交叉
  • 如何在輸出層種達(dá)成目標(biāo)設(shè)定的優(yōu)化問(wèn)題
  • 該模型一共有 4 層網(wǎng)絡(luò),以應(yīng)對(duì)以上提出的問(wèn)題。從下至上分別為:Embedding 層、Stacking 層、Multiple Residual Units 層、Scoring 層:

    • Embedding 層:將輸入的稀疏的類別特征向量轉(zhuǎn)換為稠密的 Embedding 向量。 該層以經(jīng)典的全連接層 (Fully Connected) 結(jié)構(gòu)為主。Embedding 向量的維度會(huì)遠(yuǎn)遠(yuǎn)低于原始的稀疏特征向量
    • Stacking 層:將 Embedding 特征和數(shù)值型特征結(jié)合起來(lái),形成新的向量。 因此這層也被稱為拼接層 (Concatenate Layer)
    • Multiple Residual Units 層:該層的主要結(jié)構(gòu)是多層感知機(jī)。一般的神經(jīng)網(wǎng)絡(luò)以感知機(jī)作為基本單元,組成神經(jīng)網(wǎng)絡(luò)。Deep Crossing 使用多層殘差網(wǎng)絡(luò) (Multi-Layer Residual Networks) 作為 MLP (Multi Layer Perceptron) 的具體實(shí)現(xiàn)。多層殘差網(wǎng)絡(luò)可以對(duì)特征向量的各個(gè)維度進(jìn)行充分的交叉組合,使模型學(xué)習(xí)到更多非線性特征以及組合特征
    • Scoring 層:作為輸出層,是為擬合優(yōu)化目標(biāo)而存在的。對(duì)于 CTR 預(yù)估這種二分類,可采用邏輯回歸;對(duì)多分類,可使用 Softmax

    基于這樣的結(jié)構(gòu),使用反向傳播算法進(jìn)行訓(xùn)練。

    NerualCF 模型 - CF 與深度學(xué)習(xí)相結(jié)合

    先從 DL 的角度回顧一下矩陣分解 (MF)。簡(jiǎn)單回顧一下矩陣分解的思想:將 CF 中的 User-Item 共現(xiàn)矩陣分解為 User 向量矩陣和 Item 向量矩陣。User u 的隱向量和 Item i 的隱向量?jī)?nèi)積就是 u 對(duì) i 的預(yù)估評(píng)分。

    類比上面提到的 Deep Crossing,矩陣分解 (MF) 的 User 隱向量和 Item 隱向量就是一種 Embedding 方法。最后通過(guò) User 隱向量和 Item 隱向量?jī)?nèi)積得到 User 對(duì) Item 的預(yù)估得分就類比最終的 Scoring 層,因此可以得到如下所示的矩陣分解的網(wǎng)絡(luò)化表示圖:

    但在實(shí)際使用中,會(huì)發(fā)現(xiàn)矩陣分解常常無(wú)法對(duì)優(yōu)化目標(biāo)有效擬合,這是因?yàn)榫仃嚪纸獾慕Y(jié)構(gòu)相對(duì)簡(jiǎn)單,特別是 Scoring 層,因此出現(xiàn)了欠擬合。

    NerualCF 使用 “多層神經(jīng)網(wǎng)絡(luò) + 輸出層” 替代了矩陣分解中的內(nèi)積操作:

    這樣的操作有 2 個(gè)好處。首先,讓特征能夠更充分地交叉組合,得到更多有價(jià)值地特征組合;其次,引入了更多非線性特征,讓模型有了更強(qiáng)的表達(dá)能力。

    實(shí)際上 User 向量和 Item 向量之間的互操作可以用很多方式代替,這被成為 “廣義矩陣分解”。原本在矩陣分解中,使用的是內(nèi)積作為互操作方式。實(shí)際上可以選擇使用 “元素積 (Element Product)”,該計(jì)算的結(jié)果仍是一個(gè)向量,每個(gè)元素為兩個(gè)輸入向量對(duì)應(yīng)元素的乘積。然后再通過(guò)邏輯回歸等輸出層擬合最終的目標(biāo)。

    再進(jìn)一步,可以將通過(guò)不同互操作網(wǎng)絡(luò)得到的特征向量拼接起來(lái),然后交給輸出層進(jìn)行目標(biāo)擬合。這就可以構(gòu)成一個(gè) NerualCF 混合模型:

    上圖中的混合模型結(jié)合了一般的 NerualCF 和使用元素積的冠以矩陣分解。

    NerualCF 可以利用神經(jīng)網(wǎng)絡(luò)的優(yōu)勢(shì),擬合任意函數(shù),靈活地組合特征,按需求增減模型地復(fù)雜度。但由于是基于 CF 構(gòu)造的,所以沒(méi)有引入更多其他類型地特征,浪費(fèi)了其他的有價(jià)值信息。

    PNN 模型 - 加強(qiáng)特征交叉能力

    剛剛說(shuō)過(guò),NeuralCF 因?yàn)闀r(shí)基于 CF 構(gòu)造的,因此值使用了 User 和 Item 兩組特征向量,所以浪費(fèi)了其他信息。為了強(qiáng)化多組特征的交互能力,PNN 誕生了。

    與 Deep Crossing 模型相比,PNN 最主要的區(qū)別體現(xiàn)在使用乘積層 (Product Layer) 替代了 Stacking 層。換言之,不再簡(jiǎn)單地拼接 Embedding 向量,而是用 Product 操作進(jìn)行兩兩交互,更有針對(duì)性地獲取特征之間的交叉信息。

    再把目光放到輸入層上,我們可以看到,PNN 模型的輸入并不是只有 User 和 Item 兩種向量,而是有多種不同來(lái)源的特征向量,這些向量在通過(guò) Embedding 層之后,都會(huì)變?yōu)殚L(zhǎng)度相同的稠密向量 (Dense Vector),這也是后續(xù)乘積操作的必要條件。PNN 模型在乘積層 (Product Layer) 提供了更多的特征交叉方式。

    根據(jù)模型結(jié)構(gòu)圖,我們可以清晰地看到成績(jī)層 (Product Layer) 由 2 部分組成:z 和 p

    • z 部分:線性操作部分。將各特征向量進(jìn)行線性拼接
    • p 部分:乘積操作部分。該部分又分為內(nèi)積操作和外積操作
    • 使用內(nèi)積操作的 PNN 被稱為 IPNN (Inner Product-based Neural Network)
    • 使用外積操作的 PNN 被稱為 OPNN (Outer Product-based Neural Network)

    內(nèi)積 (Inner Product) = 點(diǎn)積 (Dot Product):

    兩個(gè)向量的內(nèi)積是一個(gè)標(biāo)量:a = (1, 2, 3), b = (4, 5, 6), a · b = 1*4 + 2 * 5 + 3 * 6 = 32

    外積 (Outer Product) = 叉積 (Cross Product):

    兩個(gè)向量的外積是一個(gè)向量,該向量是向量 a 和 b 組成的平面的法向量

    由于外積會(huì)讓兩個(gè) M 維的向量得到一個(gè) M x M 的矩陣,因此參數(shù)量直接從 M 變?yōu)?M2。對(duì)此 PNN 提出了一個(gè)降維的方法。將所有特征 Embedding 向量?jī)蓛苫ゲ僮鞯玫降耐夥e結(jié)果 (矩陣) 進(jìn)行累加,形成一個(gè)疊加外積互操作矩陣 p:

    矩陣 p 的最終結(jié)果等同于讓所有特征的 Embedding 向量通過(guò)一個(gè) Average Pooling 再進(jìn)行外積互操作。

    這里的平均池化實(shí)際上需要斟酌,因?yàn)榘巡煌卣飨蛄康耐痪S度進(jìn)行平均有一個(gè)前提,那就是默認(rèn)不同特征在對(duì)應(yīng)維度有類似的含義。但是很明顯這是很難遵守的,比如 “年齡” 和 “地域” 特征向量根本無(wú)關(guān)聯(lián),那就更不可能在某個(gè)維度上有類似的含義。所以,平均池化一般發(fā)生在同類的特征向量之間

    PNN 考慮到了多種特征的交叉組合,內(nèi)積和外積的操作更具針對(duì)性地強(qiáng)調(diào)了不同特征之間的交互,讓模型更容易捕捉特征的交叉信息。但是在實(shí)際應(yīng)用中,為了提升外積操作的效率,會(huì)進(jìn)行簡(jiǎn)化操作,另外這樣的無(wú)差別交叉會(huì)丟失蘊(yùn)含在原始數(shù)據(jù)中更有價(jià)值的信息。

    Wide&Deep 模型 - 記憶能力與泛化能力的綜合

    Google 提出的模型,是由單層的 Wide 和多層的 Deep 部分組成的混合模型。其中:

  • wide 部分負(fù)責(zé)記憶能力 (Memorization)
  • deep 部分負(fù)責(zé)泛化能力 (Generalization)
  • 記憶能力 (Memorization):模型直接學(xué)習(xí)和利用歷史數(shù)據(jù)中物品或者特征的 “共現(xiàn)頻率 (co-occurrence frequency)” 的能力。 CF, LR 等模型有很強(qiáng)的記憶能力,因?yàn)榻Y(jié)構(gòu)相對(duì)簡(jiǎn)單,原始的數(shù)據(jù)可以直接影響最后的推薦結(jié)果,實(shí)質(zhì)上達(dá)成 “因?yàn)橛眠^(guò) A,所以推薦 B” 的效果。相當(dāng)于模型記住了歷史數(shù)據(jù)的分布特點(diǎn),并用這段記憶進(jìn)行推薦。(可以看作是表征對(duì)強(qiáng)特征的記憶能力

    泛化能力 (Generalization):模型傳遞特征的相關(guān)性,以及發(fā)掘稀疏甚至是從未出現(xiàn)過(guò)的稀疏特征與最終標(biāo)簽相關(guān)性的能力。 矩陣分解 (MF) 和神經(jīng)網(wǎng)絡(luò)有著更強(qiáng)的泛化能力,因?yàn)樗鼈兗词菇邮盏降氖潜容^稀疏的特征向量,也能給出相對(duì)穩(wěn)定的推薦概率

    wide&deep 模型將 “記憶能力” 強(qiáng)的簡(jiǎn)單模型和 “泛化能力” 強(qiáng)的深度模型結(jié)合在一起。根據(jù)上面的模型結(jié)構(gòu)圖可以看到,單輸入層的 wide 部分和由 Embedding 層與多隱層組成的 deep 部分連接起來(lái),一起輸入到最后的輸出層。 wide 部分處理大量稀疏類的 ID 特征;deep 部分使用神經(jīng)網(wǎng)路,進(jìn)行特征交叉,挖掘深層次的數(shù)據(jù)規(guī)律。最后,使用邏輯回歸模型 (LR) 將 wide 和 deep 部分結(jié)合,形成統(tǒng)一的模型。

    *Deep&Cross 模型

    Deep&Cross 模型是 Wide&Deep 的進(jìn)階版。主要的區(qū)別在于用 Cross 網(wǎng)絡(luò)替代原本的 wide 部分。

    Cross 網(wǎng)絡(luò)會(huì)進(jìn)一步增強(qiáng)特征之間的交叉力度。若第 l 層的輸出向量為 xl,那么第 l +1 層的輸出向量為:

    這個(gè)交叉層的操作和 PNN 模型中的外積操作非常相似,不過(guò)現(xiàn)在增加了外積操作的權(quán)重向量 W 以及輸入向量 xl 和偏置向量 bl 具體的操作如下圖所示:

    Corss 層對(duì)于參數(shù)增加顯得非常謹(jǐn)慎。每一次操作僅增加了一個(gè) n 維的權(quán)重 w 向量,且都保留了原始的輸出向量,因此輸出和輸入之間的變化不會(huì)十分明顯。與 Wide&Deep 模型中的 Wide 部分相比,Cross 增加了特征自動(dòng)交叉,避免了更多的人工特征工程。但是,論及對(duì)于特征的理解以及對(duì)于非線性特征的學(xué)習(xí),Deep 部分還是獨(dú)占鰲頭。

    FM 模型族和深度學(xué)習(xí)模型的結(jié)合

    FNN 模型 - 使用 FM 的隱向量完成 Embedding 層的初始化

    FNN 模型最大的特點(diǎn)在于對(duì) Embedding 層的改進(jìn)。在神經(jīng)網(wǎng)絡(luò)中,參數(shù)初始化往往會(huì)采用隨機(jī)初始化,因此不會(huì)包含任何先驗(yàn)信息。同時(shí),因?yàn)?Embedding 層的輸入是稀疏向量,因此收斂速度會(huì)非常慢,進(jìn)而拖慢整個(gè)模型的收斂速度。

    FNN 模型選擇使用 FM 模型訓(xùn)練好的各特征隱向量初始化 Embedding 層的參數(shù),也就是在這個(gè)時(shí)候,已經(jīng)為網(wǎng)絡(luò)引入了先驗(yàn)信息。FM 的數(shù)學(xué)表達(dá)式中各參數(shù)與 Embedding 層參數(shù)對(duì)應(yīng)關(guān)系如下:

    具體來(lái)看如何初始化 Embedding 層神經(jīng)元與輸入層神經(jīng)元的連接權(quán)值。如果 FM 模型的隱向量是 m 維的,第 i 個(gè)特征域 (Field) 的第 k 維特征的隱向量為 vi,k = (vi,k1, vi,k2, vi,k3, …, vi,km)。那么隱向量第 l 維就會(huì)成為輸入層神經(jīng)元 k 與 Embedding 層神經(jīng)元 l 的連接權(quán)值的初始值。

    在 FM 模型的訓(xùn)練中,我們沒(méi)有對(duì)特征域進(jìn)行區(qū)分,但在 FNN 模型中,特征被劃分為不同的特征域,每個(gè)特征域有對(duì)應(yīng)的 Embedding 層,且每個(gè)特征域的 Embedding 層的神經(jīng)元數(shù)量與 FM 隱向量維度相同。

    DeepFM - 用 FM 替代 Wide 部分

    這是 FM 模型與 Wide&Deep 模型的結(jié)合:

    DeepFM 相比原有的 Wide&Deep 模型,最大的改動(dòng)在于使用 FM 替換了 Wide 部分,加強(qiáng)了淺層網(wǎng)絡(luò)部分特征組合的能力。 根據(jù)上面的模型結(jié)構(gòu)圖,我們可以知道:

    • 左邊的 FM 與右邊的深度神經(jīng)網(wǎng)絡(luò)共享同一個(gè) Embedding 層
    • 左邊的 FM 將不同特征域的 Embedding 兩兩交叉(以 Embedding 作為特征隱向量)
    • 左邊的 FM 輸出與右邊 Deep 部分輸出一同輸出給輸出層,參與最后的目標(biāo)擬合

    這一模型的改進(jìn)動(dòng)機(jī)與 Deep&Cross 一致,皆為解決 Wide 部分不具備特征組合的缺陷。因此,我們可以類比 Deep&Cross 和 DeepFM 兩個(gè)模型,都是對(duì) Wide 部分進(jìn)行替換

    NFM - FM 的神經(jīng)網(wǎng)絡(luò)化

    我們?cè)谥敖榻B FM 模型族時(shí)已經(jīng)說(shuō)過(guò),這一系列模型最大的缺點(diǎn)在于只能對(duì)二階特征進(jìn)行組合,難以擴(kuò)展到多階特征組合。NFM 模型的思想是使用一個(gè)表達(dá)能力更強(qiáng)的函數(shù)去替代 FM 中的二階隱向量?jī)?nèi)積部分:

    這里對(duì)于這個(gè)新函數(shù) f(x) 的構(gòu)造,可以交由某個(gè)深度神經(jīng)網(wǎng)絡(luò)來(lái)完成。

    NFM 網(wǎng)絡(luò)架構(gòu)的特點(diǎn)在于它在 Embedding 層和多層神經(jīng)網(wǎng)絡(luò)之間添加了特征交叉池化層 (Bi-interaction Pooling Layer)。 我們用 Vx 表示所有特征域的 Embedding 向量的集合,特征交叉池化層進(jìn)行的工作可由下式表示:

    這里的 ⊙ 表示向量對(duì)應(yīng)維度數(shù)值相乘,最后的結(jié)果應(yīng)為維度相同的一個(gè)新向量。在對(duì) Embedding 向量?jī)蓛蛇M(jìn)行了元素積的操作之后,對(duì)結(jié)果向量進(jìn)行求和,其結(jié)果即為特征交叉池化層的輸出,將它輸入之后的多層全連接神經(jīng)網(wǎng)絡(luò),進(jìn)行進(jìn)一步交叉。

    上述的這三種模型都是在深度神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上,加入由針對(duì)性的特征交叉操作,讓模型具備更強(qiáng)的非線性表達(dá)能力。但到此為止,特征工程在推薦模型上的探究已經(jīng)到達(dá)了一個(gè)幾乎窮盡的地步。因此,后續(xù)對(duì)于模型的改良更偏重于 “結(jié)構(gòu)” 上的改進(jìn)。

    注意力機(jī)制(Attention Policy)

    注意力機(jī)制的直觀體現(xiàn)就是注意力熱度圖,可以顯式表達(dá)用戶對(duì)不同區(qū)域注意力的分布情況。

    AFM - 引入注意力機(jī)制的 FM 模型

    由浙江大學(xué)提出的 AFM 是引入了注意力機(jī)制的 FM 模型,可以說(shuō)是 NFM 的延續(xù)。回顧一下 NFM 的核心思想:

    在對(duì) Embedding 向量?jī)蓛蛇M(jìn)行了元素積的操作之后,對(duì)結(jié)果向量進(jìn)行求和,其結(jié)果即為特征交叉池化層的輸出,將它輸入之后的多層全連接神經(jīng)網(wǎng)絡(luò),進(jìn)行進(jìn)一步交叉

    問(wèn)題就出現(xiàn)在求和池化 (Sum Pooling) 上,單純的求和忽略了不同特征對(duì)最后結(jié)果的影響程度。因此需要引入 “注意力機(jī)制” 來(lái)彌補(bǔ)這個(gè)問(wèn)題,注意力機(jī)制的基本思想:不同的交叉特征對(duì)于最終結(jié)果的影響程度不同,因此模型會(huì)將更多的注意力投入給更重要的交叉特征。

    根據(jù)上面的結(jié)構(gòu)圖,我們能夠知道,AFM 模型是通過(guò)在特征交叉層和輸出層之間添加了注意力網(wǎng)絡(luò) (Attention Net) 實(shí)現(xiàn)的,這個(gè)網(wǎng)絡(luò)會(huì)為每一組交叉特征賦予一個(gè)權(quán)重。 特征交叉的過(guò)程與 NFM 一致,仍使用元素積的方式,但通過(guò)引入注意力網(wǎng)絡(luò),我們有了一個(gè)新的變量,注意力得分 a:

    這個(gè)注意力得分 ai,j 就是注意力網(wǎng)絡(luò)為交叉特征 xixj 賦予的權(quán)重。注意力網(wǎng)絡(luò)本身的結(jié)構(gòu)并不復(fù)雜,是單層全連接網(wǎng)絡(luò)加上 softmax 層

    需要學(xué)習(xí)的模型參數(shù)就是:

    • W:特征交叉網(wǎng)絡(luò)到注意力網(wǎng)絡(luò)的權(quán)重矩陣
    • b:偏置 (bias) 向量
    • h:注意力網(wǎng)絡(luò)全連接層到 softmax 層的

    這個(gè)模型會(huì)整體進(jìn)行訓(xùn)練,得到最后的參數(shù)

    DIN - 引入注意力機(jī)制的深度網(wǎng)絡(luò)

    這是由阿里開發(fā)的商業(yè)模型,應(yīng)用場(chǎng)景為電商廣告推薦。在這個(gè)場(chǎng)景下,模型輸入特征自然而然地分為兩個(gè)部分:

  • 用戶 u 的特征組
  • 候選廣告 a 的特征組
  • 它們都包含有 2 個(gè)重要特征:商品 ID 和商鋪 ID。用戶特征組中的商品 ID 和商鋪 ID 都是該用戶的歷史點(diǎn)擊記錄序列;而廣告特征組則簡(jiǎn)單的對(duì)應(yīng)廣告內(nèi)容中的商品及其對(duì)應(yīng)商鋪。

    在這個(gè)模型中,注意力機(jī)制主要用于體現(xiàn)不同用戶特征的重要程度。同時(shí),用戶特征的注意力得分應(yīng)該與廣告特征相互關(guān)聯(lián)。

    從模型的角度來(lái)看,需要利用候選商品與用戶的歷史點(diǎn)擊商品之間的相關(guān)性計(jì)算出權(quán)值,這個(gè)權(quán)值就是 “注意力得分”。引入了這個(gè)注意力得分的 DNN 就是 DIN:

    在這個(gè)式子中:

    • Vu:用戶的 Embedding 向量
    • Va:候選廣告商品的 Embedding 向量
    • Vi:用戶 u 在第 i 次瀏覽的商品/商鋪的 Embedding 向量
    • wi:g(Vi, Va),“注意力得分”,即 Vi 和 Va 之間的相關(guān)性

    g(Vi, Va) 函數(shù)就是一個(gè)注意力激活神經(jīng)元 (activation unit),位于結(jié)構(gòu)圖的右上角。即輸入兩個(gè) Embedding 向量,做差運(yùn)算,結(jié)果與原有的兩個(gè) Embedding 向量連接,通過(guò)單神經(jīng)元輸出層得到注意力得分。

    從數(shù)學(xué)角度來(lái)看,“注意力機(jī)制” 實(shí)際上就是將原本的直接求和操作變?yōu)榧訖?quán)求和,但是因此更加符合人類天生的 “注意力機(jī)制”,從而提升了對(duì)于特征的學(xué)習(xí)能力,進(jìn)而優(yōu)化了推薦結(jié)果。

    DIEN - 序列模型與推薦模型的結(jié)合

    這是阿里基于 DIN 模型不斷研究得出的升級(jí)版模型,其最大的特點(diǎn)在于==引入了 “時(shí)間” 這一不可忽視的變量,模擬了用戶興趣的變化==。之前已經(jīng)說(shuō)過(guò),用戶的特征組記錄著歷史行為,這樣的序列信息具有時(shí)間維度的價(jià)值,將這樣的時(shí)間信息納入考慮是必要的,因?yàn)樵诨ヂ?lián)網(wǎng)時(shí)代,一個(gè)用戶的興趣變化速度是極快的,因此,擁有了一個(gè)用戶的序列信息(歷史行為)就能夠:

  • 加強(qiáng)最近行為對(duì)未來(lái)行為預(yù)測(cè)的影響。 簡(jiǎn)單地來(lái)說(shuō),時(shí)間越近地行為,置信度越高
  • 序列模型可學(xué)習(xí)到購(gòu)買趨勢(shì)等信息。 序列模型能夠?qū)W習(xí)到興趣變化地 “轉(zhuǎn)移概率”
  • 比如一個(gè)男生一周前瀏覽的所有商品全為球鞋,這周變成了機(jī)械鍵盤。那么序列模型應(yīng)該能夠建立一個(gè)從 “球鞋” 到 “機(jī)械鍵盤” 的轉(zhuǎn)移概率。如果這個(gè)概率的意義足夠強(qiáng),那么在該用戶購(gòu)買球鞋時(shí),推薦機(jī)械鍵盤也是個(gè)不錯(cuò)的選擇

    DIEN 的關(guān)鍵在于,如何構(gòu)建圖中彩色部分的 “興趣進(jìn)化網(wǎng)絡(luò)”。該網(wǎng)絡(luò)是一種用戶興趣的 Embedding 方法,最終的輸出是 h’(T) 這個(gè)用戶興趣向量。 興趣進(jìn)化網(wǎng)絡(luò)的層級(jí)從下至上為:

    • 行為序列層 (Behaviour Layer):將原始的 ID 行為序列轉(zhuǎn)換為 Embedding 行為序列。與一般的 Embedding 層一致
    • 興趣抽取層 (Interest Extractor Layer):通過(guò)模擬用戶興趣遷移過(guò)程,抽取用戶的興趣
    • 興趣進(jìn)化層 (Interest Evolving Layer):在興趣抽取層上加入 “注意力機(jī)制”,模擬與當(dāng)前廣告相關(guān)的興趣進(jìn)化過(guò)程

    興趣抽取層

    興趣抽取層是一個(gè) GRU (Gated Recurrent Unit) 網(wǎng)絡(luò)。

    這是一個(gè)典型的時(shí)序網(wǎng)絡(luò) - 循環(huán)神經(jīng)網(wǎng)絡(luò)的強(qiáng)化版。 GRU 單元中用一個(gè)門 (Gate) 來(lái)決定是記住還是遺忘當(dāng)前的信息。簡(jiǎn)單來(lái)說(shuō) ut = 1 時(shí),決定遺忘過(guò)去,記住現(xiàn)在; ut = 0 時(shí),決定保留過(guò)去,不記住現(xiàn)在。

    GRU 的好處在于它解決了傳統(tǒng) RNN 的梯度消失(遺忘)問(wèn)題,但是參數(shù)量沒(méi)有 LSTM 那么多。

    在上面的式子中,σ 時(shí) Sigmoid 函數(shù),? 表示元素積操作。Wu, Wr, Wh, Uu, Ur, Uh 是六組需要學(xué)習(xí)的參數(shù)矩陣,it 是輸入狀態(tài)向量,即行為序列層的各行為 Embedding 向量 b(t),ht 是GRU 網(wǎng)絡(luò)中的第 t 個(gè)隱狀態(tài)向量。

    可以看到,在這一層,用戶的行為向量 b(t) 被進(jìn)一步抽象為興趣狀態(tài)向量 h(t),因?yàn)?GRU 本身就能用來(lái)進(jìn)行時(shí)序預(yù)測(cè),理論上我們已經(jīng)能夠預(yù)測(cè)用戶的下一個(gè)興趣狀態(tài)向量

    興趣進(jìn)化層

    興趣進(jìn)化層最大的特征在于引入了 “注意力機(jī)制”。這里的注意力得分生成機(jī)制與 DIN 完全一致,都是用當(dāng)前狀態(tài)向量與目標(biāo)廣告向量進(jìn)行相互作用。換句話說(shuō),興趣進(jìn)化層在模擬興趣變遷的過(guò)程中需要考慮與目標(biāo)廣告的相關(guān)性。因此,在興趣抽取層上增加興趣進(jìn)化層,是為了更具針對(duì)性地模擬與目標(biāo)廣告相關(guān)的興趣路徑

    用戶非常有可能同時(shí)購(gòu)買多品類商品,例如在購(gòu)買"機(jī)械鍵盤"的同時(shí) 還在查看"衣服"品類下的商品,那么這時(shí)注意力機(jī)制就顯得格外重要了 。 當(dāng)目標(biāo)廣告是某個(gè)電子產(chǎn)品時(shí),用戶購(gòu)買"機(jī)械鍵盤"相關(guān)的興趣演化路徑顯然比購(gòu)買"衣服"的演化路徑重要

    具體的做法是引入 AUGRU (GRU with Attention Update Gate)。即在原有 GRU 的更新門上加入注意力得分:

    強(qiáng)化學(xué)習(xí)與推薦系統(tǒng)

    強(qiáng)化學(xué)習(xí)的主要組成有 2 個(gè):Agent 與 Enviroment。Agent 通過(guò) Action 改變 Environment 的狀態(tài),并通過(guò) Environment 反饋的 Reward 來(lái)不斷優(yōu)化自身。我們可以把推薦系統(tǒng)也看作一個(gè) Agent,DRN 就是一個(gè)基于此思想得到的強(qiáng)化學(xué)習(xí)推薦模型框架

    在這個(gè)架構(gòu)中:

    • Agent:推薦系統(tǒng)。包括基于 DL 的推薦模型、探索策略、數(shù)據(jù)存儲(chǔ)
    • Environment:由網(wǎng)站、APP、用戶組成的整體推薦環(huán)境。用戶接收推薦結(jié)果并給出反饋
    • Action:推薦系統(tǒng)將推薦結(jié)果排序推送給用戶
    • Reward:用戶收到推薦之后做出的反饋。(曝光但未點(diǎn)擊是典型的負(fù)反饋,點(diǎn)擊就是正反饋)
    • State:對(duì) Environment 以及推薦系統(tǒng)自身所處情況的刻畫

    根據(jù)這樣一個(gè)框架,具體的學(xué)習(xí)步驟為:

  • 初始化推薦系統(tǒng) (Agent)
  • 系統(tǒng)基于已有數(shù)據(jù)生成排序的推薦結(jié)果并推送
  • 用戶收到推送,點(diǎn)擊/忽略,這就是 Reward
  • 系統(tǒng)接收 Reward,更新模型
  • 重復(fù) Step 2
  • 因此,應(yīng)用了強(qiáng)化學(xué)習(xí)的推薦系統(tǒng),其最大的特點(diǎn)就在于支持 “在線學(xué)習(xí)”

    在 DRN 中,Agent 就是 DQN (Deep Q-Network) 模型:

    此時(shí),把和具體 Action 無(wú)關(guān)的用戶特征 (User Feature) 和環(huán)境特征 (Context Feature) 作為狀態(tài)向量 (State Vector);把和推薦對(duì)象相關(guān)的用戶-對(duì)象交叉特征和對(duì)象特征作為行為向量 (Action Vector)。這里的 DQN 模型在強(qiáng)化學(xué)習(xí)領(lǐng)域?qū)嶋H上非常有名,作為一個(gè) Q-Learning 模型,它的核心任務(wù)在于學(xué)習(xí)得到一個(gè)理想的 Q-Funtion。此處的 Q-Funtion 就是用戶特征和環(huán)境特征經(jīng)過(guò)左側(cè)多層神經(jīng)網(wǎng)絡(luò)的擬合生成價(jià)值( value )得分 V(s) , 利用狀態(tài)向量和行動(dòng)向量生成優(yōu)勢(shì)( advantage )得分 A(s) 的結(jié)合。

    這個(gè)模型的學(xué)習(xí)過(guò)程依舊遵循強(qiáng)化學(xué)習(xí)的基本邏輯:

  • 使用歷史數(shù)據(jù)離線訓(xùn)練 DQN 模型
  • 在 t1 - t2 階段,使用初始模型進(jìn)行一段時(shí)間推送,收集反饋
  • 在 t2 使用得到的反饋數(shù)據(jù)對(duì)模型進(jìn)行調(diào)整
  • 在 t4 使用 t1 - t4 用戶點(diǎn)擊數(shù)據(jù)和用戶活躍度數(shù)據(jù)進(jìn)行主更新 (Major Update) - 重新訓(xùn)練
  • 重復(fù)步驟 2
  • 這里主要關(guān)注步驟 3 中如何進(jìn)行模型調(diào)整,我們主要借助競(jìng)爭(zhēng)梯度下降法 (Dueling Gradient Descent Algorithm)

    該算法主要步驟如下:

  • 對(duì)已經(jīng)訓(xùn)練好的模型 Q 的參數(shù) W 進(jìn)行隨即調(diào)整。得到新的參數(shù) W’,此時(shí)的網(wǎng)絡(luò) Q’ 就是探索網(wǎng)絡(luò)
  • 用 Q 和 Q’ 生成兩個(gè)推薦列表并進(jìn)行合并,推送給用戶之后獲取反饋
  • 如果 Q’ 好,則參數(shù)變?yōu)?W’,否則維持 W
  • 這里的隨機(jī)調(diào)整 ΔW = α * rand(-1, 1) W。α 就是探索因子,決定了探索力度的大小

    所以 DRN 就是通過(guò)不斷 “探索”,通過(guò)海量嘗試試圖達(dá)到最優(yōu)點(diǎn)。強(qiáng)化學(xué)習(xí)將模型的 “實(shí)時(shí)性” 變得極為重要。

    總結(jié)



    總結(jié)

    以上是生活随笔為你收集整理的推荐系统(Recommender System)笔记 01:推荐系统的演化的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。