CTR之Session行为序列建模用户兴趣:DSIN

在前面的文章中,DIN模型 在用户行为序列建模中引入注意力机制来强调加权与target item相关的行为,以实现动态的兴趣表征;而DIEN模型 则在DIN的基础上加入时间性信息,使用注意力机制的GRU来挖掘用户兴趣的演变。

而今天的这篇文章也是继续这个主题,再介绍一个引入将行为序列切分session来对用户兴趣建模的模型:DSIN(Deep Session Interest Network)

概要

论文:Deep Session Interest Network for Click-Through Rate Prediction

链接:https://arxiv.org/pdf/1905.06482.pdf

这篇论文认为许多研究都忽视了序列的内在结构:序列是由sessions组成,sessions是按照发生时间切分的用户行为

并且观察到用户的行为在每个session里几乎都是同类(homogeneous)的,而在不同session之间又是混杂(heterogeneous)的,即用户在某一时间内的行为会集中在某一个“类别/主题”上,而在另一个时间段内则集中在另外一个“类别/主题”上

如下图所示,是一个从真实场景下收集到的数据,下面的数字代表了当前点击商品与第一次点击商品的时间gap(单位为秒),session按照是否超过30min进行切分。

基础观察到这种规律,论文提出了DSIN(Deep Session Interest Network)来通过利用多个历史sessions来建模用户的行为序列。DSIN包含三个关键的组件:

  1. 将用户的行为序列切分多个sessions,然后使用带着偏置编码(bias encoding)的自注意力网络来建模多个sessions。自注意力可以捕获session之间的内在交互/相关关系,然后提取每个session的用户兴趣,因为这些不同的sessions可能会彼此相互关联,遵循一种序列化的模式;
  2. 接着,使用双向LSTM(Bi-LSTM) 来捕获这些不同的历史session兴趣的交互和演变;
  3. 最后,考虑不同的session兴趣对target item有着不一样的影响,设计了一个**局部激活单元(local activation uint)**去聚合它们,去建模行为序列的最终表征

这里的自注意力类似于transformer,将每个session类比token,可以前往这篇文章BERT模型系列大全解读回顾下transformer和自注意力。

基础模型

在前面的两篇相关文章 CTR之行为序列建模用户兴趣:DIN和CTR之行为序列建模用户兴趣:DIEN中都详细地介绍了Base Model,其主要包括四部分:特征表征(Feature Representation)、Embedding、Multiple Layer Perceptron (MLP)和损失函数

具体的内容在这里就不再赘述了,但记住几个后面涉及的符号:

  • 用户行为embeddings: S = [ b 1 ; . . . ; b i ; . . . ; b N ] ∈ R N × d m o d e l S=[b_1;...;b_i;...;b_N] \in \mathbb{R}^{N \times d_{model}} S=[b1;...;bi;...;bN]RN×dmodel
  • target item属性(Item Profile)表征embeddings: X I ∈ R N i × d m o d e l X^I \in \mathbb{R}^{N_i \times d_{model}} XIRNi×dmodel

#DSIN结构

如上图所示,DSIN在底层的特征表征和Embedding的后面,MLP的前面,即中间部分加入了四个特殊的网络层:

  1. session划分层,将行为序列分割成不同的sessions;
  2. session兴趣提取层,提取用户的session兴趣;
  3. session兴趣交互层,捕获session兴趣之间的序列关系;
  4. session兴趣激活层,考虑(w.r.t) target item,对用户session兴趣应用局部激活单元。这与DIN中attention和DIEN中的GRU with attention一样的思想,来激活与target item更为相关的行为序列或兴趣序列。

session划分层

为了提取用户更为准确的session兴趣,论文将用户行为序列S划分成sessions集合Q,第k个session表示为:

Q k = [ b 1 ; . . . ; b i ; . . . ; b T ] ∈ R T × d m o d e l Q_k=[b_1;...;b_i;...;b_T] \in \mathbb{R}^{T \times d_{model}} Qk=[b1;...;bi;...;bT]RT×dmodel

  • T是session保留的行为数量, b i b_i bi是session里的第i个行为。
  • 用户sessions的分割是以时间间隔超过30min的相邻行为。即当两个相邻的行为时间超过30min的话,会以它们为界限,前面一个行为保留在当前session,后面一个行为会开启一个新的session。该做法出自《Framewise phoneme classification with bidirectional LSTM networks》的做法。

session兴趣提取层

在同一个session里的行为之间是强相关的。另外,在一个session里,用户那些随意的行为会让session兴趣偏离它原本的表现。

为了捕获同一个session的行为之间的内在关系,降低那些不相关的行为的影响,论文使用了多头自注意力,并且进行了一些优化工作。

偏置编码

为了利用序列的顺序相关信息,自注意力机制给输入embeddings加入了位置编码。

而sessions的顺序相关信息和不同表征子空间的偏置同样需要被捕获,论文在位置编码的bias加入了bias encoding BE ∈ R K × T × d m o d e l \in \mathbb{R}^{K \times T \times d_{model}} RK×T×dmodel,具体如下式:

  • w K ∈ R K w^K \in \mathbb{R}^K wKRKsession的偏置向量,k是session的索引
  • w T ∈ R T w^T \in \mathbb{R}^T wTRT 是session中的位置的偏置向量,t是行为在session里的索引
  • w C ∈ R d m o d e l w^C \in \mathbb{R}^{d_{model}} wCRdmodel行为embedding中的单位(unit)位置的偏置向量,c是unit在embedding中的索引

加入偏置编码之后,用户的行为sessions Q 则更新为:

Q = Q + B E Q=Q+BE Q=Q+BE

多头自注意力

在推荐系统中,用户的点击行为是被许多多样的因素影响的,比如颜色、风格和价格等。多头自注意力可以捕获不同表征子空间的相关性。论文中使用的多头自注意力跟标准的Transformer其实是一样的结构。

Q k = [ Q k 1 ; . . . ; Q k h ; . . . ; Q k H ] Q_k=[Q_{k1};...;Q_{kh};...;Q_{kH}] Qk=[Qk1;...;Qkh;...;QkH],其中 Q k h ∈ R T × d h Q_{kh} \in \mathbb{R}^{T \times d_h} QkhRT×dh Q k Q_k Qk的第h个head,H是heads的数量, d h = 1 h d m o d e l d_h=\frac{1}{h}d_{model} dh=h1dmodel

那么,第h个head的计算如下式:

其中, W Q , W K , W V W^Q,W^K,W^V WQ,WK,WV 是线性矩阵。

接着,所有heads的向量进行拼接,喂给前馈网络层(feed-forward network,FFN):

其中, W O W^O WO是线性矩阵,并且同样保留残差连接和layer normalization

那么,用户的第k个session兴趣 I k I_k Ik 如下式:

I k = A v g ( I k Q ) I_k=Avg(I_k^Q) Ik=Avg(IkQ)

需要注意的是,自注意力的参数在不同的sessions中是共享的

session兴趣交互层

用户的session兴趣与上下文的其他sessions是有着顺序相关性的,对动态的变化进行建模可以丰富session兴趣之间的相关性信息

而LSTM则是善于捕获这种顺序相关性,能够建模session兴趣之间的交互。

其中, σ ( ⋅ ) \sigma(\cdot) σ()是sigmoid函数,ifo,和 c 分别是输入门控,遗忘门控,输出门控和cell向量,与 I t I_t It有着相同的size。

双向则意味着存在一个前向的RNN和后向的RNN,那么,其隐状态 H 计算如下式:

H t = h f t → ⊕ h b t ← H_t=\overrightarrow{h_{ft}} \oplus \overleftarrow{h_{bt}} Ht=hft hbt

其中, h f t → \overrightarrow{h_{ft}} hft 是前向LSTM的隐状态, h b t ← \overleftarrow{h_{bt}} hbt 是后向LSTM的隐状态。

session兴趣激活层

与target item更相关的用户的session兴趣会对用户是否点击起着更为重要的影响。那么,用户session兴趣对于target item的权重计算问题便随之而来。

注意力机制 使用source和target的软对齐已经被证明是一种有效的权重分配方法,论文也使用该方法,考虑target item,session兴趣的自适应表征计算如下式:

同理,融合了上下文信息的session兴趣表征计算如下式:

最后,用户属性(User Profile)和item属性(Item profile)的embedding向量,与 U I , U H U^I,U^H UI,UH进行拼接和压平(flatten),输入到最后的MLP层。

实验结果

基线对比

AUC公式

总结

  1. 论文认为在推荐系统中,用户的行为序列是由多个历史sessions构成,在不同的session中展现了不同的兴趣;
  2. 然后,使用多头注意力来捕获session行为的内存相关性,并且提取每一个session兴趣
  3. 另外,用户的session兴趣是序列化的,并且彼此相关联,因此用适合序列结构的双向LSTM来捕获session之间的交互和session兴趣的变化;
  4. 最后再使用注意力机制来激活那些与target item更为相关的session兴趣;
  5. 不过对于某些场景,比如新闻推荐类似的信息流场景,用户大部分并不是主动行为,那么点击的序列可能就不具备很强的连续性了,因此不满足一个session内的点击都是同类(homogeneous)的,这种场景下DSIN就并不一定适用了。

推荐系统CTR建模系列文章:

CTR之行为序列建模用户兴趣:DIEN

CTR之行为序列建模用户兴趣:DIN

CTR特征重要性建模:FiBiNet&FiBiNet++模型

CTR预估之FMs系列模型:FM/FFM/FwFM/FEFM

CTR预估之DNN系列模型:FNN/PNN/DeepCrossing

CTR预估之Wide&Deep系列模型:DeepFM/DCN

CTR预估之Wide&Deep系列(下):NFM/xDeepFM

CTR特征建模:ContextNet & MaskNet(Twitter在用的排序模型)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/492971.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

labelme自动标注工具的安装和python代码修改

labelme嵌入SAM和EfficientSAM自动标注模型 目录: 1.labelme windows环境下安装python版本labelme 2.labelme.exe直接安装 3.labelme生成exe 4.labelme python代码修改 labelme自动标注使用方法 编辑/Create AI-Polygon 自动分割,直接生成分割图,标注为point,完成标注后…

如何用AI写作工具输出高质量内容?

随着人工智能技术的不断发展,AI写作工具正逐渐成为现代写作者的得力助手。它们能够通过智能算法分析大量的数据,生成高质量的文章内容,极大地提高了写作效率。但是,如何正确地使用这些AI写作工具输出高质量的内容,仍然…

Windows Server服务器FTP服务的配置与管理

前不久我们遇到一个Hostease的客户进行服务器迁移,他需要在Windows Server 2019上设置FTP(File Transfer Protocol)服务以帮助他在服务器和客户端之间传输文件。本教程将指导您逐步完成设置FTP服务的过程,并附上详细的图文说明&am…

AI智能分析网关V4使用GB28181注册到EasyCVR平台的具体步骤

旭帆科技的智能分析网关V4内含近40种智能分析算法,包括人体、车辆、消防、环境卫生、异常检测等等,在消防安全、生产安全、行为检测等场景应用十分广泛。如常见的智慧工地、智慧校园、智慧景区、智慧城管等等,还支持抓拍、记录、告警、语音对…

文献速递:基于SAM的医学图像分割--SAMUS:适应临床友好型和泛化的超声图像分割的Segment Anything模型

Title 题目 SAMUS: Adapting Segment Anything Model for Clinically-Friendly and Generalizable Ultrasound Image Segmentation SAMUS:适应临床友好型和泛化的超声图像分割的Segment Anything模型 01 文献速递介绍 医学图像分割是一项关键技术,用…

嵌入式开发——基础电路知识

1. 电路知识 1.1. 驱动能力 IC是数字逻辑芯片,其输出的是逻辑电平。逻辑电平0表示输出电压低于阈值电压,逻辑1表示输出电压高于阈值电压。负载则是被驱动的电路或元件,负载大小则指负载的电阻大小。 驱动能力主要表现在几个方面&#xff1…

jenkins权限分配

1.安装权限插件 Role-Based Strategy 2.创建用户 3.修改全局安全配置中的授权策略为Role-Based Strategy 4.进入Manage and Assign Roles创建Global roles和Item roles 4.进入Assign Roles给用户分配role

JavaScript混淆工具选择与使用指南

摘要 本文介绍了什么是js混淆工具,以及为什么需要使用js混淆工具。详细解释了js混淆工具的实现原理和作用,探讨了如何选择合适的js混淆工具,列举了几款常用的js混淆工具,并对它们的特点和适用场景进行了分析。最后总结了js混淆工…

Springboot:Actuator监控

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 一、Actuator介绍 二、集成步骤 三、重要端点介绍 1、/actuator 2、/actuator/env 3、/actuator/heapdump 4、/actuator/metrics 5、/actuator/shutdown 6、/l…

jsp指令和动作

1.page指令:描述页面信息 pageENcoding:软件编码 contentType:浏览器编码 2.include指令:将多个网页合成一个网页,静态包含网页 问题:1.在网页源代码中,会形成错误的多遍代码,将主页面代码和…

Qt Design Studio各个组件怎么用?【长期更新】

写在前面:本文长期更新,建议点赞/收藏/关注~ 在Qt Design Studio中,组件类别有: 每一种,都有其特定的用途和适用场景: 1.My Components 使用时机:当你需要重用自定义的设计元素或者特殊功能…

Capture One 23 下载地址及安装教程

Capture One 23 安装教程 Capture One是一款专业的图像编辑和管理软件,由丹麦公司Phase One开发。它广泛应用于专业摄影师和摄影爱好者之间的图像后期处理和管理。 Capture One提供了强大的图像编辑工具和功能,用于调整曝光、对比度、色彩、白平衡、…

Java_17 两数之和

两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任…

VRAY渲染设置大神参数(建议收藏)

3dmax效果图云渲染平台——渲染100以3ds Max 2024、VR 6.2、CR 11.2等最新版本为基础,兼容fp、acescg等常用插件,同时LUT滤镜等参数也得到了同步支持。注册填邀请码【7788】可领30元礼包和免费渲染券哦~ 公用:输出大小:一般小图50…

无人不识又无人不迷糊的this

关于this this关键字是JavaScript中最复杂的机制之一。它是一个很特别的关键字,被自动定义在所有函数的作用域中。 为什么要用this 随着开发者的使用模式越来越复杂,显式传递上下文对象会让代码变得越来越混乱,使用this则不会这样。 比如下面…

2024年第16届大广赛新命题发布-爱华仕箱包

2024年3月27日,2024年第16届大广赛发布了新的命题,爱华仕箱包命题,自2017年起,爱华仕箱包已连续8年担任全国大学生广告艺术大赛命题单位。 爱华仕现已实现百货、超市、电商、礼品、投标、海外市场6大零售网络的全覆盖&#xff0c…

云原生最佳实践系列 4:基于 MSE 和 SAE 的微服务部署与压测

方案概述 云原生应用平台为基于 Spring Cloud / Dubbo 开发的微服务应用提供了完善的能力支撑,例如服务注册发现、Serverless 无服务部署、实例弹性伸缩、微服务链路跟踪、全链路压力测试等,应用能够方便快捷的部署在阿里云上。 阿里云原生产品完全兼容…

电脑windows 蓝屏【恢复—无法加载操作系统,原因是关键系统驱动程序丢失或包含错误。.......】

当你碰到下图这种情况的电脑蓝屏,先别急着重装系统,小编本来也是想重装系统的,但是太麻烦,重装系统后你还得重装各种软件,太麻烦了!! 这种情况下,你就拿出你的启动U盘,进…

每日一题 --- 删除链表的倒数第 N 个结点[力扣][Go]

删除链表的倒数第 N 个结点 题目:19. 删除链表的倒数第 N 个结点 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例 1: 输入:head [1,2,3,4,5], n 2 输出:[1,2,3,5]示例 2&#x…

我的创作纪念日——1024天从坚持到享受的遥感云计算技术分享之路

机缘 在CSDN进行开始进行创作的缘由是因为我开始进行GEE的学习,通过搜索和记录慢慢实现了自己从初学者到遥感领域云计算的优质创作者,一步步从一个需要别人为自己解决问题的小白逐渐成为了一个为广大科研人员(高校学生和老师)提供…