搜索推荐炼丹笔记:Transformer在搜索推荐中的应用
BERT等Transformer模型在自然語言處理領(lǐng)域大放異彩之后,將Transformer應(yīng)用在各個(gè)領(lǐng)域變成了一種潮流,包括之前文章中介紹的Image Transformer和本文要介紹的,在搜索推薦領(lǐng)域排序算法階段,利用高階特征組合的AutoInt、對用戶行為序列建模的BST、Transformer在工業(yè)界中的應(yīng)用和Transformer在數(shù)據(jù)算法競賽(2020年騰訊廣告算法大賽)中驚人表現(xiàn)等。
CTR預(yù)估領(lǐng)域面臨著諸多挑戰(zhàn),輸入特征的稀疏高維問題,高階特征的計(jì)算復(fù)雜度問題等本文將數(shù)值特征和類別特征映射到同一個(gè)低維空間,利用帶殘差連接的多頭注意力機(jī)制顯式的進(jìn)行交叉特征獲取,提出了一種能夠自學(xué)習(xí)特征高階交叉的方法。
Interacting Layer是本篇論文中最核心的創(chuàng)新點(diǎn),借鑒了NLP問題中的Multi-head Self-Attention方法,利用Key-Value Attention,每個(gè)Attention Head對應(yīng)三個(gè)轉(zhuǎn)換矩陣,Query、Key、Value。
本文利用內(nèi)積的方式計(jì)算每個(gè)特征與其他特征的相似度,然后通過計(jì)算softmax歸一化注意力分布后,加權(quán)得到新特征。以上步驟為一層Attention,作者簡單的拼接多個(gè)Attention head的輸出,引入標(biāo)準(zhǔn)的殘差連接作為最終輸出,構(gòu)造更高階的組合特征。
在之前的文章中,我們多次聊到了阿里團(tuán)隊(duì)在用戶行為序列上的工作。由于用戶行為序列(User Behavior Sequence)所蘊(yùn)含的豐富信息,同時(shí)隨著 Transformer 在 自然語言處理相關(guān)任務(wù)中的表現(xiàn)超過RNN模型,利用Transformer替代RNN捕捉 序列信息中深層含義變得水到渠成。
Behavior Sequence Transformer 模型從模型網(wǎng)絡(luò)結(jié)構(gòu)圖中我們可以發(fā)現(xiàn),非常符合CTR預(yù)估模型中Embeding&MLP的典型結(jié)構(gòu),而其創(chuàng)新點(diǎn)在于如何使用Transformer Layer 對用戶行為序列進(jìn)行建模。
“Other Features”部分將用戶、物品、上下文和交叉信息加入模型。
Transformer層引入位置相關(guān)的Position embedding,將帶時(shí)序、位置信息的多頭注意力機(jī)制Multi-Head Self-Attention用在用戶歷史點(diǎn)擊Item序列上。
- Self-attention layer
- Point-wise Feed-Forward Networks
- Stacking the self-attention bloc
以上3個(gè)模塊通過捕捉行為序列中Item之間的關(guān)系來完成深層次的學(xué)習(xí)。
Transformer 在美團(tuán)搜索排序上的實(shí)踐主要分三個(gè)部分:特征工程,行為序列建模,重排序。特征工程部分借鑒 AutoInt的方法,使用Transformer Layer進(jìn)行特征的高階組合。模型結(jié)構(gòu)參考 AutoInt結(jié)構(gòu),但在實(shí)踐中根據(jù)美團(tuán)搜索的數(shù)據(jù)特點(diǎn),對模型結(jié)構(gòu)做了一些調(diào)整。行為序列建模在Transformer 行為序列建模基礎(chǔ)上進(jìn)行了模型優(yōu)化。
- 保留將稠密特征和離散特征的 Embedding 送入到 MLP 網(wǎng)絡(luò),以隱式的方式學(xué)習(xí)其非線性表達(dá)。
- Transformer Layer 部分,不是送入所有特征的 Embedding,而是基于人工經(jīng)驗(yàn)選擇了部分特征的 Embedding。
- 考慮到 MLP 具有很強(qiáng)的隱式交叉能力,將所有特征的 Embedding 表示 concat 一起輸入到 MLP。
- 特征向量生成部分和重排序模型是一個(gè)整體,聯(lián)合端到端訓(xùn)練。
- 訓(xùn)練和預(yù)測階段固定選擇 TopK 進(jìn)行重排,遇到某些請求曝光 item 集不夠 TopK 的情況下,在末尾補(bǔ)零向量進(jìn)行對齊。
在2020年騰訊廣告算法大賽中,冠軍團(tuán)隊(duì)利用Transformer模型贏得了最后的勝利,讓人眼前一亮。
本屆算法大賽的題目來源于一個(gè)重要且有趣的問題。眾所周知,像用戶年齡和性別這樣的人口統(tǒng)計(jì)學(xué)特征是各類推薦系統(tǒng)的重要輸入特征,其中自然也包括了廣告平臺。這背后的假設(shè)是,用戶對廣告的偏好會隨著其年齡和性別的不同而有所區(qū)別。許多行業(yè)的實(shí)踐者已經(jīng)多次驗(yàn)證了這一假設(shè)。然而,大多數(shù)驗(yàn)證所采用的方式都是以人口統(tǒng)計(jì)學(xué)屬性作為輸入來產(chǎn)生推薦結(jié)果,然后離線或者在線地對比用與不用這些輸入的情況下的推薦性能。
本屆大賽的題目嘗試從另一個(gè)方向來驗(yàn)證這個(gè)假設(shè),即以用戶在廣告系統(tǒng)中的交互行為作為輸入來預(yù)測用戶的人口統(tǒng)計(jì)學(xué)屬性。賽題的“逆向思考”本身具有其研究價(jià)值和趣味性,此外也有實(shí)用價(jià)值和挑戰(zhàn)性。
鑒于以上問題,冠軍們對Masked Language Modeling(MLM)進(jìn)行改進(jìn),原始的MLM是直接mask掉整個(gè)廣告包括屬性,但只mask廣告的一部分(廣告id或者屬性)。
具體地,隨機(jī)mask掉20%的token,mask后的位置使用0向量來代替,或者采樣一個(gè)屬性id來替換。使用改進(jìn)的MLM預(yù)測這些廣告的時(shí)候,不僅可以使用最近點(diǎn)擊的廣告,也可以用它的屬性去預(yù)測,使得不同屬性的embedding能夠在語義空間上對齊。同時(shí),也采用了一個(gè)很關(guān)鍵的策略,把詞表縮小到10萬(提取top10w,其余為unk),這樣使得bert能跑起來。對于原始的MLM,我們也嘗試過,雖然有提高但提高不是很大。
最后預(yù)測這些id的時(shí)候,不僅可以使用之前之后點(diǎn)擊的廣告,也可以用它的屬性去預(yù)測。
參考文獻(xiàn)
- 1、Behavior Sequence Transformer for E-commerce Recommendation in Alibaba. https://arxiv.org/pdf/1905.06874v1.pdf
- 2、S 3 -Rec: Self-Supervised Learning for Sequential Recommendation with Mutual Information Maximization. https://arxiv.org/pdf/2008.07873.pdf
- 3、https://zhuanlan.zhihu.com/p/131590390
- 4、https://zhuanlan.zhihu.com/p/166710532
- 5、AutoInt:Automatic Feature Interaction Learning via Self-Attentive Neural Networks
- 6、2020年AI領(lǐng)域有哪些讓人驚艷的研究?
- 7、CTR預(yù)估系列入門手冊
總結(jié)
以上是生活随笔為你收集整理的搜索推荐炼丹笔记:Transformer在搜索推荐中的应用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 搜索推荐炼丹笔记:单网络内部集成学习
- 下一篇: 推荐算法炼丹笔记:排序模型CTR点击率预