用戶行為序列建模(篇六)-【阿里】DSIN

簡介

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測試集:20170513max_length>=200
阿里巴巴的推薦數據集展現、點擊訓練集:20181213~20181219測試集:20181220max_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、搜索、推薦、數據挖掘算法和優化,提供面試輔導、專業知識入門到進階輔導等定制化需求等服務,助力您順利完成學習和求職之旅(有需要者可私信聯系)

友友們,自己的知乎賬號為“快樂星球”,定期更新技術文章,敬請關注!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/912370.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/912370.shtml
英文地址,請注明出處:http://en.pswp.cn/news/912370.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

現代Web表情選擇器組件:分類系統與實現詳解

你好呀,我是小鄒。今天給博客的emoji表情進行了歸類、補充,具體優化如下。 表情選擇器的核心價值在于其分類系統。本文將深入解析表情分類體系的設計與實現,通過完整代碼示例展示如何構建一個專業級的表情選擇器組件。 一、表情分類系統設計…

華為云Flexus+DeepSeek征文 |華為云ModelArts Studio集成OpenAI Translator:開啟桌面級AI翻譯新時代

華為云FlexusDeepSeek征文 |華為云ModelArts Studio集成OpenAI Translator:開啟桌面級AI翻譯新時代 引言一、ModelArts Studio平臺介紹華為云ModelArts Studio簡介ModelArts Studio主要特點 二、OpenAI Translator介紹openai-translator簡介openai-translator主要特…

GitHub 趨勢日報 (2025年06月27日)

📊 由 TrendForge 系統生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日報中的項目描述已自動翻譯為中文 📈 今日獲星趨勢圖 今日獲星趨勢圖 817 twenty 655 awesome 476 free-for-dev 440 Best-websites-a-programmer-shoul…

Java語法通關秘籍:this、構造方法到String核心精粹

文章目錄 🔍 **一、就近原則與this關鍵字**1. **成員變量**2. **局部變量** 🛠? **二、構造方法(構造器)**1. **標準格式**2. **有參構造實戰**3. **靈魂三問** ? 📦 **三、JavaBean黃金標準**🧠 **四、對…

@Cacheable 等緩存注解是不是也用到了 AOP?

Spring 的聲明式緩存注解(Cacheable, CachePut, CacheEvict 等)是 AOP 技術在實際應用中最強大、最經典的范例之一,其原理與 Transactional 非常相似。 核心思想:一個智能的“秘書” 你可以把 Cacheable 的 AOP 實現想象成一個極…

解鎖云原生微服務架構:搭建與部署實戰全攻略

目錄 一、引言二、微服務拆分2.1 拆分的必要性2.2 拆分方法2.3 注意事項 三、服務注冊與發現3.1 概念與原理3.2 常用組件介紹3.3 實踐案例 四、負載均衡4.1 作用與原理4.2 實現方式4.3 負載均衡算法4.4 案例與代碼實現4.4.1 項目依賴配置4.4.2 配置 Ribbon4.4.3 代碼實現負載均…

Python 數據分析與可視化 Day 7 - 可視化整合報告實戰

好的,我們進入: 🧠 第5周 第7天 🎯 主題:測試復盤 項目封裝實戰 ? 今日目標 回顧第5周數據分析與可視化核心知識對整個“學生成績分析系統”進行項目封裝與模塊化拆分增加命令行參數支持,提升可復用性…

力扣1498. 滿足條件的子序列數目隨筆

“方生方死,方死方生。”——《莊子》 題目 給你一個整數數組 nums 和一個整數 target 。 請你統計并返回 nums 中能滿足其最小元素與最大元素的 和 小于或等于 target 的 非空 子序列的數目。 由于答案可能很大,請將結果對 取余后返回。 難度&#…

5.Docker安裝Tomcat

#官方的使用 docker run -it --rm tomcat:9.0 #我們之前使用docker run -d 某鏡像都是后來運行,容器停止之后,容器還能夠查詢到 而docker run -it -rm 是用完之后,容器刪除,鏡像還存在。 測試的時候可以用官方的 &#xff08…

企業事業政府單位智慧主題展廳素材管理平臺播放軟件

以下為企事業單位及政府智慧主題展廳素材管理平臺播放軟件的核心功能簡介,綜合多維度技術實現統一管控與智能展示: 一、內容資產管理 全格式素材支持? 兼容視頻、3D模型、圖文、AR/VR場景等多媒體格式,支持批量導入與云端存儲。 智能分類與…

Python+FastAPI的一些語法與問題解決

Q1:result await dbsession.execute(text(sql_context),params) 如何把result轉成key,value的字典列表 A1: 使用SQLAlchemy的mappings()方法獲取字典形式的結果集: result await db_session.execute(text(sql_context), params) dict_list [dict(row) for row…

Reactor并發無關性

Reactor,像 RxJava 一樣,可以被認為是 并發無關(concurrency-agnostic) 的。這意味著它不強制要求任何特定的并發模型,而是將選擇權交給開發者。換句話說,Reactor 不會強制你使用多線程或異步編程&#xff…

#華為昇騰#華為計算#昇騰開發者計劃2025#

#華為昇騰#華為計算#昇騰開發者計劃2025# 通過學習Ascend C算子開發的初級教程&#xff0c;通過課程講解及樣例實操&#xff0c;幫助我學習使用Ascend C開發自己的算子。收獲很大。 <新版開發者計劃>的內容鏈接&#xff1a;https://www.hiascend.com/developer-program_2…

FLOPS、FLOP/s、TOPS概念

在計算性能和硬件指標中&#xff0c;FLOPS、FLOP/s、TOPS 是常見的術語&#xff0c;但它們有明確的區別和應用場景。以下是詳細解析&#xff1a; 1. FLOPS&#xff08;Floating Point Operations per Second&#xff09; 定義&#xff1a; 每秒浮點運算次數&#xff08;Floati…

Windows所有系統自帶.NET Framework版本win7,win10,win11預裝.NET版本

Windows系統支持“.NET版本”匯總 本文詳細列出了Windows從NT4.0到Windows11各版本自帶的.NETFramework版本及對應最高兼容的.NETFramework版本&#xff0c;便于了解不同Windows系統之間的.NETFramework更新歷史。 以下匯總了Windows每個版本自帶的“.NET版本”&#xff0c;與…

Windows 下使用 nvm 管理 Node.js 多版本 —— 完整指南

Node.js 版本更新頻繁&#xff0c;不同項目可能依賴不同的版本&#xff0c;手動切換極為麻煩。nvm-windows 是專為 Windows 用戶開發的 Node.js 多版本管理工具&#xff0c;可以輕松地安裝、切換、卸載 Node.js 版本。 本篇將從下載到實際使用&#xff0c;手把手帶你玩轉 nvm-…

vue使用Element Plus UI框架

您好&#xff0c;艦長&#xff01;非常棒的選擇。功能是應用的骨架&#xff0c;而美觀的 UI 則是應用的靈魂和血肉。是時候為我們的飛船進行一次全面的“外觀升級”和“內飾裝修”了。 我們將集成一個在業界非常流行、功能強大的 Vue 3 組件庫——Element Plus。它將幫助我們快…

【ubuntu24.04】忘了自己把開機samba掛載的腳本放哪里了

從兩個方面來定位這幾個 Samba 掛載點&#xff1a; 一、查看當前已經掛載的 CIFS/SMB 文件系統 使用 mount mount | grep -i cifs或者 mount | grep -E (smb|cifs)這會列出所有當前活躍的 CIFS/SMB 掛載&#xff0c;比如&#xff1a; //192.168.1.100/share on /mnt/data type …

在 Windows 上使用 Docker Desktop 快速搭建本地 Kubernetes 環境(附詳細部署教程)

言簡意賅的講解Docker Desktop for Windows搭建Kubernetes解決的痛點 目標讀者&#xff1a; 對 Docker Desktop 有一定了解&#xff0c;能在 Windows 上成功安裝和使用 Docker Desktop。想要在本地快速搭建一套 Kubernetes 環境進行測試或學習的開發者。 一、準備工作 安裝 Doc…

dockercompose快速安裝ELK

第一步&#xff1a;環境準備 請確保您的機器上已經安裝了 Docker 和 Docker Compose。 第二步&#xff1a;創建項目目錄和配置文件 為了讓 Docker Compose 能夠正確地構建和管理容器&#xff0c;我們需要創建一個特定的目錄結構。 創建一個主目錄&#xff0c;例如 elk-stack。…