深度學(xué)習(xí)技術(shù)在美圖個(gè)性化推薦的應(yīng)用實(shí)踐
掃描二維碼
隨時(shí)隨地手機(jī)看文章

導(dǎo)讀:美圖秀秀社交化的推進(jìn)過(guò)程中,沉淀了海量的優(yōu)質(zhì)內(nèi)容和豐富的用戶(hù)行為。推薦算法連接內(nèi)容消費(fèi)者和生產(chǎn)者,在促進(jìn)平臺(tái)的繁榮方面有著非常大的價(jià)值 。本次分享探討美圖在內(nèi)容社區(qū)推薦場(chǎng)景下應(yīng)用深度學(xué)習(xí)技術(shù)提升點(diǎn)擊率、關(guān)注轉(zhuǎn)化率和人均時(shí)長(zhǎng)等多目標(biāo)的實(shí)踐經(jīng)驗(yàn)。
1. 美圖社區(qū)個(gè)性化推薦場(chǎng)景概況與挑戰(zhàn)
2. embedding 技術(shù)在召回階段的應(yīng)用實(shí)踐
基于 Item2vec 的 item embedding
YouTubeNet 和雙塔 DNN 在個(gè)性化深度召回模型應(yīng)用實(shí)踐
3. 美圖排序模型的研發(fā)落地
NFwFM 模型研發(fā)迭代歷程和經(jīng)驗(yàn)
多任務(wù)學(xué)習(xí) ( Multi-task NFwFM ) 在多目標(biāo)預(yù)估場(chǎng)景的探索與實(shí)踐
▌美圖社區(qū)個(gè)性化推薦場(chǎng)景與挑戰(zhàn)
1. 業(yè)務(wù)場(chǎng)景
美圖社區(qū)個(gè)性化推薦場(chǎng)景大大小小有十多個(gè),其中流量比較大的場(chǎng)景是美圖秀秀 app 的社區(qū)內(nèi)容推薦 tab ( 圖1 ),這個(gè)場(chǎng)景以雙列瀑布流的形態(tài)給用戶(hù)推薦他最感興趣的內(nèi)容。
當(dāng)用戶(hù)點(diǎn)擊感興趣的圖片后會(huì)進(jìn)入圖1-2的相似推薦 feeds 流場(chǎng)景。在這個(gè)場(chǎng)景下, 用戶(hù)消費(fèi)的圖片和視頻,都是和用戶(hù)剛剛點(diǎn)擊進(jìn)來(lái)圖片是具有多種相似性的,如視覺(jué)、文本、topic 等。而如果用戶(hù)是從雙列瀑布流里點(diǎn)擊視頻,則會(huì)進(jìn)入到圖1-3的視頻 feeds 流場(chǎng)景。這個(gè)場(chǎng)景主打讓用戶(hù)有沉浸式的消費(fèi)體驗(yàn)。以上是美圖社區(qū)內(nèi)容推薦的主要業(yè)務(wù)場(chǎng)景。
2. 工作目標(biāo)
個(gè)性化推薦的首要目標(biāo)是理解內(nèi)容。從內(nèi)容本身的視覺(jué)、文本以及特定場(chǎng)景下用戶(hù)的行為來(lái)理解社區(qū)里可用于推薦的內(nèi)容。接下來(lái)是理解用戶(hù),通過(guò)用戶(hù)的基礎(chǔ)畫(huà)像 ( 年齡,性別等 )、設(shè)備畫(huà)像 ( OS,機(jī)型等 ),以及用戶(hù)的歷史行為來(lái)挖掘其興趣偏好。
再理解了社區(qū)的內(nèi)容和用戶(hù)之后,才是通過(guò)大規(guī)模的機(jī)器學(xué)習(xí)算法進(jìn)行精準(zhǔn)推薦,千人千面地連接用戶(hù)與內(nèi)容,從而持續(xù)提升用戶(hù)體驗(yàn),促進(jìn)社區(qū)繁榮。
3. 挑戰(zhàn)
在實(shí)際生產(chǎn)實(shí)踐過(guò)程當(dāng)中,主要遇到挑戰(zhàn)如下:
海量
美圖內(nèi)容社區(qū)有月活超過(guò)1億的用戶(hù),每天有100多萬(wàn)的候選圖片和視頻。在這種數(shù)據(jù)規(guī)模下,只在小數(shù)據(jù)規(guī)模下驗(yàn)證有效的復(fù)雜算法模型無(wú)法直接應(yīng)用到工業(yè)界線(xiàn)上系統(tǒng)。
實(shí)時(shí)
算法需要在端到端小于 300ms 的時(shí)延里,每天處理超過(guò)3億的個(gè)性化排序請(qǐng)求。這要求召回和排序算法不能過(guò)于復(fù)雜,要能夠進(jìn)行高效的計(jì)算。
長(zhǎng)尾
在實(shí)際場(chǎng)景中,用戶(hù)分布以及 item 行為分布都是長(zhǎng)尾的:
-
用戶(hù)分布的長(zhǎng)尾性:新用戶(hù)占比超過(guò)27%; -
曝光分布的長(zhǎng)尾性:關(guān)注<< 點(diǎn)擊<<曝光。
在這樣長(zhǎng)尾數(shù)據(jù)上進(jìn)行預(yù)估要求我們的模型具備穩(wěn)定的泛化能力。
▌美圖深度學(xué)習(xí)技術(shù)?!倩囟?/span>
在上述的應(yīng)用場(chǎng)景和技術(shù)挑戰(zhàn)下,美圖是如何將深度學(xué)習(xí)應(yīng)用到個(gè)性化推薦中的召回端和排序端的呢?我將會(huì)在下面為大家一一介紹。
召回端的 Item embedding 技術(shù)和召回模型,用于從百萬(wàn)級(jí)別的候選集里挑選 TOP 500個(gè)用戶(hù)最感興趣的候選集。相對(duì)于召回端,排序端的深度排序模型能夠融合多種召回來(lái)源并進(jìn)行統(tǒng)一排序,排序模型能包容規(guī)模更大的細(xì)粒度特征,相對(duì)召回模型,排序模型能夠?qū)崿F(xiàn)更加精準(zhǔn)的推薦。
美圖目前部署在線(xiàn)上系統(tǒng)的召回技術(shù)主要包括 Item2vec,YouTubeNet,以及雙塔 DNN。
1. Item2vec
Item2vec,是一種通過(guò)用戶(hù)行為來(lái)理解內(nèi)容的方式。
傳統(tǒng)的理解內(nèi)容方式是基于用戶(hù)行為構(gòu)造 item 側(cè)的統(tǒng)計(jì)類(lèi)特征,例如 item 的點(diǎn)擊率,收藏率等。這些特征是非常有效的,但是對(duì)內(nèi)容的理解維度比較單一。
另一種方式是從圖片的本身的視覺(jué)來(lái)提取比如圖片質(zhì)量、清晰度、圖片物體等等。還可以通過(guò)內(nèi)容本身的文本特征,比如關(guān)鍵詞,實(shí)體詞等等,來(lái)幫助理解內(nèi)容。這些維度的特征在內(nèi)容冷啟動(dòng)中是很有效的。但是他們無(wú)法表達(dá)內(nèi)容的某些潛在特性,比如某個(gè)內(nèi)容是否給用戶(hù)呈現(xiàn)出清新有趣的感覺(jué)。這種潛在的特征借助用戶(hù)的行為來(lái)理解比較合適。Item2vec 正是這樣一種技術(shù),它基于短時(shí)間內(nèi)被瀏覽的 item 具有內(nèi)在相似性的假設(shè)來(lái)學(xué)習(xí) item 的 embedding。
在圖4中可以看到 item2vec 在美圖社區(qū)圖片上的部分效果??梢钥吹胶筒樵?xún)圖在訓(xùn)練數(shù)據(jù)中高頻共現(xiàn)和中頻共現(xiàn)的 item,在背景和主體人物上和查詢(xún)?cè)~是高度相似的。而低頻共現(xiàn)的部分和我們的查詢(xún)圖片有些差異,不過(guò)主體內(nèi)容總體上還是比較相似的。
總體而言,item2vec 是一種學(xué)習(xí) item embedding 的成熟方案。
Item2vec 學(xué)習(xí)出來(lái)的 item 向量是美圖多種向量檢索式召回策略的底層數(shù)據(jù),包括實(shí)時(shí)興趣,短期興趣等等。比如當(dāng)用戶(hù)點(diǎn)擊了某個(gè) item,系統(tǒng)會(huì)實(shí)時(shí)地通過(guò)向量?jī)?nèi)積運(yùn)算查詢(xún)相似的 item 并插入到召回源頭部,用于下一輪的排序。
使用 item2vec 學(xué)習(xí)出來(lái)的 item 向量作為底層數(shù)據(jù)的召回策略,在美圖應(yīng)用非常廣泛,它們?cè)谡w曝光中占了10%以上。
實(shí)際應(yīng)用時(shí),我們是基于 skip-gram+negative sampling 來(lái)做 item2vec 的。
它是一個(gè)只有一個(gè)隱層的深度學(xué)習(xí)模型。輸入端是用戶(hù)的點(diǎn)擊序列, 輸出端是與輸入端的 target item 鄰近的64個(gè) item。64相對(duì)于 NLP 里取的5-6個(gè)是比較大的,這是因?yàn)橛脩?hù)的點(diǎn)擊序列不像自然語(yǔ)言那樣具有嚴(yán)格的局部空間句法結(jié)構(gòu)。在比較大上下文窗口中,更容易找到和目標(biāo) item 相似的上下文 item,模型更容易學(xué)習(xí)。
負(fù)采樣的個(gè)數(shù)是正樣本數(shù)的兩倍,這是一個(gè)效果和性能折中,在我們的應(yīng)用中正負(fù)樣本數(shù)1:2,能夠在天級(jí)別模型更新情況下,取得比較好效果。隱層的 embedding size 取128可以得到比較好的效果, 這個(gè)取值同樣是效果和性能的折中。另外,我們過(guò)濾了點(diǎn)擊序列長(zhǎng)度小于5的樣本,這樣過(guò)濾之后,我們的點(diǎn)擊序列能覆蓋99%候選圖片和視頻。
Item2vec 是學(xué)習(xí) item embedding 向量的一種非常好的方案,它也覆蓋了美圖多個(gè)推薦業(yè)務(wù)。但是它不直接考慮用戶(hù)的個(gè)性化行為,只考慮了訓(xùn)練樣本中 item 與 item 之間的局部共現(xiàn)關(guān)系。如果要利用上豐富的用戶(hù)側(cè)特征,實(shí)現(xiàn)個(gè)性化的話(huà),那么我們需要借鑒其他方案,而 YouTubeNet 正是這樣一種業(yè)界成熟的方案。
2. YouTubeNet
YouTubeNet 是 Google 于2016年提出的。與 item2vec 不同,YouTubeNet 在學(xué)習(xí) item 向量的時(shí)候考慮了用戶(hù)向量。從模型的優(yōu)化目標(biāo)上可以看出,是在給定用戶(hù)向量的情況下,從候選池中篩選出該用戶(hù)最感興趣的 item 列表。
從上圖右側(cè)模型架構(gòu)圖可以看到,模型訓(xùn)練用的label是用戶(hù)最近點(diǎn)擊過(guò)的 item 列表,特征包括兩部分,一部分是用戶(hù)更早之前點(diǎn)擊過(guò)的列表 ( clicked_item_list ),另一部分是用戶(hù)的 demographic 統(tǒng)計(jì)特征,如年齡、性別等。引入上述用戶(hù)的個(gè)性化信息之后,模型通過(guò)學(xué)習(xí) user embedding 和 item embedding,并離線(xiàn)導(dǎo)出用戶(hù)向量和 item 向量。線(xiàn)上使用時(shí)利用 FAISS 工具離線(xiàn)計(jì)算好每個(gè)用戶(hù)的 top N 候選 item 集,提供給排序算法使用。不過(guò)這種離線(xiàn)存儲(chǔ)候選集的方式,不能實(shí)時(shí)應(yīng)對(duì)用戶(hù)不斷變化的興趣,要捕獲這種變化,需要實(shí)時(shí)采集用戶(hù)不斷變化的點(diǎn)擊 item 數(shù)據(jù),實(shí)時(shí)計(jì)算用戶(hù)側(cè)向量。
實(shí)時(shí)計(jì)算用戶(hù)側(cè)向量的工作,一共分了兩部分:第一部分是離線(xiàn)部分,為下圖右側(cè)的虛線(xiàn)部分,這里模型一天一更新。離線(xiàn)部分基本流程和上一段所述相同,模型訓(xùn)練完之后導(dǎo)出 item 向量并在 FAISS 中構(gòu)建好索引。第二部分是實(shí)時(shí)部分,這一部分借助 kafka,實(shí)時(shí)采集用戶(hù)點(diǎn)擊行為數(shù)據(jù)并構(gòu)建 clicked_item_list 特征,接著請(qǐng)求離線(xiàn)訓(xùn)練好的模型,計(jì)算出用戶(hù)側(cè)向量,最后從 FAISS 中查詢(xún)的候選集,輸出給排序服務(wù)。
使用 YouTubeNet 模型實(shí)現(xiàn)實(shí)時(shí)計(jì)算用戶(hù)側(cè)向量之后,曝光占比22%的 YouTubeNet 給整體帶來(lái)了點(diǎn)擊率3.67%的提升,人均時(shí)長(zhǎng)提升2.22%。
3. 雙塔 DNN
雙塔 DNN 模型,聯(lián)合用戶(hù)行為和 item 側(cè)特征進(jìn)行召回。雙塔 DNN 模型構(gòu)建用戶(hù)側(cè) embedding 的方式和 YouTubeNet 是一樣的:先給用戶(hù)的點(diǎn)擊行為序列,年齡性別等稀疏的特征做 embedding,再經(jīng)過(guò)幾個(gè)簡(jiǎn)單的全連接層,得到用戶(hù)側(cè)向量。對(duì)于 item 側(cè)特征,雙塔 DNN 引入另一個(gè)子網(wǎng)絡(luò)來(lái)學(xué)習(xí),學(xué)習(xí)方式和用戶(hù)側(cè)特征是一樣的。
離線(xiàn)訓(xùn)練完了之后和 YouTubeNet 還是一樣,把 item 向量提前導(dǎo)出并加載到 FAISS。在線(xiàn)上環(huán)境使用的時(shí)候,實(shí)時(shí)計(jì)算用戶(hù)側(cè)向量,來(lái)快速捕獲用戶(hù)興趣。引入 item 側(cè)特征,使得線(xiàn)上用戶(hù)點(diǎn)擊率提升1.05%,人均時(shí)長(zhǎng)提升0.76%。
4. 總結(jié)

Item2vec 學(xué)習(xí)出來(lái)的 item 向量具有很好的相似性,作為底層數(shù)據(jù),服務(wù)了多個(gè)召回策略, 在美圖具有非常廣泛的應(yīng)用。包括實(shí)時(shí)興趣,短期興趣等等,覆蓋了10%以上的曝光占比。YouTubeNet 和雙塔 DNN 則分別引入用戶(hù)側(cè)和 item 側(cè)特征,有監(jiān)督地學(xué)習(xí)用戶(hù)最感興趣的 item 候選集,在美圖個(gè)性化推薦召回層,累計(jì)點(diǎn)擊率提升了4.72%,時(shí)長(zhǎng)提升了2.98%。
▌美圖深度學(xué)習(xí)技術(shù)?!判蚨?/span>
1. 重新審視 NFM 模型
美圖的第一代模型主打 LR 為主+人工特征組合。隨著業(yè)務(wù)發(fā)展,大大小小的推薦場(chǎng)景越來(lái)越多,做特征的人力越來(lái)越緊張。恰逢深度學(xué)習(xí)在工業(yè)級(jí)推薦系統(tǒng)有大規(guī)模應(yīng)用落地實(shí)踐,因而逐漸將算法模型轉(zhuǎn)向深度學(xué)習(xí)。
2018年年初,美圖用 NFM 模型首次打敗 LR 并取得穩(wěn)定效果,NFM 模型創(chuàng)造性的將 FM 和深度模型端到端的聯(lián)合訓(xùn)練,在底層就進(jìn)行顯示的特征交叉,NFM 論文的實(shí)驗(yàn)和美圖數(shù)據(jù)集上的實(shí)驗(yàn)都表明了模型能夠收斂更快也更加穩(wěn)定。在美圖的實(shí)踐中,引入右側(cè)多層感知機(jī)學(xué)習(xí)隱式的高階特征交叉之后,效果進(jìn)一步提升,好于原始的 NFM 模型。改進(jìn)后的 NFM 模型在我們的推薦流場(chǎng)景中取得了5.5%的點(diǎn)擊率,以及將近7%的時(shí)長(zhǎng)提升。
在 NFM 模型取得穩(wěn)定的正向效果之后,美圖推薦團(tuán)隊(duì)繼續(xù)探索了業(yè)界更多的模型。不過(guò)都未能落地,主要有以下兩個(gè)原因。
第一個(gè)是像 Wide&Deep, DeepFM, DCN 等從模型的復(fù)雜度上看沒(méi)有比 NFM 擁有更強(qiáng)的預(yù)估能力,計(jì)算效率也沒(méi)有明顯優(yōu)勢(shì)。離線(xiàn)評(píng)估和線(xiàn)上實(shí)驗(yàn)上都沒(méi)有得到正向效果。
第二種情況是,xDeepFM 和 NFFM 離線(xiàn)指標(biāo)提升了,但是計(jì)算復(fù)雜度很高。此外 NFFM 模型參數(shù)量大,內(nèi)存是個(gè)瓶頸。導(dǎo)致它倆無(wú)法大規(guī)模落地。

經(jīng)過(guò)一年多的探索,在業(yè)界的眾多模型中我們沒(méi)有找到合適美圖推薦場(chǎng)景的排序算法。另外,在我們引入行為序列特征之后,NFM 的計(jì)算復(fù)雜度已經(jīng)不能很好的支持線(xiàn)上流量。在這樣的背景下,美圖算法團(tuán)隊(duì)決定自行設(shè)計(jì)算法。
NFM 模型的優(yōu)點(diǎn)在于,通過(guò) Bi-Interaction,將 FM 模型端到端引入到深度模型,顯式構(gòu)建特征的乘性關(guān)系,加強(qiáng)模型預(yù)估能力,同時(shí)沒(méi)有增加時(shí)間復(fù)雜度。但是在實(shí)際生產(chǎn)實(shí)踐中,存在2個(gè)不足:
(1) NFM 需要足夠的 Embedding layer 寬度來(lái)學(xué)習(xí)特征。在實(shí)際場(chǎng)景下,其寬度取200左右,效果最好。但是隨著百萬(wàn)級(jí)別用戶(hù)行為序列特征的加入,NFM 模型的計(jì)算量越來(lái)越大,越來(lái)越不能滿(mǎn)足線(xiàn)上小于 300ms 的時(shí)延要求。
(2) 另一個(gè)不足是,NFM 模型本身存在 co-training 的問(wèn)題,即:一個(gè)特征的學(xué)習(xí),會(huì)不可避免地受到其他特征的影響。例如,用戶(hù)的性別特征,與用戶(hù)的網(wǎng)絡(luò)環(huán)境特征是不相關(guān)的;但是 NFM 模型無(wú)法構(gòu)建這種情況。
基于以上不足,我們先來(lái)看下業(yè)界相關(guān)經(jīng)驗(yàn):

不管是在傳統(tǒng)淺層模型時(shí)代還是在深度學(xué)習(xí)時(shí)代,引入特征的 field 信息之后,模型幾乎是總能帶來(lái)提升的。比如 FFM 仍然一直活躍在 Kaggle 等 CTR 預(yù)估比賽中,穩(wěn)定的取得比不能建模 field 信息的 FM 更好的效果。而深度學(xué)習(xí)時(shí)代,業(yè)界很多公司比如2018年, 微軟離線(xiàn)驗(yàn)證 xDeepFM 引入特征的 field 信息之后,相對(duì)不能建模 field 信息的 DCN 同樣取得了很明顯的提升,即便在現(xiàn)在,xDeepFM 仍然是很優(yōu)秀的模型。但是他們或者計(jì)算量太高或者參數(shù)量太大,導(dǎo)致無(wú)法大規(guī)模應(yīng)用到線(xiàn)上系統(tǒng)?;谏厦鎸?duì) NFM 模型的優(yōu)點(diǎn)的實(shí)驗(yàn)和分析,美圖算法團(tuán)隊(duì)開(kāi)始嘗試 NFwFM 模型。
2. NFwFM 模型
2.1 模型整體架構(gòu)
NFwFM 模型是在 FwFM 模型的基礎(chǔ)上演化出來(lái)的:通過(guò) Field-wise Bi-Interaction 組件,將 FwFM 引入到深度模型里面。
上圖是 NFwFM 模型的整體架構(gòu),首先,把特征按照邏輯分為3個(gè)大模塊:用戶(hù)側(cè)特征 ( 包括年齡、性別等 ),item 側(cè)特征 ( 包括 item id,item 標(biāo)簽等 ) 以及上下文側(cè)特征。
接下來(lái)將 FwFM 分解成了3個(gè)子模塊:第一個(gè)模塊是線(xiàn)性加和模塊 ( 上圖中 S 表示 ),不區(qū)別 field 學(xué)習(xí)的特征;第二個(gè)模塊是矩陣分解模塊 ( 上圖中的 MF 部分 ),用來(lái)學(xué)習(xí) field 粒度下的特征組合,比如 user field 和 item field 的二階交叉;第三個(gè)模塊是 FM 模塊,用來(lái)學(xué)習(xí) field 內(nèi)部 feature 粒度的特征組合。
2.2 FwFM 和 FFM 相比
(1) FwFM 模型尺寸相對(duì) FFM 少 M-1 倍。在美圖實(shí)際應(yīng)用中,特征量大約可減少30倍。
(2) FwFM 模型引入了 Field 相關(guān)的權(quán)重 ri,j ,解決了 FM 存在的不相關(guān)特征在學(xué)習(xí)過(guò)程中互相干擾的問(wèn)題。
(3) 離線(xiàn)評(píng)估顯示,F(xiàn)wFM 模型的預(yù)測(cè)性能 ( 例如 AUC 指標(biāo) ) 和 FFM 基本一致,而參數(shù)規(guī)模大大降低。
FwFM 模型由于要建模 field 信息,導(dǎo)致它無(wú)法像 FM 那樣具備良好的線(xiàn)性時(shí)間復(fù)雜度。因此,需要將 FwFM 做矩陣分解 ( 上面架構(gòu)圖中的 MF 模塊 )。
2.3 MF 模塊
如下圖所示,模型分別從用戶(hù)側(cè)和 item 側(cè)提取特征向量 vi 和 vj,在這兩個(gè)向量上進(jìn)行矩陣分解,用來(lái)學(xué)習(xí) field 粒度的特征組合。實(shí)際應(yīng)用中,需要分別對(duì)用戶(hù)側(cè)、item 側(cè)、context 側(cè)進(jìn)行兩兩矩陣分解,因此共有3個(gè)矩陣分解子模塊。
通過(guò)離線(xiàn)評(píng)估顯示,MF 分解前后的 FwFM 模型,其 AUC 等指標(biāo)持平,但是相同參數(shù)規(guī)模下計(jì)算量降低 M*M 倍,計(jì)算效率大大提升。

2.4 FM 模塊
但是,MF 分解也會(huì)存在不足,例如:對(duì)于用戶(hù)側(cè)存在的豐富多樣的特征,沒(méi)有辦法使用矩陣分解進(jìn)行兩兩二階交叉。
因此,在 field 內(nèi)部引入 FM,用來(lái)顯式學(xué)習(xí)用戶(hù)側(cè) feature 粒度的所有特征的二階交叉組合。具體來(lái)講,給 user field 引入一個(gè) FM 模型,對(duì)用戶(hù)的年齡、性別等特征的二階交叉,同樣的算法也用于 item field 等。這樣,F(xiàn)wFM 模型就演化成了下圖這樣一個(gè) Field-wise Bi-Interaction 組件。引入 FM 模型后,模型的 AUC 指標(biāo)提升了約0.002。

2.5 解決特征間干擾問(wèn)題
但是這樣并沒(méi)有解決最一開(kāi)始提到的問(wèn)題:FM 模型在學(xué)習(xí)過(guò)程中,特征存在互相干擾的情況。
回顧一下前文所述的特征間干擾問(wèn)題,即 FM 的 co-training 問(wèn)題:

模型在對(duì)每一個(gè)特征進(jìn)行學(xué)習(xí)的時(shí)候,都需要和其他特征進(jìn)行交叉。例如,用戶(hù)性別特征和網(wǎng)絡(luò)環(huán)境特征應(yīng)該是不相關(guān)的,但是模型在學(xué)習(xí)性別特征的時(shí)候不可避免地受到網(wǎng)絡(luò)環(huán)境的影響。
為解決這一問(wèn)題,借鑒 dropout 思路:模型訓(xùn)練完成 Bi-Interaction 后,按照伯努利分布 ( 期望為 β ) 隨機(jī)丟棄部分二階交叉項(xiàng),以解決部分 co-training 問(wèn)題。

具體來(lái)講,先從伯努利分布中采樣出由{0,1}組成的向量,再用該向量和 FM 模型計(jì)算得到的表示二階特征交叉組合的向量進(jìn)行相乘,這樣可以隨機(jī)丟棄部分二階交叉項(xiàng)。在預(yù)估的時(shí)候是將 FM 做了 Bi-Interaction 后得到的向量,乘以伯努利分布的期望 β,用來(lái)對(duì)齊計(jì)算過(guò)程中丟失的數(shù)據(jù)的大小。引入如上思路之后,AUC 提升約0.001。
2.6 總結(jié)
總體來(lái)講,我們從 FwFM 演化出 Field-wise Bi-Interaction 組件,包含線(xiàn)性加和模塊用來(lái)學(xué)習(xí)一階特征,還包括矩陣分解 ( MF ) 模塊和 FM 模塊,用來(lái)學(xué)習(xí)特征 field 粒度和 feature 粒度的特征交叉。相比于上一代 NFM 模型,使用這樣的模型,在計(jì)算量和參數(shù)量都減少了6倍的情況下,點(diǎn)擊率得到了5.19%的提升。
3. Multi-task NFwFM
3.1 多任務(wù)基本架構(gòu)
接下來(lái)是多任務(wù)方面的工作。在深度學(xué)習(xí)時(shí)代,深度模型能夠包含多種不同分布的樣本,釋放了多任務(wù)學(xué)習(xí)的最大價(jià)值。從實(shí)踐角度考量,為使離線(xiàn)訓(xùn)練和在線(xiàn)預(yù)估效率較高,目標(biāo)個(gè)數(shù)具有可拓展性。業(yè)界通常會(huì)選擇下圖中這種底層硬共享 ( hard-sharing ) 隱層的多任務(wù)架構(gòu),在這種架構(gòu)下,因?yàn)辄c(diǎn)擊率和關(guān)注轉(zhuǎn)化率任務(wù)是強(qiáng)相關(guān)的工作,能增加共享隱層的學(xué)習(xí)速度,從而增加模型的收斂效率,而這兩個(gè)任務(wù)中不相關(guān)的部分可以認(rèn)為是相互任務(wù)的噪聲,可以增強(qiáng)模型的泛化能力。

在學(xué)習(xí)的過(guò)程中,是利用兩個(gè)任務(wù)簡(jiǎn)單加和的方式來(lái)學(xué)習(xí)多目標(biāo)的。這個(gè)方式的離線(xiàn) AUC 和單獨(dú)的點(diǎn)擊用戶(hù)模型的 AUC 基本持平;線(xiàn)上點(diǎn)擊率提升1.93%,關(guān)注轉(zhuǎn)化率提升2.90%。

在實(shí)際情況中,點(diǎn)擊和關(guān)注的樣本比例大概為100:1;在這樣很少的關(guān)注樣本的情況下,使用上述的多任務(wù)架構(gòu)就可以得到穩(wěn)定的提升;這驅(qū)使我們引入更多的關(guān)注數(shù)據(jù),來(lái)壓榨多任務(wù)模型學(xué)習(xí)更多更高質(zhì)量數(shù)據(jù)的能力。
3.2 樣本 reweight
具體來(lái)說(shuō),我們引入一個(gè)樣本 reweight 的概念,主要目的是為了引入更多更高質(zhì)量的關(guān)注行為數(shù)據(jù)。因?yàn)闊o(wú)數(shù)的經(jīng)驗(yàn)告訴我們這是非常有效的做法。
以下圖為例,假設(shè)有A、B、C、D這4個(gè) item,圖中實(shí)線(xiàn)部分表示 item 的真實(shí) CTR ( 由大到小分別是 C > D > B > A );而實(shí)際的關(guān)注轉(zhuǎn)化率的關(guān)系是 A > C > B > D = 0。

我們用實(shí)際的關(guān)注轉(zhuǎn)化率取 reweight 這個(gè)樣本之后,得到下圖虛線(xiàn)部分的結(jié)果:C > D > A > B,即原本點(diǎn)擊率最低的 item A,在 reweight 之后由于關(guān)注轉(zhuǎn)化率高而變得點(diǎn)擊率比 B 更高,這樣 item A 更容易被模型推薦出來(lái), 這樣就能夠提升整體的關(guān)注轉(zhuǎn)化率,并且因?yàn)?C、D 等因?yàn)楸旧睃c(diǎn)擊率較高或者沒(méi)有關(guān)注行為,它們不受分布改變的影響,因此他們的 CTR 大小關(guān)系不受影響。換一種理解,我們是在僅僅改變了有關(guān)注 item 的點(diǎn)擊率分布的基礎(chǔ)中引入了更多更高質(zhì)量的關(guān)注行為數(shù)據(jù)。對(duì)原來(lái)的點(diǎn)擊率預(yù)估模型的侵入很少,整體點(diǎn)擊率不會(huì)下跌太多。該工作提高關(guān)注轉(zhuǎn)化率14.93%,但是點(diǎn)擊率提升很少 ( 約0.84% )。
3.3 Homoscedastic Uncertainty 學(xué)習(xí)方式
上述工作點(diǎn)擊率提升很少的原因是 reweight 模型過(guò)于簡(jiǎn)單。如前文所述,多任務(wù)的缺點(diǎn)是在參數(shù)共享的情況下,如果兩個(gè)任務(wù)有不相關(guān)的部分,兩個(gè)任務(wù)就會(huì)互相干擾,從而影響效果。學(xué)術(shù)界將這種現(xiàn)象稱(chēng)為共享沖突。共享沖突這一問(wèn)題分析和解決起來(lái)較為復(fù)雜。針對(duì)美圖的具體場(chǎng)景,減少共享沖突的一種方法是加大點(diǎn)擊率預(yù)估任務(wù)的重要性,讓點(diǎn)擊率預(yù)估任務(wù)主導(dǎo)底部共享參數(shù)學(xué)習(xí),進(jìn)而讓整體模型優(yōu)先正確預(yù)估點(diǎn)擊率模型,再去預(yù)估點(diǎn)擊轉(zhuǎn)化率任務(wù)。
在實(shí)踐中,我們用同方差不確定性來(lái)學(xué)習(xí)每個(gè)任務(wù)對(duì)整體的主導(dǎo)能力。具體來(lái)說(shuō),分別給點(diǎn)擊率任務(wù)和關(guān)注轉(zhuǎn)化率任務(wù)各自一個(gè)參數(shù) ( θclick 和 θfollow ) 用來(lái)表示各自的不確定性;不確定性越小的任務(wù)對(duì)模型整體的主導(dǎo)性越強(qiáng)。

從下圖可以看出,左圖的關(guān)注轉(zhuǎn)化的不確定性達(dá)到0.76,確實(shí)比右圖的點(diǎn)擊率的不確定性 ( 約0.42 ) 更高;因此,讓點(diǎn)擊率預(yù)估任務(wù)主導(dǎo)整個(gè)模型的學(xué)習(xí)。

這樣可以避免點(diǎn)擊率下跌的風(fēng)險(xiǎn) ( 實(shí)際上,點(diǎn)擊率提升了1.57% ),而關(guān)注轉(zhuǎn)化率的提升達(dá)到了15.65%。
4. 總結(jié)
排序端的工作,美圖經(jīng)歷了從 LR 模型到深度學(xué)習(xí)模型的引進(jìn):
(1) 引入 NFM 模型,點(diǎn)擊率提升了5.53%,人均時(shí)長(zhǎng)提升6.97%
(2) NFwFM 模型在引入了特征 Filed 信息后,在模型尺寸和計(jì)算復(fù)雜度可控的情況下,點(diǎn)擊率提升了5.19%,人均時(shí)長(zhǎng)提升了2.93%;
多目標(biāo) NFwFM 模型,在引入更多更高質(zhì)量數(shù)據(jù)之后,不僅關(guān)注轉(zhuǎn)化率提升了15.65%,點(diǎn)擊率也提升了1.57%。

▌參考文獻(xiàn)
1. Covington P, Adams J, Sargin E. Deep neural networks for youtube recommendations
2. Ma J, Zhao Z, Yi X, et al. Modeling task relationships in multi-task learning with multi-gate mixture-of-experts
3. Rich Caruana. 1998. Multitask learning. In Learning to learn
4. Lin T Y, Goyal P, Girshick R, et al. Focal loss for dense object detection
5. Kendall A, Gal Y, Cipolla R. Multi-task learning using uncertainty to weigh losses for scene geometry and semantics
6. [白楊-2018]基于用戶(hù)行為的視頻聚類(lèi)方案
https://cloud.tencent.com/developer/article/1193177
7. [蔣文瑞 2018]. 深度模型 DNN 在個(gè)性化推薦場(chǎng)景中的應(yīng)用
https://cloud.tencent.com/developer/article/1193180
8. [陳文強(qiáng) 2019]. 多任務(wù)學(xué)習(xí)在美圖推薦排序的近期實(shí)踐
https://cloud.tencent.com/developer/article/1475686
作者介紹
陳文強(qiáng)、白楊、黃海勇,來(lái)自于美圖公司數(shù)據(jù)智能部。該團(tuán)隊(duì)負(fù)責(zé)美圖大數(shù)據(jù)和 AI,通過(guò)用戶(hù)畫(huà)像、推薦算法、內(nèi)容理解、大數(shù)據(jù)等,對(duì)公司的產(chǎn)品、技術(shù)、運(yùn)營(yíng)、商業(yè)化等賦能。
特別推薦一個(gè)分享架構(gòu)+算法的優(yōu)質(zhì)內(nèi)容,還沒(méi)關(guān)注的小伙伴,可以長(zhǎng)按關(guān)注一下:
長(zhǎng)按訂閱更多精彩▼
如有收獲,點(diǎn)個(gè)在看,誠(chéng)摯感謝
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問(wèn)題,請(qǐng)聯(lián)系我們,謝謝!





