從零開始了解推薦系統(tǒng)全貌
有幸參與了幾個(gè)業(yè)務(wù)推薦系統(tǒng)搭建的全流程,本文將從實(shí)際經(jīng)驗(yàn)出發(fā),為大家解構(gòu)如何從零搭建推薦系統(tǒng),希望跟大家能夠相互交流,如有錯(cuò)誤之處煩請(qǐng)指正。
一、推薦算法的理解
如果說互聯(lián)網(wǎng)的目標(biāo)就是連接一切,那么推薦系統(tǒng)的作用就是建立更加有效率的連接,推薦系統(tǒng)可以更有效率的連接用戶與內(nèi)容和服務(wù),節(jié)約了大量的時(shí)間和成本。
如果把推薦系統(tǒng)簡(jiǎn)單拆開來看,推薦系統(tǒng)主要是由數(shù)據(jù)、算法、架構(gòu)三個(gè)方面組成。
- 數(shù)據(jù)提供了信息。數(shù)據(jù)儲(chǔ)存了信息,包括用戶與內(nèi)容的屬性,用戶的行為偏好例如對(duì)新聞的點(diǎn)擊、玩過的英雄、購(gòu)買的物品等等。這些數(shù)據(jù)特征非常關(guān)鍵,甚至可以說它們決定了一個(gè)算法的上限。
- 算法提供了邏輯。數(shù)據(jù)通過不斷的積累,存儲(chǔ)了巨量的信息。在巨大的數(shù)據(jù)量與數(shù)據(jù)維度下,人已經(jīng)無法通過人工策略進(jìn)行分析干預(yù),因此需要基于一套復(fù)雜的信息處理邏輯,基于邏輯返回推薦的內(nèi)容或服務(wù)。
- 架構(gòu)解放了雙手。架構(gòu)保證整個(gè)推薦自動(dòng)化、實(shí)時(shí)性的運(yùn)行。架構(gòu)包含了接收用戶請(qǐng)求,收集、處理,存儲(chǔ)用戶數(shù)據(jù),推薦算法計(jì)算,返回推薦結(jié)果等。有了架構(gòu)之后算法不再依賴于手動(dòng)計(jì)算,可以進(jìn)行實(shí)時(shí)化、自動(dòng)化的運(yùn)行。例如在淘寶推薦中,對(duì)于數(shù)據(jù)實(shí)時(shí)性的處理,就保證了用戶在點(diǎn)擊一個(gè)物品后,后續(xù)返回的推薦結(jié)果就可以立刻根據(jù)該點(diǎn)擊而改變。一個(gè)推薦系統(tǒng)的實(shí)時(shí)性要求越高、訪問量越大那么這個(gè)推薦系統(tǒng)的架構(gòu)就會(huì)越復(fù)雜。
二、推薦系統(tǒng)的整體框架
推薦的框架主要有以下幾個(gè)模塊:
- 協(xié)議調(diào)度:請(qǐng)求的發(fā)送和結(jié)果的回傳。在請(qǐng)求中,用戶會(huì)發(fā)送自己的 ID,地理位置等信息。結(jié)果回傳中會(huì)返回推薦系統(tǒng)給用戶推薦的結(jié)果。
- 推薦算法:算法按照一定的邏輯為用戶產(chǎn)生最終的推薦結(jié)果。不同的推薦算法基于不同的邏輯與數(shù)據(jù)運(yùn)算過程。
- 消息隊(duì)列:數(shù)據(jù)的上報(bào)與處理。根據(jù)用戶的 ID,拉取例如用戶的性別、之前的點(diǎn)擊、收藏等用戶信息。而用戶在 APP 中產(chǎn)生的新行為,例如新的點(diǎn)擊會(huì)儲(chǔ)存在存儲(chǔ)單元里面。
- 存儲(chǔ)單元:不同的數(shù)據(jù)類型和用途會(huì)儲(chǔ)存在不同的存儲(chǔ)單元中,例如內(nèi)容標(biāo)簽與內(nèi)容的索引存儲(chǔ)在 mysql 里,實(shí)時(shí)性數(shù)據(jù)存儲(chǔ)在 redis 里,需要進(jìn)行數(shù)據(jù)統(tǒng)計(jì)的數(shù)據(jù)存儲(chǔ)在 TDW 里。
三、用戶畫像
1. 用戶標(biāo)簽
標(biāo)簽是我們對(duì)多維事物的降維理解,抽象出事物更具有代表性的特點(diǎn)。 我們永遠(yuǎn)無法完全的了解一個(gè)人,所以我們只能夠通過一個(gè)一個(gè)標(biāo)簽的來刻畫他,所有的標(biāo)簽最終會(huì)構(gòu)建為一個(gè)立體的畫像,一個(gè)詳盡的用戶畫像可以幫助我們更加好的理解用戶。
2. 用戶畫像的分類
(1) 原始數(shù)據(jù)
原始數(shù)據(jù)一共包含四個(gè)方面:
- 用戶數(shù)據(jù): 例如用戶的性別、年齡、渠道、注冊(cè)時(shí)間、手機(jī)機(jī)型等。
- 內(nèi)容數(shù)據(jù): 例如游戲的品類,對(duì)游戲描述、評(píng)論的爬蟲之后得到的關(guān)鍵詞、標(biāo)簽等。
- 用戶與內(nèi)容的交互: 基于用戶的行為,了解了什么樣的用戶喜歡什么樣的游戲品類、關(guān)鍵詞、標(biāo)簽等。
- 外部數(shù)據(jù): 單一的產(chǎn)品只能描述用戶的某一類喜好,例如游戲的喜好、視頻的喜好,外部數(shù)據(jù)標(biāo)簽可以讓用戶更加的立體。
(2) 事實(shí)標(biāo)簽
事實(shí)標(biāo)簽可以分為靜態(tài)畫像和動(dòng)態(tài)畫像:
- 靜態(tài)畫像: 用戶獨(dú)立于產(chǎn)品場(chǎng)景之外的屬性,例如用戶的自然屬性,這類信息比較穩(wěn)定,具有統(tǒng)計(jì)性意義。
- 動(dòng)態(tài)畫像: 用戶在場(chǎng)景中所產(chǎn)生的顯示行為或隱式行為。
- 顯示行為:用戶明確的表達(dá)了自己的喜好,例如點(diǎn)贊、分享、關(guān)注、評(píng)分等。(評(píng)論的處理更加復(fù)雜,需要通過 NLP 的方式來判斷用戶的感情是正向、負(fù)向、中性)。
- 隱式行為:用戶沒有明確表達(dá)自己的喜好,但“口嫌體正直”,用戶會(huì)用實(shí)際行動(dòng),例如點(diǎn)擊、停留時(shí)長(zhǎng)等隱性的行為表達(dá)自己的喜好。
隱式行為的權(quán)重往往不會(huì)有顯示行為大,但是在實(shí)際業(yè)務(wù)中,用戶的顯示行為都是比較稀疏的,所以需要依賴大量的隱式行為。
(3) 模型標(biāo)簽
模型標(biāo)簽是由事實(shí)標(biāo)簽通過加權(quán)計(jì)算或是聚類分析所得。通過一層加工處理后,標(biāo)簽所包含的信息量得到提升,在推薦過程中效果更好。
- 聚類分析: 例如按照用戶的活躍度進(jìn)行聚類,將用戶分為高活躍-中活躍-低活躍三類。
- 加權(quán)計(jì)算: 根據(jù)用戶的行為將用戶的標(biāo)簽加權(quán)計(jì)算,得到每一個(gè)標(biāo)簽的分?jǐn)?shù),用于之后推薦算法的計(jì)算。
四、內(nèi)容畫像
1. 內(nèi)容畫像
推薦內(nèi)容與場(chǎng)景通??梢苑譃橐韵聨最?,根據(jù)所推薦的內(nèi)容不同,其內(nèi)容畫像的處理方式也不同。
- 文章推薦:例如新聞內(nèi)容推薦,需要利用NLP的技術(shù)對(duì)文章的標(biāo)題,正文等提取關(guān)鍵詞、標(biāo)簽、分類等。
- 視頻推薦:除了對(duì)于分類、標(biāo)題關(guān)鍵詞的抓取外,還依賴于圖片與視頻處理技術(shù),例如識(shí)別內(nèi)容標(biāo)簽、內(nèi)容相似性等。
2. 環(huán)境變量
內(nèi)容畫像外,環(huán)境畫像也非常重要。例如在短視頻的推薦場(chǎng)景中,用戶在看到一條視頻所處的時(shí)間、地點(diǎn)以及當(dāng)時(shí)所瀏覽的前后內(nèi)容、當(dāng)天已瀏覽時(shí)間等也是非常重要的信息,但由于環(huán)境變量數(shù)據(jù)量較大、類型較多,對(duì)推薦架構(gòu)以及工程實(shí)現(xiàn)能力的要求也較高。
五、算法構(gòu)建
1. 推薦算法流程
推薦算法其實(shí)本質(zhì)上是一種信息處理邏輯,當(dāng)獲取了用戶與內(nèi)容的信息之后,按照一定的邏輯處理信息后,產(chǎn)生推薦結(jié)果。熱度排行榜就是最簡(jiǎn)單的一種推薦方法,它依賴的邏輯就是當(dāng)一個(gè)內(nèi)容被大多數(shù)用戶喜歡,那大概率其他用戶也會(huì)喜歡。但是基于粗放的推薦往往會(huì)不夠精確,想要挖掘用戶個(gè)性化的,小眾化的興趣,需要制定復(fù)雜的規(guī)則運(yùn)算邏輯,并由機(jī)器完成。
推薦算法主要分為以下幾步:
- 召回:當(dāng)用戶以及內(nèi)容量比較大的時(shí)候,往往先通過召回策略,將百萬量級(jí)的內(nèi)容先縮小到百量級(jí)。
- 過濾:對(duì)于內(nèi)容不可重復(fù)消費(fèi)的領(lǐng)域,例如實(shí)時(shí)性比較強(qiáng)的新聞等,在用戶已經(jīng)曝光和點(diǎn)擊后不會(huì)再推送到用戶面前。
- 精排:對(duì)于召回并過濾后的內(nèi)容進(jìn)行排序,將百量級(jí)的內(nèi)容并按照順序推送。
- 混排:為避免內(nèi)容越推越窄,將精排后的推薦結(jié)果進(jìn)行一定修改,例如控制某一類型的頻次。
- 強(qiáng)規(guī)則:根據(jù)業(yè)務(wù)規(guī)則進(jìn)行修改,例如在活動(dòng)時(shí)將某些文章置頂。
2. 召回策略
(1) 召回的目的:當(dāng)用戶與內(nèi)容的量級(jí)比較大,例如對(duì)百萬量級(jí)的用戶與內(nèi)容計(jì)算概率,就會(huì)產(chǎn)生百萬*百萬量級(jí)的計(jì)算量。但同時(shí),大量?jī)?nèi)容中真正的精品只是少數(shù),對(duì)所有內(nèi)容進(jìn)行一次計(jì)算將非常的低效,會(huì)浪費(fèi)大量的資源和時(shí)間。因此采用召回策略,例如熱銷召回,召回一段時(shí)間內(nèi)最熱門的 100 個(gè)內(nèi)容,只需進(jìn)行一次計(jì)算動(dòng)作,就可以對(duì)所有用戶應(yīng)用。
(2) 召回的重要性:召回模型是一個(gè)推薦系統(tǒng)的天花板,決定了后續(xù)可排序的空間。
(3) 召回方法:召回對(duì)算法的精度、范圍、性能都有較高要求。當(dāng)前業(yè)界常采用離線訓(xùn)練+打分或離線訓(xùn)練達(dá)到向量表達(dá)+向量檢索的方式。(對(duì)比精排為了提高準(zhǔn)確率,更多用離線+實(shí)時(shí)打分,或在線學(xué)習(xí)的方式)。
(4) 召回層與業(yè)務(wù)場(chǎng)景的結(jié)合
除了常規(guī)召回方式外,召回可以更多的與實(shí)際業(yè)務(wù)目標(biāo)與場(chǎng)景結(jié)合,例如在飛豬業(yè)務(wù)場(chǎng)景中,其存在幾類行業(yè)特點(diǎn):
- 訂單類型較多(涉及到交通、酒店、景區(qū)、周邊游),且業(yè)務(wù)之間具有一定的相關(guān)性和搭配性。
- 用戶存在周期性復(fù)購(gòu)情況。
- 用戶訂單的稀疏性較大。
針對(duì)這些問題,其召回層會(huì)結(jié)合以下解決方案:
① 相關(guān)性&搭配性問題
- 協(xié)同往往只能召回相似的商品,而考慮到推薦目標(biāo)的替代性和互補(bǔ)性,更多挖掘反應(yīng)搭配關(guān)系的行為集合。
- 數(shù)據(jù)稀疏且噪音較大,僅僅基于數(shù)據(jù)構(gòu)建圖,bad case較多,所以需要利用行業(yè)的知識(shí)圖譜。
- 結(jié)合行為序列:行為序列挖掘->構(gòu)件圖(通過知識(shí)圖譜來增加約束)->序列采樣(降低噪音,抑制熱門問題)->訓(xùn)練。
② 周期性復(fù)購(gòu)問題
部分用戶存在固定的購(gòu)買模式。利用Poission-Gamma分布的統(tǒng)計(jì)建模。計(jì)算在某個(gè)時(shí)間點(diǎn),購(gòu)買某個(gè)商品的概率,在正確的時(shí)間點(diǎn)給用戶推出合適的復(fù)購(gòu)商品。
內(nèi)容來源:《阿里飛豬個(gè)性化推薦:召回篇》
3. 粗排策略
(1) 粗排層目的:為后續(xù)鏈路提供集合。
(2) 粗排層特點(diǎn):打分量高于精排,但有嚴(yán)格的延遲約束。
(3) 粗排層方法:主要分為兩種路線
- 集合選擇:以集合為建模目標(biāo),選出滿足后鏈路需求集合。其可控性較弱,算力消耗較小。(多通道、listwise、序列生成)
- 精準(zhǔn)預(yù)估:以值為建模目標(biāo),直接對(duì)系統(tǒng)目標(biāo)進(jìn)行值預(yù)估。可控性較高,算力消耗較大。(pointwise)
- 粗排層發(fā)展歷史:質(zhì)量分->LR等傳統(tǒng)機(jī)器學(xué)習(xí)->向量?jī)?nèi)內(nèi)卷積(雙塔模型)->COLD全鏈路(阿里)
4. 精排策略
(1) 精排層多目標(biāo)融合原則
- 用戶的效用需要通過多個(gè)指標(biāo)反饋:例如用戶對(duì)視頻的喜好,會(huì)通過停留時(shí)長(zhǎng)、完播、點(diǎn)贊等多個(gè)動(dòng)作反應(yīng)。
- 產(chǎn)品的目標(biāo)需要通過多個(gè)指標(biāo)衡量:例如短視頻產(chǎn)品不僅需要考慮用戶效用,也需要考慮作者效用、平臺(tái)目標(biāo)與生態(tài)影響。
(2) 精排層多目標(biāo)融合實(shí)例
以短視頻行業(yè)為例,推薦目標(biāo)主要由幾個(gè)方面組成:
- 對(duì)用戶價(jià)值。
- 對(duì)作者價(jià)值,包括給作者的流量、互動(dòng)、收入等。
- 對(duì)內(nèi)容生態(tài)價(jià)值,包括品牌價(jià)值、內(nèi)容安全、平臺(tái)收入。
- 間接價(jià)值,非直接由視頻產(chǎn)生,例如用戶的評(píng)論提醒,會(huì)改善用戶的留存率。
參考:《多目標(biāo)排序在快手短視頻推薦中的實(shí)踐》
(3) 精排層多目標(biāo)融合方法
① 改變樣本權(quán)重/多模型分?jǐn)?shù)融合:
- 改變樣本權(quán)重:先通過權(quán)重構(gòu)造目標(biāo)值,再進(jìn)行模型擬合。
- 多模型分?jǐn)?shù)融合:先進(jìn)行模型擬合在進(jìn)行加權(quán)融合。缺點(diǎn):依賴規(guī)則設(shè)計(jì),依賴人工調(diào)參,且經(jīng)常面臨以A目標(biāo)換取B目標(biāo)的問題。
② Learn to rank :pairwise、listwise直接排序。
③ 結(jié)合在線數(shù)據(jù)自動(dòng)調(diào)參:5%線上流量探索,每次探索N組參數(shù),根據(jù)用戶的實(shí)時(shí)reward來優(yōu)化線上的調(diào)參算法。設(shè)計(jì)約束項(xiàng),在閾值內(nèi)線性弱衰減,超出閾值指數(shù)強(qiáng)衰減。
④ 多任務(wù)學(xué)習(xí):結(jié)合深度學(xué)習(xí)網(wǎng)絡(luò),可以共享embedding特征,采用多種特征組合方式,達(dá)到相互促進(jìn)以及泛化的作用。例如MMOE模型,不同的專家可以從相同的輸入中提取出不同的特征,由gate attention結(jié)構(gòu),把專家提取出的特征篩選出各個(gè)task最相關(guān)的特征,分別接入不同任務(wù)的全連接層。不同的任務(wù)需要不同的信息,因此每個(gè)任務(wù)都由獨(dú)立gate負(fù)責(zé)。
(4) 精排模型
① 精排模型發(fā)展歷史
② 精排模型分類
③ 精排模型基本原理
④ 精排模型優(yōu)缺點(diǎn)
(5) 邏輯回歸——最簡(jiǎn)單Model-based模型
① 原理介紹
概念:邏輯回歸通過 sigmoid 函數(shù),將線性回歸變?yōu)榭梢越鉀Q二分類的方法,它可用于估計(jì)某種事物發(fā)生的可能性。
計(jì)算公式:Y 根據(jù)目標(biāo)設(shè)計(jì):例如是否點(diǎn)擊(是:1,否:0,最后預(yù)測(cè)一個(gè) 0-1 之間的點(diǎn)擊概率);X 根據(jù)特征工程設(shè)計(jì):這一塊就涉及到了前面提到的用戶畫像與內(nèi)容畫像,所有的畫像都是對(duì)樣本的特征的刻畫。特征工程需要根據(jù)業(yè)務(wù)場(chǎng)景選擇合適的特征并進(jìn)行一定的加工;W 由模型訓(xùn)練得到。
② 構(gòu)建流程
基于我們的目標(biāo),需要進(jìn)行樣本的收集(樣本是對(duì)客觀世界的具體描述),通過對(duì)已收集到的樣本進(jìn)行特征構(gòu)造,并對(duì)其進(jìn)行訓(xùn)練,最終求出模型參數(shù)的具體數(shù)值。
a.建立樣本
邏輯回歸為有監(jiān)督模型,因此需要有已經(jīng)分類好的樣本。正樣本:用戶曝光過某物品并點(diǎn)擊。負(fù)樣本:用戶曝光過某物品并且沒有點(diǎn)擊。如果正負(fù)樣本差距過大,可以將負(fù)樣本隨機(jī)抽樣后與正樣本一起訓(xùn)練?;蛑槐A粲悬c(diǎn)擊行為的用戶作為樣本,將曝光但是沒有被點(diǎn)擊的物品作為負(fù)樣本。
b.特征工程
特征工程是對(duì)收集到的樣本進(jìn)行更加深度的特征刻畫。雖然作為算法人員與用戶接觸較少,但對(duì)身邊使用該產(chǎn)品的同學(xué),進(jìn)行深入的觀察與訪談,了解他們對(duì)于所推薦內(nèi)容的反饋,往往可以得到意料之外的特征開發(fā)方向。主要分為以下幾個(gè)維度。
- 基礎(chǔ)數(shù)據(jù)
- 趨勢(shì)數(shù)據(jù)
- 時(shí)間數(shù)據(jù)
- 交叉數(shù)據(jù)
不同交叉方法得到的不同的參數(shù)數(shù)量:
(6) 深度學(xué)習(xí)——當(dāng)前最新發(fā)展方向
① 深度學(xué)習(xí)基礎(chǔ) Embedding+MLP 模型
Embedding+MLP 模型結(jié)構(gòu):微軟在 2016 年提出 Deep Crossing,用于廣告推薦中。
從下到上可以分為 5 層,分別是 Feature 層、Embedding 層、Stacking 層、MLP 層和 Scoring 層。
對(duì)于類別特征,先利用 Embedding 層進(jìn)行特征稠密化,再利用 Stacking 層連接其他特征,輸入 MLP (多層神經(jīng)元網(wǎng)絡(luò)),最后用 Scoring 層預(yù)估結(jié)果。
② 深度學(xué)習(xí)主要特點(diǎn)
- embedding技術(shù)在召回層的應(yīng)用:embedding,即用一個(gè)數(shù)值向量來表示一個(gè)對(duì)象的方法,對(duì)于處理稀疏特征有比較重要的應(yīng)用,其將稀疏高維特征向量轉(zhuǎn)換為稠密低維特征向量,可以融合大量?jī)r(jià)值信息。其主要方法有基于文本的Word2Vec, 基于物品的Item2Vec, 基于圖結(jié)構(gòu)(社交關(guān)系、知識(shí)圖譜、行為關(guān)系等)的 deep walk、Node2Vec(增加了隨機(jī)過程中跳轉(zhuǎn)概率的傾向性)等。
- 深度學(xué)習(xí)模型在排序?qū)拥膽?yīng)用:深度學(xué)習(xí)模型以MLP為基礎(chǔ)結(jié)構(gòu),embedding+MLP是最經(jīng)典結(jié)合,google在此基礎(chǔ)上提出的Wide&Deep在業(yè)界得到了廣泛的應(yīng)用。
③ 目前主要的衍化方向
- 改變神經(jīng)網(wǎng)絡(luò)的復(fù)雜程度。
- 改變特征交叉方式。
- 多種模型組合應(yīng)用。
- 與其他領(lǐng)域的結(jié)合,例如自然語言處理,圖像處理,強(qiáng)化領(lǐng)域等。
來源:王哲-深度學(xué)習(xí)推薦系統(tǒng)實(shí)戰(zhàn)
④ 深度學(xué)習(xí)模型舉例
- Wide&Deep模型
2016年谷歌發(fā)表的Wide&Deep模型與YouTube深度學(xué)習(xí)推薦模型,引領(lǐng)推薦算法走向了對(duì)深度學(xué)習(xí)的應(yīng)用。
相比傳統(tǒng)機(jī)器學(xué)習(xí)推薦模型,深度學(xué)習(xí)具有更加復(fù)雜的模型結(jié)構(gòu),而使其具備了理論上擬合任何函數(shù)的能力。同時(shí)深度學(xué)習(xí)的結(jié)構(gòu)靈活性可以讓其模擬出用戶興趣的變遷過程。左側(cè)傳統(tǒng)推薦模型與右側(cè)深度學(xué)習(xí)推薦模型對(duì)比,其模型復(fù)雜度增加:
- DeepFM模型
由FM與深度學(xué)習(xí)模型的結(jié)合生成的DeepFM模型:即FM替換了Wide&Deep的Wide部分,加強(qiáng)了淺層網(wǎng)絡(luò)部分特征組合的能力,右邊的部分跟Deep部分一樣,利用多層神經(jīng)網(wǎng)絡(luò)進(jìn)行特征的深層處理。
- 深度興趣DIN模型
DIN模型為阿里的電商廣告推薦模型,預(yù)測(cè)其廣告點(diǎn)擊率。它主要利用注意力機(jī)制,即通過用戶歷史行為序列,為每一個(gè)用戶的歷史購(gòu)買商品上面加入了激活單元,激活單元相當(dāng)于一個(gè)嵌套在其中的深度學(xué)習(xí)模型,利用兩個(gè)商品的embedding,生成了代表他們關(guān)聯(lián)程度的注意力權(quán)重。
- 深度興趣進(jìn)化網(wǎng)絡(luò)DIEN
彌補(bǔ)DIN沒有對(duì)行為序列進(jìn)行建模的缺點(diǎn),通過序列層,興趣抽取層,興趣進(jìn)化層。其中利用序列模型利用商品ID和前一層序列模型的embedding向量,輸出商品embedding與興趣embedding。
5. 重排層策略
(1) EE問題
MBA問題:所有的選擇都要同時(shí)考慮尋找最優(yōu)解以及累計(jì)收益最大的問題。
解決方案:Bandit算法,衡量臂的平均收益,收益越大越容易被選擇,以及臂的方差,方差越大越容易被選擇。
常用算法:湯普森采樣算法,UCB算法,Epsilon貪婪算法,LinUCB算法,與協(xié)同過濾結(jié)合的COFIBA。
(2) 多樣性問題
多樣性問題:
- 多樣性過差:用戶探索不夠,興趣過窄,系統(tǒng)泛化能力以及可持續(xù)性變差;流量過于集中在少數(shù)item上,系統(tǒng)缺乏活力。
- 多樣性過強(qiáng):用戶興趣聚焦程度弱;item流量分配平均,對(duì)優(yōu)質(zhì)item激勵(lì)不足。
多樣性解法:
- 根據(jù)內(nèi)容的相關(guān)性以及相似性進(jìn)行打散。
- 保持用戶以及內(nèi)容探索比例。
- 人工規(guī)則控制。
(3) 上下文問題
pointwise排序中,僅考慮item與user之間的相關(guān)性,而較少考慮前序item對(duì)后續(xù)item的影響,主要的解決方案有兩種。
① listwise排序
Pointwise考慮單點(diǎn)目標(biāo)/Pairwise考慮一個(gè)pair/Listwise考慮整個(gè)集合的指標(biāo)。
Listwise 對(duì)視頻組合進(jìn)行transformer建模,刻畫視頻間的相互影響,前序視頻對(duì)后續(xù)視頻觀看有影響,前后組合決定總收益。
② 強(qiáng)化學(xué)習(xí)
考慮序列決策,從前向后依次貪心的選擇動(dòng)作概率最大的視頻。
Reward = f(相關(guān)性,多樣性,約束)。
6. 冷啟動(dòng)
(1) 用戶冷啟
其主要幾個(gè)方向?yàn)椋杭訌?qiáng)特征與信息的補(bǔ)充、EE問題平衡、實(shí)時(shí)化加強(qiáng)。
信息補(bǔ)充:
- side information 補(bǔ)充:例如商品類目、領(lǐng)域知識(shí)圖譜、第三方公司數(shù)據(jù)的補(bǔ)充。
- Cross domain:利用共同的用戶在不同地方的數(shù)據(jù)進(jìn)行冷啟。
- 用戶填寫興趣。
- 元學(xué)習(xí):利用多任務(wù)間具有泛化能力的模型,進(jìn)行少樣本學(xué)習(xí)(few-shot learning)。
EE探索
快速收斂:
- 主動(dòng)學(xué)習(xí)、在線學(xué)習(xí)、強(qiáng)化學(xué)習(xí):快速收集數(shù)據(jù),且反饋到特征與模型中。
- 增強(qiáng)模型實(shí)時(shí)化以及收斂能力。
(2) 內(nèi)容冷啟
以短視頻推薦為例,平臺(tái)常常采用大小池邏輯,對(duì)內(nèi)容進(jìn)行不同流量的探索,并根據(jù)實(shí)際的反饋數(shù)據(jù)來決定內(nèi)容可以進(jìn)入的推薦范圍。其中表現(xiàn)優(yōu)質(zhì)的內(nèi)容將不斷的進(jìn)入更大的流量池中,最終進(jìn)入推薦池,形成精品召回池。
六、當(dāng)前發(fā)展
(1) 因果與推薦結(jié)合
推薦系統(tǒng)中的特征向量和用戶最終的反饋(比如點(diǎn)擊、點(diǎn)贊等)之間的關(guān)系是由因果關(guān)系和非因果關(guān)系共同組成。因果關(guān)系是反應(yīng)物品被用戶偏好的原因,非因果關(guān)系僅反應(yīng)用戶和物品之間的統(tǒng)計(jì)相關(guān)性,比如曝光模式、公眾觀念、展示位置等。而現(xiàn)有推薦算法缺乏對(duì)這兩種關(guān)系的區(qū)分。
A Model-Agnostic Causal Learning Framework for Recommendation using Search Data。論文提出了一個(gè)基于工具變量的模型無關(guān)的因果學(xué)習(xí)框架 IV4Rec,聯(lián)合考慮了搜索場(chǎng)景和推薦場(chǎng)景下的用戶行為,利用搜索數(shù)據(jù)輔助推薦模型。即將用戶的搜索行為作為工具變量,來幫助分解原本推薦中 特征( treatments),使用深度神經(jīng)網(wǎng)絡(luò)將分離的兩個(gè)部分結(jié)合起來,來完成推薦任務(wù)。
(2) 序列/會(huì)話推薦
推薦系統(tǒng)傾向于學(xué)習(xí)每個(gè)用戶對(duì)物品的長(zhǎng)期和靜態(tài)的偏好,但一個(gè)用戶的所有的歷史交互行為對(duì)他當(dāng)前的偏好并非同等重要,用戶的短期偏好和跟時(shí)間相關(guān)的上下文場(chǎng)景所包含的信息更加實(shí)時(shí)也更加靈敏?;跁?huì)話的推薦系統(tǒng)從一個(gè)用戶的最近產(chǎn)生的會(huì)話中捕獲他的短期偏好,以及利用會(huì)話和會(huì)話間的偏好變化,進(jìn)行更精準(zhǔn)和實(shí)時(shí)推薦。
TKDE 2022 | Disentangled Graph Neural Networks for Session-based Recommendation。用戶選擇某個(gè)物品的意圖是由該物品的某些因素驅(qū)動(dòng)的,本文的方法建模了這種細(xì)粒度的的興趣來生成高質(zhì)量的會(huì)話嵌入。
(3) 圖神經(jīng)網(wǎng)絡(luò)與推薦結(jié)合
大部分的信息本質(zhì)上都是圖結(jié)構(gòu),GNN能夠自然地整合節(jié)點(diǎn)屬性信息和拓?fù)浣Y(jié)構(gòu)信息,來減少特征處理中的信息折損。
ICDE 2021 | Multi-Behavior Enhanced Recommendation with Cross-Interaction Collaborative Relation Modeling。利用圖神經(jīng)網(wǎng)絡(luò)建模Multi-Behavior 推薦。
(4) 知識(shí)圖譜與推薦結(jié)合
先驗(yàn)的知識(shí)圖譜可以對(duì)推薦系統(tǒng)進(jìn)行很好的信息補(bǔ)充和信息約束,特別是在數(shù)據(jù)較為稀疏的場(chǎng)景下。(1)知識(shí)圖譜中的結(jié)構(gòu)化知識(shí)可以在冷啟動(dòng)場(chǎng)景中提供更多的信息。(2)對(duì)于數(shù)據(jù)稀疏,方差過大的情況下,增加有效約束。(3)先驗(yàn)知識(shí)糾正數(shù)據(jù)偏差。(4)增強(qiáng)推薦算法可解釋性。
Conditional Graph Attention Networks for Distilling and Refining Knowledge Graphs in Recommendation 由于知識(shí)圖譜的泛化性和規(guī)模性,大多數(shù)知識(shí)關(guān)系對(duì)目標(biāo)用戶-物品預(yù)測(cè)沒有幫助。為了利用知識(shí)圖譜來捕獲推薦系統(tǒng)中特定目標(biāo)的知識(shí)關(guān)系,需要對(duì)知識(shí)圖譜進(jìn)行提取以保留有用信息,并對(duì)知識(shí)進(jìn)行提煉以捕獲更準(zhǔn)確的用戶偏好。這篇文章提出了Knowledge-aware Conditional Attention Networks(KGAN)網(wǎng)絡(luò),對(duì)于給定target(即用戶-物品對(duì)),基于知識(shí)感知的注意力自動(dòng)從全局的知識(shí)圖譜中提取出特定于target的子圖。通過在子圖上應(yīng)用條件注意力機(jī)制進(jìn)行鄰居聚合,以此實(shí)現(xiàn)對(duì)知識(shí)圖譜的細(xì)化,進(jìn)而獲得特定target的節(jié)點(diǎn)表示。
(5) 強(qiáng)化學(xué)習(xí)
與傳統(tǒng)推薦算法不同,其主要描述和解決智能體在與環(huán)境的交互過程中通過學(xué)習(xí)策略以達(dá)成回報(bào)最大化或?qū)崿F(xiàn)特定目標(biāo)的問題。
CIKM 2021 | Supervised Advantage Actor-Critic for Recommender Systems。現(xiàn)有的RL+(self-)supervised sequential learning方式由于缺乏負(fù)獎(jiǎng)勵(lì)信號(hào),q值的估計(jì)往往偏向于正值。此外,q值還嚴(yán)重依賴于序列的特定時(shí)間戳。本文提出負(fù)采樣策略來訓(xùn)練RL分量,并將其與有監(jiān)督序列學(xué)習(xí)相結(jié)合。
(6) 多模態(tài)內(nèi)容推薦
短視頻推薦業(yè)務(wù)中,涉及的上下文信息包含圖像,語音,文本,社交網(wǎng)絡(luò),知識(shí)圖譜,將不同的上下文特征進(jìn)行融合。
Arxiv 2021 | MultiHead MultiModal Deep Interest Recommendation Network。在DIN模型的基礎(chǔ)上,增加了多頭多模態(tài)模塊(MultiHead MultiModal),豐富了模型可以使用的特征集,同時(shí)增強(qiáng)了模型的交叉組合和擬合能力。
(7) 對(duì)話系統(tǒng):主要分為兩種方向(1)通過NLP的方式來構(gòu)建對(duì)話機(jī)器人。(2)交互式的意圖挖掘,利用用戶少量交互行為,快速得到用戶偏好以完成推薦任務(wù)。
部分內(nèi)容來源:推薦與廣告最新論文追蹤 https://www.zhihu.com/column/c_1410364359926906880
七. 算法衡量標(biāo)準(zhǔn)
1. 指標(biāo)選擇
- 硬指標(biāo):對(duì)于大多數(shù)的平臺(tái)而言,推薦系統(tǒng)最重要的作用是提升一些“硬指標(biāo)”。例如新聞推薦中的點(diǎn)擊率,但是如果單純以點(diǎn)擊率提升為目標(biāo),最后容易成為一些低俗內(nèi)容,“標(biāo)題黨”的天下。
- 軟指標(biāo):除了“硬指標(biāo)”,推薦系統(tǒng)還需要很多“軟指標(biāo)”以及“反向指標(biāo)”來衡量除了點(diǎn)擊等之外的價(jià)值。好的推薦系統(tǒng)能夠擴(kuò)展用戶的視野,發(fā)現(xiàn)那些他們感興趣,但是不會(huì)主動(dòng)獲取的內(nèi)容。同時(shí)推薦系統(tǒng)還可以幫助平臺(tái)挖掘被埋沒的優(yōu)質(zhì)長(zhǎng)尾內(nèi)容,介紹給感興趣的用戶。
2. 推薦效果
如何去獲得推薦效果??梢苑譃殡x線實(shí)驗(yàn)、用戶調(diào)查、在線實(shí)驗(yàn)三種方法。
- 離線效果:通過反復(fù)在數(shù)據(jù)樣本進(jìn)行實(shí)驗(yàn)來獲得算法的效果。通常這種方法比較簡(jiǎn)單、明確。但是由于數(shù)據(jù)是離線的,基于過去的歷史數(shù)據(jù),不能夠真實(shí)的反應(yīng)線上效果。同時(shí)需要通過時(shí)間窗口的滾動(dòng)來保證模型的客觀性和普適性。
- 白板測(cè)試:當(dāng)在離線實(shí)驗(yàn)階段得到了一個(gè)比較不錯(cuò)的預(yù)測(cè)結(jié)果之后,就需要將推薦的結(jié)果拿到更加真實(shí)的環(huán)境中進(jìn)行測(cè)評(píng),如果這個(gè)時(shí)候?qū)⑺惴ㄖ苯由暇€,會(huì)面臨較高的風(fēng)險(xiǎn)。因?yàn)橥扑]結(jié)果的好壞不能僅僅從離線的數(shù)字指標(biāo)衡量,更要關(guān)注用戶體驗(yàn),所以可以通過小范圍的反復(fù)白板測(cè)試,獲得自己和周圍的人對(duì)于推薦結(jié)果的直觀反饋,進(jìn)行優(yōu)化。
- 在線測(cè)試(AB test):實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn),在推薦系統(tǒng)的優(yōu)化過程中,在線測(cè)試是最貼近現(xiàn)實(shí)、最重要的反饋方式。通過AB測(cè)試的方式,可以衡量算法與其他方法、算法與算法之間的效果差異。
八. 除了算法本身之外...
1. 推薦算法是否會(huì)導(dǎo)致信息不平等和信息繭房?
推薦系統(tǒng)并非導(dǎo)致信息不平等和信息繭房的根本原因。
- 內(nèi)容的不平等或許更多的產(chǎn)生于用戶天性本身,而推薦算法的作用更像是幫助用戶“訂閱”了不同的內(nèi)容。用戶天然的會(huì)對(duì)信息產(chǎn)生篩選,并集中在自己的興趣領(lǐng)域。在過去雜志訂閱的階段,雖然每個(gè)雜志和報(bào)紙的內(nèi)容都是完全相同的,但是用戶通過訂閱不同的雜志實(shí)際接受到了完全不同的消息。而今天的內(nèi)容APP提供了各種話題,各種類型的內(nèi)容,但用戶通過推薦算法,在無意識(shí)的情況下“訂閱”了不同的“雜志”。
- 人們更加集中于垂直的喜好是不可逆轉(zhuǎn)的趨勢(shì)。從內(nèi)容供給的角度來講,從內(nèi)容的匱乏到繁榮,從中心化到垂直聚群,用戶的選擇更貼近自己的喜好是不可逆轉(zhuǎn)的趨勢(shì)。在沒有提供太多選項(xiàng)的時(shí)候,人們會(huì)更多的集中在某幾個(gè)內(nèi)容上面,而當(dāng)今天層出不窮的內(nèi)容出現(xiàn),人們開始追逐更加個(gè)性化,精細(xì)化的內(nèi)容。
但不可否認(rèn)的是,推薦系統(tǒng)的便捷性、自動(dòng)化、實(shí)時(shí)性會(huì)加重這些問題。在這樣的情況下,我們能做些什么?
- 產(chǎn)品價(jià)值與數(shù)據(jù)指標(biāo)的平衡:推薦算法是對(duì)短期數(shù)據(jù)指標(biāo)的高度擬合,一定階段后會(huì)發(fā)現(xiàn)對(duì)推薦系統(tǒng)的人工干擾往往會(huì)造成負(fù)向的指標(biāo)波動(dòng)。但推薦算法往往只能帶來短期的局部最優(yōu)解。產(chǎn)品仍需要從本質(zhì)出發(fā),來看待產(chǎn)品給用戶帶來的本質(zhì)價(jià)值。對(duì)產(chǎn)品方向的判斷、以及對(duì)產(chǎn)品價(jià)值的堅(jiān)持才是產(chǎn)品尋找全局最優(yōu)解的方式。
2. 算法可能產(chǎn)生的蝴蝶效應(yīng)
在很多場(chǎng)景中,并非只有機(jī)器算法一種推薦方式。以視頻號(hào)為例,除公域機(jī)器推薦外,也存在私域(朋友圈、群聊、單聊)、半公域(朋友tab社交推薦)等推薦方式,但推薦對(duì)整個(gè)產(chǎn)品體驗(yàn)、內(nèi)容生態(tài)、作者生態(tài)的影響都是巨大的。
(1) 推薦算法對(duì)feed傳播的影響
從feed傳播來看,推薦算法給予其冷啟流量,提升傳播速率,利于其對(duì)抗時(shí)間衰減,快速達(dá)到社交裂變拐點(diǎn),進(jìn)而大規(guī)模傳播
(圖中曲線均為模擬,非真實(shí)曲線,僅供示例)
一個(gè)feed在傳播過程中,主要影響因素有:
- feed特性:優(yōu)質(zhì)度、傳播性、普適性,這三點(diǎn)決定其傳播速度、傳播穩(wěn)定性以及天花板。
- feed發(fā)表時(shí)間:feed與時(shí)間的“對(duì)抗性”。因?yàn)椋?)feed無法重復(fù)消費(fèi)且一段時(shí)間內(nèi)目標(biāo)受眾有限(2)由于環(huán)境背景、文化潮流、熱點(diǎn)等feed具有一定時(shí)效性(3)不確定性,時(shí)間越長(zhǎng)影響其傳播的因素越多,受眾的注意力發(fā)生轉(zhuǎn)移的可能越大。
熱門對(duì)頭部?jī)?nèi)容的最重要影響集中在冷啟期、拐點(diǎn)期與加速時(shí)期。在前幾個(gè)小時(shí)的冷啟動(dòng)時(shí)期,社交推薦無法達(dá)到其裂變點(diǎn),對(duì)其傳播的效果影響非常有限。feed要對(duì)抗漫長(zhǎng)的時(shí)間影響來達(dá)到裂變點(diǎn),對(duì)feed本身質(zhì)量要求非常高。而通過熱門的傳播可以直接給到較大的冷啟量,以及更快的傳播速度、在feed受時(shí)間影響衰退前迎來社交裂變拐點(diǎn),社交傳播開始作為主場(chǎng)景進(jìn)行下一輪傳播。(社交推薦具有積累慢,但達(dá)到拐點(diǎn)可進(jìn)行網(wǎng)絡(luò)裂變傳播,速度快、衰減慢。因此頭部feed在視頻號(hào)同時(shí)享受算法推薦早期爆發(fā)性強(qiáng),熱度積累快,又享受社交推薦,傳播范圍大、熱度衰減慢的雙重優(yōu)勢(shì)。)
(2) 推薦算法對(duì)平臺(tái)的影響
① 推薦算法作為最初的內(nèi)容篩選器,對(duì)視頻號(hào)的內(nèi)容分布以及產(chǎn)品體驗(yàn)有較大影響
推薦算法對(duì)feed的影響是巨大的,若無法被推薦算法識(shí)別,其獲得較高熱度的可能性較低,最終導(dǎo)致產(chǎn)品的流量主要集中在被推薦算法識(shí)別并推薦的feed上。其短期內(nèi)對(duì)內(nèi)容生態(tài)、瀏覽者體驗(yàn)有較為重要的決定作用;長(zhǎng)期來看,對(duì)內(nèi)容氛圍、作者反饋、瀏覽者長(zhǎng)期留存都有較大的影響。
② 推薦算法的影響需要進(jìn)行全局評(píng)估,而非局部評(píng)估
每個(gè)場(chǎng)景具有不同的特點(diǎn),可能存在某類內(nèi)容(或比例)更適合推薦場(chǎng)景而不適合社交場(chǎng)景,在達(dá)到推薦場(chǎng)景最優(yōu)后傳導(dǎo)進(jìn)入其他場(chǎng)景,導(dǎo)致其他場(chǎng)景該類內(nèi)容過少或過多。例如某類內(nèi)容在一定比例下,推薦場(chǎng)景有收益,而社交場(chǎng)景收益為負(fù)。在此類情況下,當(dāng)該類內(nèi)容在熱門達(dá)到最優(yōu)比例后傳到進(jìn)入社交場(chǎng)景,在社交場(chǎng)景會(huì)而產(chǎn)生負(fù)向影響,僅評(píng)估推薦場(chǎng)景將無法衡量其對(duì)產(chǎn)品的整體效果。
黃色曲線為推薦場(chǎng)景、藍(lán)色為社交傳播場(chǎng)景