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