最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

推薦系統(tǒng)[二]:召回算法超詳細(xì)講解[召回模型演化過程、召回模型主流常見算法

2023-02-22 10:28 作者:汀丶人工智能  | 我要投稿

1.前言:召回排序流程策略算法簡介

推薦可分為以下四個流程,分別是召回、粗排、精排以及重排:

  1. 召回是源頭,在某種意義上決定著整個推薦的天花板;

  2. 粗排是初篩,一般不會上復(fù)雜模型;

  3. 精排是整個推薦環(huán)節(jié)的重中之重,在特征和模型上都會做的比較復(fù)雜;

  4. 重排,一般是做打散或滿足業(yè)務(wù)運營的特定強插需求,同樣不會使用復(fù)雜模型;

  • 召回層:召回解決的是從海量候選item中召回千級別的item問題

    • 統(tǒng)計類,熱度,LBS;

    • 協(xié)同過濾類,UserCF、ItemCF;

    • U2T2I,如基于user tag召回;

    • I2I類,如Embedding(Word2Vec、FastText),GraphEmbedding(Node2Vec、DeepWalk、EGES);

    • U2I類,如DSSM、YouTube DNN、Sentence Bert;

  • 模型類:模型類的模式是將用戶和item分別映射到一個向量空間,然后用向量召回,這類有itemcf,usercf,embedding(word2vec),Graph embedding(node2vec等),DNN(如DSSM雙塔召回,YouTubeDNN等),RNN(預(yù)測下一個點擊的item得到用戶emb和item emb);向量檢索可以用Annoy(基于LSH),F(xiàn)aiss(基于矢量量化)。此外還見過用邏輯回歸搞個預(yù)估模型,把權(quán)重大的交叉特征拿出來構(gòu)建索引做召回

  • 排序策略,learning to rank 流程三大模式(pointwise、pairwise、listwise),主要是特征工程和CTR模型預(yù)估;

    • CTR預(yù)估:lr,gbdt,fm及其變種(fm是一個工程團隊不太強又對算法精度有一定要求時比較好的選擇),widedeep,deepfm,NCF各種交叉,DIN,BERT,RNN

    • 多目標(biāo):MOE,MMOE,MTL(多任務(wù)學(xué)習(xí))

    • 打分公式融合: 隨機搜索,CEM(性價比比較高的方法),在線貝葉斯優(yōu)化(高斯過程),帶模型CEM,強化學(xué)習(xí)等

    • 常見的特征挖掘(user、item、context,以及相互交叉);

    • 粗排層:本質(zhì)上跟精排類似,只是特征和模型復(fù)雜度上會精簡,此外也有將精排模型通過蒸餾得到簡化版模型來做粗排

    • 精排層:精排解決的是從千級別item到幾十這個級別的問題

  • 重排層:重排層解決的是展示列表總體最優(yōu),模型有 MMR,DPP,RNN系列(參考阿里的globalrerank系列)

  • 展示層

    • 推薦理由:統(tǒng)計規(guī)則、行為規(guī)則、抽取式(一般從評論和內(nèi)容中抽?。?、生成式;排序可以用湯普森采樣(簡單有效),融合到精排模型排等等

    • 首圖優(yōu)選:CNN抽特征,湯普森采樣

  • 探索與利用:隨機策略(簡單有效),湯普森采樣,bandit,強化學(xué)習(xí)(Q-Learning、DQN)等

  • 產(chǎn)品層:交互式推薦、分tab、多種類型物料融合

2.召回算法簡介

召回區(qū)分主路和旁路,主路的作用是個性化+向上管理,而旁路的作用是查缺補漏 推薦系統(tǒng)的前幾個操作可能就決定了整個系統(tǒng)的走向,在初期一定要三思而后行 做自媒體,打廣告,漏斗的入口有多大很重要。

召回這里稍微有些復(fù)雜,因為召回是多路的。首先我們要解釋主路和旁路的差別,主路的意義和粗排類似,可以看作是一個入口更大,但模型更加簡單的粗排。主路的意義是為粗排分擔(dān)壓力。但是旁路卻不是這樣的,旁路出現(xiàn)的時機往往是當(dāng)主路存在某種機制上的問題,而單靠現(xiàn)在的這個模型很難解決的時候。舉個例子,主路召回學(xué)的不錯,但是它可能由于某種原因,特別討厭影視劇片段這一類內(nèi)容,導(dǎo)致了這類視頻無法上升到粗排上。那這樣的話整個系統(tǒng)推不出影視劇片段就是一個問題。從多路召回的角度來講,我們可能需要單加一路專門召回影視劇的,并且規(guī)定:主路召回只能出3000個,這一路新加的固定出500個,兩邊合并起來進入到粗排中去。這個栗子,是出現(xiàn)旁路的一個動機。

2.1 召回路徑介紹

推薦系統(tǒng)中的i2i、u2i、u2i2i、u2u2i、u2tag2i,都是指推薦系統(tǒng)的召回路徑。

  • 第一種召回,是非個性化的。比如對于新用戶,我們要確保用最高質(zhì)量的視頻把他們留住,那么我們可以劃一個“精品池”出來,根據(jù)他們的某種熱度排序,作為一路召回。做法就是新用戶的每次請求我們都把這些精品池的內(nèi)容當(dāng)做結(jié)果送給粗排。這樣的召回做起來最容易,用sql就可以搞定。

  • 第二種召回,是i2i,i指的是item,嚴(yán)格意義上應(yīng)該叫u2i2i。指的是用用戶的歷史item,來找相似的item。比如說我們把用戶過去點過贊的視頻拿出來,去找畫面上,BGM上,或者用戶行為結(jié)構(gòu)上相似的視頻。等于說我們就認(rèn)為用戶還會喜歡看同樣類型的視頻。這種召回,既可以從內(nèi)容上建立相似關(guān)系(利用深度學(xué)習(xí)),也可以用現(xiàn)在比較火的graph來構(gòu)建關(guān)系。這種召回負(fù)擔(dān)也比較小,圖像上誰和誰相似完全可以離線計算,甚至都不會隨著時間變化。

  • 第三種召回是u2i,即純粹從user和item的關(guān)系出發(fā)。我們所說的雙塔就是一個典型的u2i。在用戶請求過來的時候,計算出user的embedding,然后去一個實現(xiàn)存好的item embedding的空間,尋找最相似的一批拿出來。由于要實時計算user特征,它的負(fù)擔(dān)要大于前面兩者,但這種召回個性化程度最高,實踐中效果也是非常好的。

通過上圖理解什么是召回路徑:

  • u、i、tag是指圖中的節(jié)點

  • 2是指圖中的線(關(guān)系)

i2i:指從一個物品到達另外一個物品,item 到 item

  • 應(yīng)用:頭條,在下方列出相似的、相關(guān)的文章;

  • 算法:

    • 內(nèi)容相似,eg:文章的相似,取標(biāo)題的關(guān)鍵字,內(nèi)容相似

    • 協(xié)同過濾

    • 關(guān)聯(lián)規(guī)則挖掘等

  • 兩個物品被同時看的可能性很大,當(dāng)一個物品被查看,就給他推薦另一個物品

u2i:指從一個用戶到達一個物品,user 到item

  • 一般指用戶的直接行為,比如播放、點擊、購買等;

  • 用戶查看了一個物品,就會再次給它推薦這個物品

  • 結(jié)合i2i一起使用,就是用戶查看以合物品,就會給他推薦另一個相似的物品,就是u2i2i路徑;

u2i2i:從一個用戶,通過一個物品,到達另一個物品

  • 用戶查看了一個耳機(u2i),找出和這個耳機相似或者相關(guān)的產(chǎn)品(i2i)并推薦給用戶

  • 對路徑的使用,已經(jīng)從一條線變成兩條線

  • 方法:就是把兩種算法結(jié)合起來,先得到u2i的數(shù)據(jù),再利用i2i的數(shù)據(jù)進行擴展,就可以從第一個節(jié)點,越過一個節(jié)點,到達第三個節(jié)點,實現(xiàn)推薦

  • 中間的橋梁是item

u2u2i:從一個用戶,到達另一個用戶,到達一個物品

  • 先計算u2u:兩種方法

    • 一是:取用戶的性別、年齡、職業(yè)等人工屬性的信息,計算相似性,得到u2u;

    • 一是:從行為數(shù)據(jù)中進行挖掘,比如看的內(nèi)容和視頻大部分很相似,就可以看作一類人;

    • 也可以使用聚類的方法進行u2u計算

    • u2u一般用在社交里,比如微博、Facebook,推薦感興趣的人

  • userB和UserC相似,如果userB查看了某個商品,就把這個商品推薦給userC;

  • 中間的橋梁是user

u2tag2i:中間節(jié)點是Tag標(biāo)簽,而不是 u 或者 i

  • 京東,豆瓣,物品的標(biāo)簽非常豐富、非常詳細(xì);比如統(tǒng)計一個用戶歷史查看過的書籍,就可以計算標(biāo)簽偏好的向量:標(biāo)簽+喜歡的強度。

  • 用戶就達到了tag的節(jié)點,而商品本身帶有標(biāo)簽,這就可以互通,進行推薦

  • 先算出用戶的tag偏好,然后匹配item列表

  • 這種方法的泛化性能比較好(推薦的內(nèi)容不那么狹窄,比如喜歡科幻,那么會推薦科幻的所有內(nèi)容)

  • 今日頭條就大量使用標(biāo)簽推薦

基于圖的算法:u22i*

  • 起始于U,結(jié)束于I,中間跨越很多的U、很多的I,可以在圖中不停的游走

  • 例如:PersonalRank,不限制一條還是兩條線,在圖中到處的游走,游走帶著概率,可以達到很多的item;但是相比前面一條、兩條邊的路徑,性能不是很好

2.2 多路召回融合排序

2.2.1 多路召回

推薦服務(wù)一般有多個環(huán)節(jié)(召回、粗排序、精排序),一般會使用多個召回策略,互相彌補不足,效果更好。比如說:

  • 實時召回- U2I2I,

    • 幾秒之內(nèi)根據(jù)行為更新推薦列表。

    • 用U2I得到你實時的行為對象列表,再根據(jù)I2I得到可能喜歡的其他的物品

    • 這個是實時召回,剩下3個是提前算好的

  • 基于內(nèi)容 - U2Tag2I

    • 先算好用戶的偏好tag,然后對tag計算相似度,獲取可能感興趣的item

  • 矩陣分解 - U2I

    • 先算好User和Item的tag矩陣,然后叉乘,給每個user推薦item

    • 提前存儲好進行推薦

  • 聚類推薦 - U2U2I

    • 根據(jù)用戶信息對用戶進行聚類,然后找到最相似的user,推薦最相似user喜歡的物品;或者找到聚類中大家喜歡的物品,進行推薦

寫程序時,每個策略之間毫不相關(guān),所以:

1、一般可以編寫并發(fā)多線程同時執(zhí)行
2、每一種策略輸出結(jié)果,都有一個順序,但最后要的結(jié)果只有一個列表,這就需要融合排序

2.2.2 融合排序

多種召回策略的內(nèi)容,取TOPN合并成一個新的列表。這個新的列表,可以直接返回給前端,進行展示;也可以發(fā)給精排,進行排序。

精排模型非常耗時,所以召回的內(nèi)容,會經(jīng)過粗排之后,把少量的數(shù)據(jù)給精排進行排序

幾種多路召回結(jié)果融合的方法

舉個例子:幾種召回策略返回的列表(Item-id,權(quán)重)分別為: |召回策略 |返回列表 | | | |--|--|--|--| | 召回策略X | A:0.9 |B:0.8 | C:0.7 | | 召回策略Y |B:0.6 | C:0.5 |D:0.4 | | 召回策略Z |C:0.3 |D:0.2 | E:0.1|

融合策略:?1、按順序展示

  • 比如說實時 > 購買數(shù)據(jù)召回 > 播放數(shù)據(jù)召回,則直接展示A、B、C、D、E

2、平均法

  • 分母為召回策略個數(shù),分子為權(quán)重加和

  • C為(0.7+0.5+0.3)/3,B為(0.8+0.6)/3

3、加權(quán)平均

  • 比如三種策略自己指定權(quán)重為0.4、0.3、0.3,則B的權(quán)重為(0.40.8 + 0.60.3 + 0*0.2)/ (0.4+0.3+0.2),這個方法有個問題就是,每個策略的權(quán)重是自己設(shè)置的,并不準(zhǔn)確,所以,有動態(tài)加權(quán)法

4、動態(tài)加權(quán)法

  • 計算XYZ三種召回策略的CTR,作為每天更新的動態(tài)加權(quán)

  • 只考慮了點擊率,并不全面

  • 每種召回源CTR計算方法:

    • 展現(xiàn)日志-帶召回源:X,Y,Z,X,Y,Z

    • 點擊日志-帶召回源:點擊X

    • 則每種召回的CTR = 點擊數(shù)/展現(xiàn)數(shù)

5、機器學(xué)習(xí)權(quán)重法

  • 邏輯回歸LR分類模型預(yù)先離線算好各種召回的權(quán)重,然后做加權(quán)召回

  • 考慮更多的特征以及環(huán)境因素,會更準(zhǔn)確

以上融合排序的方法,成本逐漸增大,效果依次變好,按照成本進行選擇

3.推薦場景中召回模型的演化過程

3.1 傳統(tǒng)方法:基于協(xié)同過濾

更多內(nèi)容參考:https://blog.csdn.net/sinat_39620217/article/details/129119611

3.2 單 Embedding 向量召回

3.2.1?Youtube DNN 召回

3.2.2 雙塔模型召回

3.2 多 Embedding 向量召回-用戶多興趣表達

3.2.1?Multi-Interest Network with Dynamic Routing 模型

3.3 Graph Embedding

3.3.1 阿里 Graph Embedding with Side information

傳統(tǒng)的 graph embedding 過程如下圖:

3.3.2 GraphSAGE:Inductive representation learning on large graphs

3.4 結(jié)合用戶長期和短期興趣建模

### 3.4.2 Next Item Recommendation with Self-Attention

更多內(nèi)容參考:https://blog.csdn.net/sinat_39620217/article/details/129119611

3.5 TDM 深度樹匹配召回

TDM 是為大規(guī)模推薦系統(tǒng)設(shè)計的、能夠承載任意先進模型 ( 也就是可以通過任何深度學(xué)習(xí)推薦模型來訓(xùn)練樹 ) 來高效檢索用戶興趣的推薦算法解決方案。TDM 基于樹結(jié)構(gòu),提出了一套對用戶興趣度量進行層次化建模與檢索的方法論,使得系統(tǒng)能直接利高級深度學(xué)習(xí)模型在全庫范圍內(nèi)檢索用戶興趣。其基本原理是使用樹結(jié)構(gòu)對全庫 item 進行索引,然后訓(xùn)練深度模型以支持樹上的逐層檢索,從而將大規(guī)模推薦中全庫檢索的復(fù)雜度由 O(n) ( n 為所有 item 的量級 ) 下降至 O(log n)。

3.5.1 樹結(jié)構(gòu)

### 3.5.2 怎么基于樹來實現(xiàn)高效的檢索?

3.5.3 興趣建模

4.當(dāng)前業(yè)界的主流召回算法綜述

4.1 Youtube DNN

當(dāng)前的主流方法的通用思路就是對于use和item的embedding的學(xué)習(xí), 這也被稱為表示學(xué)習(xí); YoutbeDNN是經(jīng)典的將深度學(xué)習(xí)模型引入推薦系統(tǒng)中,可以看到網(wǎng)絡(luò)模型并不復(fù)雜,但是文中有很多工程上的技巧,比如說 word2vec對 video 和 search token做embedding后做為video初始embedding,對模型訓(xùn)練中訓(xùn)練時間和采集日志時間之間“position bias”的處理,以及對大規(guī)模多分類問題的負(fù)采樣softmax。

4.2 DeepMF

4.3 DSSM

更多內(nèi)容參考:https://blog.csdn.net/sinat_39620217/article/details/129119611

4.4.Item2vec

4.5.Airbnb Embedding

4.6.DeepWalk

4.7 Node2Vec

4.8.EGES

4.9.LINE

更多內(nèi)容參考:https://blog.csdn.net/sinat_39620217/article/details/129119611

4.10.SDNE

4.11.GraphSAGE

4.12 MIND

4.13.SDM

4.14.DeepFM

4.15.NCF

4.16.TDM

更多內(nèi)容參考:https://blog.csdn.net/sinat_39620217/article/details/129119611

參考推薦:

關(guān)于圖相關(guān)學(xué)習(xí)推薦參考

更多內(nèi)容參考:https://blog.csdn.net/sinat_39620217/article/details/129119611

圖學(xué)習(xí)項目合集&數(shù)據(jù)集分享&技術(shù)歸納業(yè)務(wù)落地技巧[系列十]

更多內(nèi)容參考:https://blog.csdn.net/sinat_39620217/article/details/129119611


推薦系統(tǒng)[二]:召回算法超詳細(xì)講解[召回模型演化過程、召回模型主流常見算法的評論 (共 條)

分享到微博請遵守國家法律
香港 | 阳江市| 辉县市| 桦南县| 沁源县| 泗洪县| 谢通门县| 金塔县| 迁西县| 措美县| 射洪县| 民勤县| 秦安县| 中超| 岐山县| 井冈山市| 望城县| 武强县| 汤阴县| 阿克| 横山县| 河源市| 若尔盖县| 舒城县| 霍邱县| 略阳县| 平罗县| 太保市| 灵璧县| 宿州市| 太和县| 东光县| 夏邑县| 永新县| 东辽县| 出国| 镇巴县| 宣恩县| 岢岚县| 钟山县| 商洛市|