FinOps有望降低企业50%+的云成本! 了解详情
写点什么

阿里 Deep Session Interest Network 解读

  • 2019-12-02
  • 本文字数:2103 字

    阅读完需:约 7 分钟

阿里Deep Session Interest Network解读

背景和介绍

如何从用户历史行为数据中建模他们动态、不断变化的兴趣特征已经成为 CTR 预估的一个关键问题,比如上一篇文章我们介绍了 DIEN 来建模用户的兴趣特征。但是大都数工作还是忽略了用户行为序列内在的结构:用户的行为 sequences 其实是由多个 sessions 组成,其中多个 sessions 是通过用户的点击时间来区分。


如下图,将用户的点击行为按照时间排序,判断每两个行为之间的时间间隔,前后的时间间隔大于 30min,就进行切分。可以看上图,第一个 session 中,用户查看的都是跟裤子相关的物品,第二个 session 中,查看的是戒指相关的物品,第三个则是上衣相关。我们发现在同个 session 中的行为是相近的,而在不同 session 之间差别是很大的。这说明用户在同一个 session 下对购买商品有一个明确的、单独的需求,但是一旦开启一个新的 session,他的兴趣将会发生很大的变化。基于该观察,我们提出了一个 CTR 预估模型,被称作 Deep Session Interest Network(DSIN)。该模型充分利用了用户的多个历史行为 sessions。



创新点:


  • 首先,根据点击时间将用户的行为序列区分成多个 sessions,并使用带有 bias 编码的自注意力模块来抽取用户每个 session 的兴趣特征。

  • 使用双向 LSTM 建模用户在多个 sessions 间兴趣的演变过程。

  • 使用 local activation 单元自适应学习不同 session 的兴趣对 target item 的影响。

模型

1.Base Model


Base Model 是一个 MLP 网络,在 basemodel 中输入特征分为三部分:User Profile, Item Profile 和 User Behavior。User Profile 包括性别、城市、用户 ID 等等,Item Profile 特征包含商家 ID、品牌 ID 等等,User Behavior 历史行为序列特征主要是用户最近点击的物品 ID 序列。当然一些 item 的 side information 也可以加到输入特征中。


这些特征分别通过 Embedding 层转换为对应的 embedding 向量,拼接后输入到多层全连接中,并使用 logloss 指导模型的训练。


  1. DSIN 模型


如下图,在 MLP 之前 DSIN 包含两大部分,其中一部分是 User Profile 和 Item Profile 通过 embedding 层然后 concat 的向量;另一部分 User Behavior 主要是对用户行为序列进行建模,从下到上分为四层:


  • session division layer:主要是将用户的历史行为序列划分为多个 sessions

  • 将用户的历史点击行为序列进行切分,首先将用户的点击行为按照时间排序,判断每两个行为之间的时间间隔,如果前后的时间间隔大于 30min,就进行切分。切分后,我们可以将用户的行为序列 S 转换成会话序列 Q。第 k 个会话 Qk=[b1;b2;…;bi;…;bT], 其中,T 是会话的长度,bi 是会话中第 i 个行为。


session interest extractor layer:抽取用户 session 的兴趣


因为同个 session 中的行为是高度相关的,并且用户在当前 session 下的随意的一些行为会使得 session 的兴趣表示变得不准确。为了建模在同一 session 中多个行为的关系和减轻那些不大相关行为的影响。DSIN 对每个 session 都使用 Transformer 中的 multi-head self-attention 模块来抽取用户 session 的兴趣特征。具体过程是:对用户行为序列中的每个 session 添加一个 Positional Encoding,该模块被称为 Bias Encoding,BE 中的每个元素都分为三块:



其中 BE 是 K * T * d 的。BE(k,t,c)是第 k 个 session 中,第 t 个物品的 embedding 向量的第 c 个位置的偏置项。也就是说,对每个 session 中的每个物品对应的 embedding 的每个位置,都加入了偏置项。加入偏置项后 Q 变为,Q 是用户行为 session 的表示:



在推荐系统中,用户的点击行为会受各种因素影响,比如颜色、款式和价格。Mulit-head self attention 模块可以在不同的表示子空间层面上建模这种关系。这里让 QK 表示为:



其中 Qkh 是 T*dh 的,是 Qk 的第 h 个 head,H 是 head 的数量。其中第 h 个 head 的输出为:



然后将不同 head 的输出 concat 后输入到一个全连接网络中:



经过 Mulit-head self attention 处理之后,每个 Session 得到的结果仍然是 T * d 大小的,随后,经过一个 avg pooling 操作,将每个 session 兴趣转换成一个 d 维向量。



session interest interacting layer:建模用户多个 sessions 之间的联系。每个时刻的 hidden state 计算如下:



相加的两项分别是前向传播和反向传播对应的 t 时刻的 hidden state。这里得到的隐藏层状态 Ht,混合了上下文信息的会话兴趣。


session interest activating layer:建模不同 session 和 target item 的关联度。也就是说用户的会话兴趣与目标物品越相近,越应该赋予更大的权重。使用注意力机制来刻画这种相关性:


同样,混合了上下文信息的会话兴趣,也进行同样的处理。最后将 User profile 向量、Item profile 向量、会话兴趣加权向量 UI、带上下文信息的会话兴趣加权向量 UH 进行横向拼接,输入到全连接层中,得到最终的输出。



实验


使用了两个数据集进行了实验,分别是阿里妈妈的广告数据集和阿里巴巴的电商推荐数据集。对比模型有 YoutubeNet、Wide & Deep、DIN 、DIN-RNN、DIEN,评价指标为 AUC。结果:




参考文献:


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


https://www.jianshu.com/p/82ccb10f9ede


本文转载自 Alex-zhai 知乎账号。


原文链接:https://zhuanlan.zhihu.com/p/71695849


2019-12-02 16:22675

评论

发布
暂无评论
发现更多内容

瑞云科技副总经理黄金进受邀出席2023广东超聚变生态伙伴大会并作主题演讲

3DCAT实时渲染

元宇宙 实时渲染 云流化 3D实时云渲染 云化XR

多云之下,京东云的降本增效之道

人称T客

一文读懂注解的底层原理

老周聊架构

三周年连更

优化用户旅程:提升4S店销售管理系统的市场竞争力

L3C老司机

产品 产品设计 数字化 用户旅程 服务蓝图

探究光明源智慧公厕系统的科技创新与管理优势

光明源智慧厕所

智慧城市

Java Stream常见用法汇总,开发效率大幅提升

程序员大彬

Java java8

C生万物 | 分支和循环语句【内含众多经典案例】

Fire_Shield

C语言 三周年连更

Intent的基本使用

向阳逐梦

组件 intentservice 三周年连更

「ChatGPT最强竞品」爆火:不限量不要钱免注册!一手实测体验在此

Openlab_cosmoplat

人工智能 开源社区 openai ChatGPT

一文掌握 Go 文件的写入操作

陈明勇

Go golang 后端 文件写入 三周年连更

华为云全流程等保服务,帮助企业守护信息安全

科技怪授

阿凡达Sun4.0众筹开发系统技术搭建

薇電13242772558

NFT

过去的90天,ODC 发生了哪些新的改变?

OceanBase 数据库

数据库 oceanbase

小程序生命周期

程序员海军

三周年连更

第五元素奏鸣曲:企业的新数据之道

脑极体

数据

使用appuploader工具发布证书和描述性文件教程

雪奈椰子

一篇文章了解SoapUI接口测试的全部流程

Liam

测试 接口测试 测试工具 API 测试

糟了,生产环境数据竟然不一致,人麻了!

冰河

MySQL 数据库 数据一致性 数据存储

阿里云计算巢产品负责人何川:计算巢,通过数字化工具加速企业数字原生

云布道师

云计算 计算巢

未来源码|什么是数据集成?超全的SeaTunnel 集成工具介绍

MobTech袤博科技

推平“知识高峰”,AI将如何影响我们的学习?

Alter

华为云网站安全解决方案,助力企业安心稳步发展

科技说

为什么FTP会随着时间的过去而变慢?

镭速

Chrome 浏览器的更新导致 jQuery 反复发版,只因 :has() 这个伪类

茶无味的一天

CSS jquery chrome 前端 浏览器

缓存失效后的解决方案

穿过生命散发芬芳

缓存 三周年连更

为企业发展赋能,华为云网站安全解决方案,保护企业网络安全

科技怪授

杨志丰:一文详解,什么是单机分布式一体化?

OceanBase 数据库

数据库 oceanbase

求助 iOS 分发的最佳实践

雪奈椰子

我决定给 ChatGPT 做个缓存层 >>> Hello GPTCache

Zilliz

Zilliz ChatGPT LLM gptcache

华为云网站安全方案为企业数据保驾护航

科技说

Django笔记九之model查询filter、exclude、annotate、order_by

Hunter熊

Python django alias annotate order_by

  • 需要帮助,请添加网站小助手,进入 InfoQ 技术交流群
阿里Deep Session Interest Network解读_行业深度_Alex-zhai_InfoQ精选文章