【DSIN】深度 Session 兴趣网络

一、提出动机

这个模型依然是研究如何更好地从用户的历史行为中捕捉到用户的动态兴趣演化规律。

1.1、序列本身的特点:

其实用户点击序列有他自己本身的特点:用户过去可能有很多历史点击行为,按照用户的点击时间排好序,比如[item3,item45,item69,item21,...],大部分情况下用户的兴趣是非常广泛且多变的,那么这一大串序列的商品中,往往出现的一个规律就是再比较短的时间间隔内的商品往往会很相似,时间间隔长了之后,商品之间就会出现很大的差别,这个是很容易理解的,一个用户再半个小时之内的浏览点击的几个商品的相似度和一个用户上午点击和晚上点击的商品的相似度很可能是不一样的。

1.2、DIEN及之前模型的缺点

但DIEN就是只关注了如何去改进网络,而忽略了用户历史行为序列本身的这种特点,直接把一大串行为序列放入GRU让它自己去学,如果一大串序列一块让GRU学习的话,往往用户的行为快速改变和突然终止的序列会有很多噪声点,不利于模型的学习。

1.3、DSIN简介

所以,DSIN就是从序列本身的特点出发,把一个用户的行为序列分成了多个会话,所谓会话,其实就是按照时间间隔把序列分段,每一段的商品列表就是一个会话,那这时候,会话里面每个商品之间的相似度就比较大了,而会话与会话之间商品相似度就可能比较小。

图片下方的数字表示单击当前项目的时间与单击第一个项目的时间之间的时间间隔(以秒为单位),我们将她的行为序列分为3个会话。每次会话的时间间隔超过30分钟时,会话将按照这一原则进行划分。用户在会话1中主要浏览裤子,在会话2中主要浏览戒指,并且在会话3中主要浏览外套。

DSIN通过利用用户的多个历史会话来对CTR预测任务中的用户顺序行为进行建模。

  • 首先,分段是必须的,也就是用户行为序列输入到模型之前,要按照固定的时间间隔(比如30分钟)给他分开段,每一段里面的商品序列称为一个会话session,这个叫做会话划分层
  • 然后,就是学习商品时间的依赖关系或者序列关系,由于上面把一个整的行为序列划分成了多段,那么再这里就是每一段的商品时间的序列关系要进行学习,当然我们说可以用GRU,不过这里作者用了多头的注意力机制,这个东西是在多个角度研究一个会话里面各个商品的关联关系,进而提取用户对每个会话的兴趣。相比GRU来讲,没有啥梯度消失,并且可以并行计算,比GRU更加强大。这个叫做会话兴趣提取层

  • 使用双向的LSTM研究会话与会话的关系其实就是再学习用户兴趣的变化规律,不仅看从现在到未来的兴趣演化,还能学习未来到现在的变化规律,这个叫做会话交互层。

  • 由于不同的会话兴趣对目标项的影响不同,最后我们设计了本地激活单元来聚合它们以形成最终的用户兴趣表示即会话兴趣局部激活层

二、DSIN模型架构

在推荐系统中,用户的行为序列由多个历史会话组成。

用户在不同的会话中表现出不同的兴趣。此外,用户的会话兴趣顺序地彼此相关。

DSIN的目的是提取用户在每个会话中的会话兴趣,并捕捉会话兴趣的顺序关系。

  • 2.1、模型概述

如图所示,DSIN在MLP之前由两部分组成。

  • 一种是从用户特征User Profile和项目特征Item Profile转换的嵌入向量。
  • 另一个模型对用户行为进行建模,自下而上分为四层:(1)会话划分层,将用户行为序列划分为会话;(2)会话兴趣提取层,提取用户的会话兴趣;(3)会话兴趣交互层,捕捉会话兴趣之间的顺序关系;(4)会话兴趣激活层将本地激活单元应用于用户对目标项的会话兴趣。

最后将会话兴趣激活层的输出以及用户模型和项目模型的嵌入向量送入MLP进行最终预测。

2.2、会话划分层

为了更精确地提取用户的会话兴趣,我们将用户的行为序列S划分为会话Q,其中第k个会话Qk = [b1;...;bi;.;bT] ∈ RT×dmodel,T是我们在会话中保持的行为的数量,bi是用户在会话中的第i个行为。用户会话的分割存在于时间间隔超过30分钟的相邻行为之间。

在DSIN中,我们将用户的行为序列划分为多个会话,原因有两个:(i)用户的行为在每个会话中通常是同质的;(ii)用户的会话兴趣遵循顺序模式,更适合于序列建模。

2.3、会话兴趣提取层

用户在Session内的行为是高度相关的,但在每个会话中可能会存在一些用户的随意行为,这些随意行为可能是噪声,如果直接进行Sum/Avg Pooling就会被噪声行为带偏。为了捕捉同一会话中行为之间的内在关系并减少那些不相关行为的影响,

DSIN使用Multi-head Self-attention对Session内的序列进行建模,生成Session的兴趣表达 I_k

2.3.1、Bias Encoding

为了利用序列的顺序关系,自注意机制对输入embedding进行位置编码。

此外,还需要捕捉会话的顺序关系以及不同表示子空间中存在的偏差。

因此,我们在位置编码的基础上提出了偏置编码BE ∈ RK×T×dmodel,其中BE中的每个元素定义如下:

其中wK ∈ RK是会话的偏置向量,k是会话的索引,wT ∈ RT是会话中位置的偏置向量,t是会话中行为的索引,wC ∈ Rdmodel是行为embedding中单元位置的偏置向量,c是行为embedding中单元的索引。

添加偏置编码后,用户行为会话Q更新如下:

2.3.2、Multi-head Self-attention

在推荐系统中,用户的点击行为受到各种因素(例如颜色、样式和价格)的影响。

多头自我注意可以捕捉不同表征子空间中的关系。

令Qk = [Qk 1;...;Qkh],其中Qkh ∈ RT×dh是Qk的第h个头,H是头的数目,dh = dmodel/h。

其中WQ、WK、WQ是线性矩阵。然后将不同头部的向量连接起来,然后送入前馈网络:

其中FFN(·)是前馈网络,WO是线性矩阵。我们还依次进行了残差连接和层归一化。用户的第k个会话兴趣Ik计算如下:

其中Avg(·)是平均池化。注意,权重在不同会话的自注意机制中是共享的。

2.4、会话兴趣交互层

用户的会话兴趣与上下文兴趣之间存在顺序关系,为了丰富会话兴趣的表示,使用Bi-LSTM捕捉session之间的顺序关系。这样历史每个Session的兴趣表达,都包含了下上文Session信息。

LSTM内存单元实现如下:

其中σ(·)是逻辑函数,i、f、o和c是输入门、遗忘门、输出门和与It具有相同大小的单元向量。双向意味着存在前向和后向RNN,隐藏状态H计算如下:

其中hft是前向LSTM的隐藏状态,而hbt是后向LSTM的隐藏状态。

2.5、会话兴趣激活层

与目标项目相关度越高的用户会话兴趣对用户是否点击目标项目的影响越大。用户会话兴趣的权重需要重新分配。

三、实验评价指标

AUC(Area Under ROC Curve)是随机选取的正样本排序高于负样本的概率,反映了模型的排序能力。其定义如下:

其中D+是所有正例的集合,D−是所有负例的集合,f(·)是模型对样本x的预测结果,I(·)是指标函数。

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

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

相关文章

【Linux】yum与vim

文章目录 软件包管理器:yumLinux安装和卸载软件包Linux中的编辑器:vimvim下的底行模式vim下的正常模式vim下的替换模式vim下的视图模式vim下的多线程 软件包管理器:yum yum其实就是一个软件,也可以叫商店 和你手机上的应用商店或app store一…

【FreeRTOS 快速入门】-- 1、STM32工程移植FreeRTOS

目录 一、新建STM32工程 为了示范完整的移植过程,我们从0开始,新建一个标准的STM32点灯工程。 (本篇以CubeMX作示范,CubeIDE操作近同,可作对比参考) 1、新建工程 选择 芯片型号 新建工程 2、搜索芯片型号…

计算方法实验9:Romberg积分求解速度、位移

任务 输出质点的轨迹 ( x ( t ) , y ( t ) ) , t ∈ { 0.1 , 0.2 , 0.3 , . . . , 10 } (x(t), y(t)), t\in \{0.1, 0.2, 0.3, ..., 10\} (x(t),y(t)),t∈{0.1,0.2,0.3,...,10},并在二维平面中画出该轨迹.请比较M分别取4, 8, 12, 16, 20 时,Romberg积分达…

MTK平台ATE tool

一、校准测试环境搭建 ① 仪器端一个端口直接连接功分器。 ② 功分器输出端外接3dbm的衰减器。 ③功分器空出来的端口需要外接50 Ω的负载。 ④功分器与手机端口的连接没有顺序之分。 二、ATE设置介绍 ATE所支持的无线通信系统 — GSM — WCDMA — TDSCDMA — LTE — WI…

Redis持久化策略——Java全栈知识(17)

Redis持久化 1、Redis 持久化的三种方式 1、RDB: 以快照的方式将此刻 Redis 中的数据以二进制的文件形式保存在磁盘中。 RDB 的优点是:快照文件小、恢复速度快,适合做备份和灾难恢复。 RDB 的缺点是:定期更新可能会丢数据&#…

2024年软件测试最全Jmeter--【作为测试你必须要知道的】基础名词与环境搭建,2024年最新年末阿里百度等大厂技术面试题汇总

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。 需要这份系统化的资料的朋友,可以戳这里获取 一个人可以走的很快,但一群人才能走的更…

使用videosapi开发微信聊天记录防撤回

接口地址: http://接口地址/post/api/ 接收到消息后,如若进行撤回比较繁琐。 记录消息即可。 {"TypeName": "AddMsg", 回调消息类型"Appid": "wx_*_**_***", 设备appid"Wxid": "wxid_****…

从零学算法42

42.接雨水 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例 1: 输入:height [0,1,0,2,1,0,1,3,2,1,2,1] 输出:6 解释:上面是由数组 [0,1,0,2,1,0,1,3…

短信公司_供应群发短信公司

短信公司——供应群发短信公司 短信公司作为一种为企业提供群发短信服务的服务商,正逐渐受到市场的青睐。供应群发短信公司作为其中的一种类型,为各行各业的企业提供高效、便捷的短信推广渠道。本文将介绍短信公司的作用以及供应群发短信公司的特点和优势…

基于springboot+mybatis+vue的项目实战之增删改查CRUD

目录结构 PeotController.java package com.example.controller;import com.example.pojo.Peot; import com.example.pojo.Result; import com.example.service.PeotService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web…

10大排序方法,其中这里只介绍前7种(第4种C语言,其它C++语言)

排序方法有十种,分别是:一、冒泡排序;二、选择排序;三、插入排序;四、希尔排序;五、归并排序;六、快速排序;七、堆排序;八、计数排序;九、桶排序;…

Lora训练笔记1——快速上手

准备工具 AKI大佬的整合包,一键解压即可。 度盘链接 提取码:p8uy 图片预处理 图片预处理:以一定规则裁剪原始的训练素材图片,并进行打标处理。 新建两个文件夹 input:存放原始图片的文件夹 preprocess-output:…

CTF-Web Exploitation(持续更新)

CTF-Web Exploitation 1. GET aHEAD Find the flag being held on this server to get ahead of the competition Hints Check out tools like Burpsuite to modify your requests and look at the responses 根据提示使用不同的请求方式得到response可能会得到结果 使用…

JavaScript初了解

JS的三种书写位置:行内,内嵌,外部 JS的注释的书写:单行注释:// ctrl/ 多行注释:/**/ ShiftAltA JavaScript输入输出语句

财政部、交通运输部:推动北斗导航等新技术与交通基础设施融合

财政部、交通运输部:推动北斗导航等新技术与交通基础设施深度融合 近日,为深入贯彻落实中共中央、国务院关于加快建设交通强国、数字中国等决策部署,推进公路水路交通基础设施数字转型、智能升级、融合创新,加快发展新质生产力&a…

FebHost:什么是域名DNS服务器?

域名服务器是一种将域名转换为IP地址的计算机。在域名系统(DNS)中,它起着至关重要的作用。用户只需在浏览器的地址栏输入域名,而无需手动输入网站服务器的IP地址,就可以访问网站。 每个已注册的域名都必须在其DNS记录…

Java基于B/S医院绩效考核管理平台系统源码java+springboot+MySQL医院智慧绩效管理系统源码

Java基于B/S医院绩效考核管理平台系统源码javaspringbootMySQL医院智慧绩效管理系统源码 医院绩效考核系统是一个关键的管理工具,旨在评估和优化医院内部各部门、科室和员工的绩效。一个有效的绩效考核系统不仅能帮助医院实现其战略目标,还能提升医疗服…

HFSS学习-day2-T形波导的优化设计

入门实例–T形波导的内场分析和优化设计 HFSS--此实例优化设计 优化设计要求1. 定义输出变量Power31、Power21、和Power11,表示Port3、Port2、Port1的输出功率2.参数扫描分析添加扫描变量和输出变量进行一个小设置添加输出变量进行扫描分析 3. 优化设计&#xff0c…

第十篇:数字堡垒:操作系统安全深度解析与实战指南

数字堡垒:操作系统安全深度解析与实战指南 1 *引言 1.1 数字世界的守护者 在遥远的比特海中,有一座名为“操作系统”的数字堡垒,它守护着我们的数据宝藏,确保每一次计算的航行都能安全抵达彼岸。然而,这片海域并非风…

Javaweb第五次作业

poet数据库sql语言 create table poet(id int unsigned primary key auto_increment comment ID,name varchar(10) not null comment 姓名,gender tinyint unsigned not null comment 性别, 说明: 1 男, 2 女,dynasty varchar(10) not null comment朝代,title varchar(20) not…
最新文章