简介

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。…