写点什么

阿里 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:22989

评论

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

创业团队组织建设-跨部门沟通

wood

创业 沟通 28天写作

从航海贸易到元宇宙,从公司制到DAO

CECBC

IT 好文&好课分享

hackstoic

智慧社区综合管理平台解决方案,智慧社区一体化管理系统开发

电微13828808271

信也科技 x StarRocks:打造统一销售数据平台

StarRocks

数据库 高并发 StarRocks

区块链电子签章平台搭建,区块链电子合同系统

电微13828808271

架构实战营 - 微信业务架构 & 学生管理系统

阿门阿前一颗葡萄树๑

架构实战营 #架构实战营 「架构实战营」

同程旅行 IAST 落地实践

火线安全

DevOps DevSecOps 漏洞扫描 漏洞分析

5.《重学JAVA》--编码规范

杨鹏Geek

Java 25 周年 28天写作 12月日更

vivo 敏感词匹配系统的设计与实践

vivo互联网技术

服务器 内容审核 架构设计实战 文本检测

被寄予厚望的区块链在数据交易中能发挥的作用是什么?

CECBC

架构模式及其应用 | 内部分享

空空

内容合集 签约计划第二季

未来“数”于你 | 墨天轮携手 Vertica 发布技术文章征集令,双重大奖蓄势待“发”

墨天轮

数据库 征文大赛 vertica

质量基础设施“一站式”服务信息平台建设,NQI一站式服务平台

电微13828808271

xxxx

guangbao

AI模型也需要资产管理,星环科技重磅推出AI运营平台MLOps 星环科技 星环科技

星环科技

AI

星环科技分布式文件系统TDFS大揭秘(上)

星环科技

大数据 计算与存储

实用机器学习笔记五:探索性数据分析

打工人!

机器学习 学习笔记 12月日更 李沐 实用机器学习

Python Qt GUI设计:QTabWidget、QStackedWidget和QDockWidget容器控件类(提升篇—2)

不脱发的程序猿

Python qt PyQt GUI设计 容器控件类

Hoo虎符研究院 | 区块链简报 20211206 期

区块链前沿News

虎符 Hoo虎符

Hoo虎符研究院 | 币圈后浪——KBOX

区块链前沿News

虎符 Hoo虎符 Hoo 虎符交易所

数研所已实现在数字人民币中积极探索区块链应用

CECBC

架构实战营4期-第1周作业

周念

「架构实战营」

可视化埋点在 React Native 中的实践

Shopee技术团队

大前端 可视化 埋点 React Native

Python Qt GUI设计:5种事件处理机制(提升篇—3)

不脱发的程序猿

Python qt PyQt GUI设计 事件处理机制

Android C++系列:Linux线程(三)线程属性

轻口味

android 28天写作 12月日更

流上机器学习,星环科技Sophon Base助力海洋石油富岛工艺监测智能化

星环科技

TypeScript 之映射类型

冴羽

JavaScript typescript 翻译 大前端

vue单页面和多页面的区别?

CRMEB

数字人民币生态体系进一步完善 试点场景加速拓展

CECBC

【技术分享】DOSM Web项目优化分析 & 解决方案

云智慧AIOps社区

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