AI 年度盘点与2025发展趋势展望,50+案例解析亮相AICon 了解详情
写点什么

阿里 Deep Interest Evolution Network 解读

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

    阅读完需:约 5 分钟

阿里Deep Interest Evolution Network解读

Abstract

对 CTR 预测模型来讲,通过用户行为数据来发掘潜在的用户兴趣特征是很有必要的。并且由于受外部环境和内部认知的影响,用户的兴趣是随着时间而不断进化和变化的。而当前大都数 CTR 模型都直接将用户的行为特征表示为用户的兴趣,缺乏对用户兴趣的建模过程和兴趣的演变过程。本文介绍了 Deep Interest Evolution Network (DIEN)模型,包含 interest extractor layer(兴趣抽取层),目的是从历史行为序列中获取 temporal 的兴趣;interest evolving layer(兴趣演化层),目的是获取与目标 item 相关的兴趣演化过程。DIEN 模型在淘宝的广告 CTR 预估上获得了 20.7%的提升。

Introduction

在推荐场景,捕捉到用户的兴趣并考虑兴趣的动态变化将是提升模型效果的关键。以 Wide&Deep 为代表的深度模型更多的是考虑不同 field 特征之间的相互作用,未关注用户的兴趣。Deep Interest Network (DIN)考虑了用户兴趣,提出用户兴趣是多样的,并使用注意力机制来捕捉和 target item 的相对兴趣,将这种自适应的兴趣表示用于模型预估。但是大多该类模型将用户的行为直接看做兴趣,而用户的潜在兴趣往往很难通过行为来完全表示。因此本文提出了 Deep Interest Evolution Network(DIEN)模型,可挖掘行为背后用户的真实兴趣,并考虑用户兴趣的动态变化。

Model


  • input 层:user 行为序列、Target Ad、Context 和 User Profile

  • interest extractor layer:使用 GRU 对用户行为之间的依赖进行建模,输入是用户按时间排序的行为序列,也就是行为对应的商品。

  • 但是只使用 GRU 只能学习到用户行为之间的依赖,并不能反映用户的兴趣。所以在提取 GRU 隐藏 ht 状态时提出了一个辅助 loss,使用下一个时间刻的行为 bt+1 来指导 ht 的学习,其中正样本就是真实的下一个 item,负样本就是从 item set 中随机抽取的一个 item。


假设有 N 对行为 embedding 序列[公式],其中[公式]表示点击行为的序列,[公式]表示负样本序列。辅助 loss 的表达式为:



最终损失函数为[公式],其中[公式]是平衡最终预测和兴趣表示的超参数。


辅助 loss 的好处:1、可帮助 GRU 的隐状态 ht 更好地表示用户兴趣。2、RNN 在长序列建模场景下梯度传播可能并不能很好的影响到序列开始部分,如果在序列的每个部分都引入一个辅助的监督信号,可一定程度降低优化难度。3、辅助 loss 可给 embedding 层的学习带来更多语义信息,学习到 item 对应的更好的 embedding。


  • interest evolving layer:对与 target item 相关的兴趣演化轨迹进行建模。这部分结合注意力机制中的局部激活能力和 GRU 的序列学习能力来实现建模用户的兴趣演化。该层 GRU 的输入就是 interest extractor layer 中 GRU 的输出,[公式],输出是[公式],最后一个状态[公式]是最终的输出,和其他各类特征 concat 一起送给全连接。

  • 其中,attention 的计算方式如下:


其中[公式]表示一个候选 ad 中不同 field 特征的 embedding 向量的 concat。而 attention 和 GRU 结合的方式有三种:


GRU with attentional input (AIGRU):这种方式将 attention 直接作用于输入,无需修改 GRU 的结构:



Attention based GRU(AGRU):这种方式需要修改 GRU 的结构,将 attention 系数来替换 GRU 的 update gate,此时 hidden state 的输出变为:



GRU with attentional update gate (AUGRU):这种方式需要修改 GRU 的结构,此时 hidden state 的输出变为:


Experiments



参考文献:


https://arxiv.org/pdf/1809.03672.pdf


https://zhuanlan.zhihu.com/p/50758485


https://www.jianshu.com/p/6742d10b8


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


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


2019-12-02 16:221013

评论

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

AWS IoT Greengrass设计解析

soolaugust

边缘计算 工业4.0 工业物联网 iiot

智能视频监控的发展和优势

anyRTC开发者

安全 监控 音视频 WebRTC RTC

大企软件系统问题多?归乡名企工程师:解决很简单,分分钟做个新系统

Learun

敏捷开发 快速开发 企业开发 CRM 企业应用

cncf serverless 所有项目全解读

coldTea214

云计算 Serverless 容器 cncf

「云原生上云」后的聚石塔是如何应对 双11 下大规模应用挑战的

阿里巴巴云原生

阿里云 云原生

精心总结C++智能指针用法详解(完整版)附带视频讲解

ShenDu_Linux

c++ 程序员 指针 智能指针

架构师 3 期 3 班 -week2- 作业

zbest

作业 week2

精彩回顾 | 一张图读懂OPPO应用与数据安全防护

OPPO安全

OPPO安全

LeetCode题解:455. 分发饼干,贪心while循环,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

美团T8级架构师剖析Spring Boot源码:日志、缓存、消息、Web服务等

Java架构追梦

Java 源码 架构 微服务 springboot

架构师 3 期 3 班 -week2- 总结

zbest

总结 week2

测试过程中如何快速定位一个bug

测试人生路

软件测试

在K8S/OpenShift上开发应用程序的14种最佳实践

东风微鸣

Kubernetes 最佳实践 k8s最佳实践 openshift

go-zero 之 rest 实战与原理

万俊峰Kevin

RESTful api 网关 microservice Go 语言

为什么从蚂蚁离职?base拉胯,高潜也被倒挂,就是酸,忍不了

Java架构师迁哥

中国CRM突围指南

ToB行业头条

CRM

Serverless 应用引擎的远程调试和云端联调

阿里巴巴云原生

Java Serverless 云原生 后端

区块链技术应用打造智慧物流

13828808769

区块链技术应用开发

同步与异步,回调与协程

Linux服务器开发

线程 后端 协程 底层应用开发 Linux服务器开发

关于物联网规则引擎技术,你想要知道的都在这儿!

华为云开发者联盟

数据 联动 iotda

OPPO技术开放日第六期丨OPPO安全解析“应用与数据安全防护”背后的技术

OPPO安全

OPPO安全

从零做网站开发:基于Flask和JQuery,实现表格管理平台

华为云开发者联盟

jquery flask 框架

PGAS模型编程语言

星际行者

想了解表格问答,我们先看看TA的前世

华为云开发者联盟

数据库 规范 表格

linux后台开发必知的linux系统内存知识总结

linux大本营

c++ Linux 后台开发 架构师 内存管理

设备常用网管配置举例

《迅雷链精品课》第九课:区块链P2P网络

迅雷链

区块链

跟随杠精的视角一起来了解Redis的主从复制

leonsh

redis redis高可用 redis主从

你敢信?就是这个Netty的网络框架差点把我整疯了,哭jj

小Q

学习 编程 面试 Netty 网络

技术应用丨DWS 空间释放(vacuum full) 最佳实践

华为云开发者联盟

内存 存储 磁盘

深入了解进程间通信:System V信号量+共享内存

ShenDu_Linux

Linux 进程 内存管理 通信协议

阿里Deep Interest Evolution Network解读_语言 & 开发_Alex-zhai_InfoQ精选文章