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在用的排序模型)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jspssm_maven项目——KTV点歌系统

目录 背景 技术简介 系统简介 界面预览 背景 随着互联网的广泛渗透和进步,基于网络技术的KTV点歌系统迅速壮大,其发展始终围绕用户的实际需求展开。通过深入洞察用户的需求,开发出高度定制的管理平台,利用网络的便捷性对系统…

8.软件工程

整个章节偏向于记忆、背诵; 主要议题: 软件体系:3层; UML重点,重点记3要素中的关系、图; 1.软件体系结构 分层 优点:利于软件的重复利用; 缺点:以什么方式分层&#…

使用Urllib库创建第一个爬虫程序

Urllib 是 Python 的标准库,它提供了一系列用于处理 URL 的函数和类,包括发送 HTTP 请求、处理 HTTP 响应、解析 URL 等功能。可以使用 urllib 来编写简单的网络爬虫。 request:它是最基本的HTTP请求模块,可以用来模拟发送请求。只…

【JavaScript 漫游】【044】Web Worker

文章简介 本篇文章为【JavaScript 漫游】专栏的第 044 篇文章,对浏览器模型的 Web Worker 相关知识点进行了总结。 概述 JavaScript 语言采用的是单线程模型,也就是说,所有任务只能在一个线程上完成,一次只能做一件事。前面的任…

MySQL 8.0.35 企业版开启审计audit log功能

一、系统环境和要求 在MySQL中,开启日志审计可以记录数据库的操作日志,包括修改、删除、插入等操作。这对于追踪和分析数据库的使用情况以及排查潜在的安全问题非常有帮助。本文将详细介绍如何开启MySQL的日志审计功能。 操作系统:Ubuntu 20…

人工智能 框架 paddlepaddle 飞桨 使用指南 使用例子 线性回归模型demo 1

安装过程&使用指南&线性回归模型 使用例子 本来预想 是安装 到 conda 版本的 11.7的 但是电脑没有gpu 所以 安装过程稍有变动,下面简单讲下 conda create -n paddle_env117 python=3.9 由于想安装11.7版本 py 是3.9 所以虚拟环境名称也是 paddle_env117 activa…

6 Spring-AOP

文章目录 1,AOP简介1.1 什么是AOP?1.2 AOP作用1.3 AOP核心概念 2,AOP入门案例2.1 需求分析2.2 思路分析2.3 环境准备2.4 AOP实现步骤步骤1:添加依赖步骤2:定义接口与实现类步骤3:定义通知类和通知步骤4:定义切入点步骤5:制作切面步骤6:将通知类配给容器…

常用设计模式介绍

前言 简说设计模式。 文章目录 前言一、设计模式的要素1、设计模式解决的问题2、设计模式分类1)创建型设计模式2)结构型设计模式3)行为型设计模式 二、详细介绍1、创建型设计模式1)工厂方法模式2)抽象工厂模式3&#x…

基于FPGA的光纤通信系统设计

文章目录 光纤通信系统的组成发送端FPGA端口定义状态机设计代码示例 接收端功能模块端口定义状态机设计 光纤通信系统的组成 发送端FPGA 发送控制逻辑、数据编码、校验码生成、缓存控制、时钟控制 端口定义 状态机设计 代码示例 接收端功能模块 接收端控制逻辑、数据解码、…

谈谈伦敦银投资的价值吗?

白银作为贵金属家族中的一员,当然有着其自身的经济价值和投资价值,尤其是在通货膨胀或货币贬值的时候,伦敦银的价格往往会上涨,投资者参与其中就能起到保值增值的作用。 此外,白银还是一种很好的避险资产,…

港大新工作 HiGPT:一个模型,任意关系类型 !

论文标题: HiGPT: Heterogeneous Graph Language Model 论文链接: https://arxiv.org/abs/2402.16024 代码链接: https://github.com/HKUDS/HiGPT 项目网站: https://higpt-hku.github.io/ 1. 导读 异质图在各种领域&#xf…

Linux系统下安装部署Linux管理面板1panel

目录 一 1panel介绍 1、1Panel简介 2、1Panel特点 二、本地环境规划 1、本此实验目的 2、本地环境部署 三、部署1Panel(在线安装) 1.创建安装目录 2.一键部署1Panel 3.检查1Panel服务运行状态 4.检查1Panel监听端口 四、关闭防火墙和selinux…

zabbix进阶

知识点补充 zabbix server在主机上运行服务,端口号为10050,zabbix agent 在被监控机器上运行(源码下载)主要完成对cpu,磁盘的信息采集,端口号为10051 zabbix 软件结构组成: 1.Zabbix Web GUI …

leetcode 107.二叉树的层序遍历II

题目 思路 正常层序遍历输出: [[3],[9,20],[15,7]] 这道题要求的输出:[[15,7],[9,20],[3]] 可以观察到,只要我们把原来的结果reverse一下就行了。 代码 //leetcode submit region begin(Prohibit modification and deletion)import java…

HWY-41B无源静态电压继电器 整定范围19-240VAC导轨安装JOSEF约瑟

HWY-31A无辅源静态电压继电器 HWY-32A无辅源静态电压继电器 HWY-33A无辅源静态电压继电器 HWY-34A无辅源静态电压继电器 HWY-35A无辅源静态电压继电器 HWY-31B无辅源静态电压继电器 HWY-32B无辅源静态电压继电器 HWY-33B无辅源静态电压继电器 HWY-34B无辅源静态电压继电器 HW…

激活函数选得好,模型性能差不了!17个方法,让网络训练更高效

激活函数是神经网络中不可或缺的组成部分,它们通过引入非线性特性,增强了网络的表达能力和学习能力。常用的激活函数主要可以分为两大类:饱和激活函数、非饱和激活函数。其中sigmoid和tanh是饱和激活函数,而ReLU及其变体则是非饱和…

程序员35岁会失业吗?【来自主流AI的回答】

程序员35岁会失业吗? 35岁被认为是程序员职业生涯的分水岭,许多程序员开始担忧自己的职业发展是否会受到年龄的限制。有人担心随着年龄的增长,技术更新换代的速度会使得资深程序员难以跟上;而另一些人则认为,丰富的经…

图像变换(python)

前言 这个Python没学过,写的是真的不方便,有很多问题还没解决,暂时不想写了,感兴趣的同学可以完善一下。设计的思路就是摆几个控件然后将对应的函数实现,这个Python的坐标放置以及控件的大小我没弄懂,算出…

如何统计代码量

工具: cloc 下载地址: Releases AlDanial/cloc GitHub 使用方法:

武汉星起航:跨境电商行业的领军者,互帮互助共创佳绩

武汉星起航电子商务有限公司,作为跨境电商行业的领军者,以其出色的业绩和卓越的团队实力,在业内赢得了广泛的赞誉。公司自运营团队在亚马逊平台上成功开设了多家店铺,凭借着深耕跨境电商行业多年所积累的经验,取得了令…