簡介
DSIN(Deep Session Interest Network)是阿里巴巴于2019年提出的點擊率預估模型。相比于DIN、DIEN,考慮了用戶行為序列的內在結構(序列是由session組成的,在每個session內,用戶行為是高度同構的,在session間是異構的),實現了對用戶興趣的更精準地刻畫,并取得了更好的離線效果(論文中沒有給出在線效果)
已有工作
CTR預估
截止目前,已有的CTR預估工作主要集中在兩方面:
(1)特征交叉。從Wide&Deep->DeepFM->DCN->AFM。交叉越充分,可提取的信息越豐富,效果越好;
(2)利用用戶行為序列。從YoutubeNet->DIN->DIEN。利用序列信息,提升用戶表征能力和目標預測準確性
基于Session的推薦
截止目前,session經常被用在序列化推薦中,但是未被用在CTR預估中
已有工作的不足
未考慮用戶行為序列的內在結構:序列是由session組成的,在每個session內,用戶行為是高度同構的,在session間是異構的
解決的方案
step1:將用戶行為序列劃分為不同的session,本文是按照至少每30min劃分作為一個session。這點和Airbnb的劃分方式是一致的。在每個session內通過帶bias的self-attention提取用戶興趣;
step2:將step1再經過Bi-LSTM,建模session間的用戶興趣演變
step3:使用“局部激活單元”自適應學習在目標target上的不同session興趣
模型結構和Loss設計
Base CTR
-
模型結構
介紹三部分:feature representation、embedding、MLP
(1)feature representation
涉及三種類型的特征:用戶畫像(如性別、城市等)、內容畫像(如賣家id、品牌id等)、用戶行為(如用戶點擊的item id、item的side information等)
(2)embedding
上述三種類型的特征都會表示成embedding的形式。具體處理如下:
(3)MLP
上述特征經過concat、flattened后喂給MLP,再經過激活函數(如RELU),最終用softmax預測用戶點擊目標item的概率
-
Loss設計
用交叉熵損失函數表示
DSIN的模型結構
如下所示,包含4部分:Session Division Layer、Session Interest Extractor Layer、Session Interest Interacting Layer、Session Interest Activating Layer
第一部分:Session Division Layer
目標:劃分session,保證在每個session內,用戶行為是高度同構的,在session間是異構的
方式:按照至少每30min劃分作為一個session
第二部分:Session Interest Extractor Layer
目標:提取用戶興趣
方式:需要考慮bias,再按照transformer結構進行multi-head Self-attention學習session內的時序信息。包含Bias Encoding、Multi-head Self-attention兩部分
-
Bias Encoding
由如下三部分組成,并和用戶原session行為求和:
- Multi-head Self-attention
和transformer的self-attention結構相同
第三部分:Session Interest Interacting Layer
目標:捕捉用戶興趣演變
第四部分:Session Interest Activating Layer
使用“局部激活單元”自適應學習在目標target上的不同session興趣
DSIN的Loss設計
loss:交叉熵損失函數
模型效果
Baseline
YoutubeNet(有無用戶行為兩種)、Wide&Deep、DIN、DIN-RNN、DIEN
評估
離線:AUC
數據集
數據集 | 行為類型 | 行為序列周期 | 行為序列長度 |
阿里媽媽的廣告數據集 | 展現、點擊 | 訓練集:20170506~20170512測試集:20170513 | max_length>=200 |
阿里巴巴的推薦數據集 | 展現、點擊 | 訓練集:20181213~20181219測試集:20181220 | max_length>=200 |
離線效果
結論:
(1)DSIN效果最佳;
(2)由于用戶行為序列的不連續,導致DIN-RNN的效果比DIN的差
具體效果如下所示:
效果復盤
(1)按照session進行建模的效果
1)從離線結果可知,DIN-RNN比DIN的效果差,DSIN-BE比DSINBE-NO-SIIL的效果好
2)按照session處理,會導致由于用戶行為序列的快速躍變、突然停止,帶來用戶行為的session變得充滿噪聲,導致信息在RNN傳輸時帶來信息損失,影響用戶行為序列建模的用戶表征
3)按照session處理,保證在每個session內,用戶行為是高度同構的,在session間是異構的,更適合進行序列建模
(2)用戶興趣交叉層的效果
從離線結果可知,DSIN-BE比DSINBE-NO-SIIL的效果好,從而論證必要性
(3)bias編碼的效果
DSIN比DSIN-PE的效果好,論證bias編碼可以捕捉session的高階信息
(4)self-attention、激活單元(activation unit)的可視化
論文中進行了可視化,說明了效果
代碼實現
TensorFlow實現DSIN
結尾
親愛的讀者朋友:感謝您在繁忙中駐足閱讀本期內容!您的到來是對我們最大的支持??
正如古語所言:"當局者迷,旁觀者清"。您獨到的見解與客觀評價,恰似一盞明燈💡,能幫助我們照亮內容盲區,讓未來的創作更加貼近您的需求。
若此文給您帶來啟發或收獲,不妨通過以下方式為彼此搭建一座橋梁: ? 點擊右上角【點贊】圖標,讓好內容被更多人看見 ? 滑動屏幕【收藏】本篇,便于隨時查閱回味 ? 在評論區留下您的真知灼見,讓我們共同碰撞思維的火花
我始終秉持匠心精神,以鍵盤為犁鏵深耕知識沃土💻,用每一次敲擊傳遞專業價值,不斷優化內容呈現形式,力求為您打造沉浸式的閱讀盛宴📚。
有任何疑問或建議?評論區就是我們的連心橋!您的每一條留言我都將認真研讀,并在24小時內回復解答📝。
愿我們攜手同行,在知識的雨林中茁壯成長🌳,共享思想綻放的甘甜果實。下期相遇時,期待看到您智慧的評論與閃亮的點贊身影?!
萬分感謝🙏🙏您的點贊👍👍、收藏?🌟、評論💬🗯?、關注??💚~
自我介紹:一線互聯網大廠資深算法研發(工作6年+),4年以上招聘面試官經驗(一二面面試官,面試候選人400+),深諳崗位專業知識、技能雷達圖,已累計輔導15+求職者順利入職大中型互聯網公司。熟練掌握大模型、NLP、搜索、推薦、數據挖掘算法和優化,提供面試輔導、專業知識入門到進階輔導等定制化需求等服務,助力您順利完成學習和求職之旅(有需要者可私信聯系)
友友們,自己的知乎賬號為“快樂星球”,定期更新技術文章,敬請關注!