【推荐算法】单目标精排模型——DIEN

news/2024/12/11 17:03:49/文章来源:https://www.cnblogs.com/DLShark/p/18600015

key word: 阿里巴巴广告点击率预测

Motivation: 截至2018年,还没有相关的推荐算法考虑到用户兴趣的趋势。作者认为大多数的模型是直接将行为视为兴趣,无法直接提取用户真正的潜在兴趣特征。因此,作者提出了DIEN模型,利用interest extractor layer通过用户历史行为序列捕捉用户的兴趣序列特征,通过interest evolving layer处理目标的兴趣演变过程。

preface: 笔者认为这篇文章的模型创新关键点在于关注了RNN的隐藏状态,通过一个辅助损失训练每一个隐藏状态,每一个隐藏状态对应一个行为序列的子兴趣,并基于这些子兴趣结合注意力机制进一步学习兴趣的演化发展。

一、模型设计

image

💡 Interest Extractor Layer

作者认为用户的行为序列发生变化时,兴趣也会跟着发生变化。因此通过Interest Extractor Layer提取用户的潜在兴趣特征。作者采用了GRU作为时序模型处理长序列的行为数据,不采用RNNLSTM,这是由于:GRU克服了RNN的梯度消失问题,比LSTM更快

​ 作者认为只采用简单的RNN模型无法发挥隐藏状态的优势,这些隐藏状态在传统模型中只能捕捉行为之间的依赖性,而不能作为用户的潜在特征。因此,作者提出了auxiliary loss,利用t+1隐藏状态监督t隐藏状态的学习。负样本是除了当前行为序列t时刻的物品外的所有物品。训练的数据为一个正样本行为序列\(e_b\)和一个负样本行为序列\(e_b'\)。辅助损失函数的表达为:

\[L_{aux} = -\frac{1}{N}(\sum \sum \log \sigma(h_t^i, e_b^i[t+1] + \log(1- \sigma(h_t^i, e_b^{'i}[t+1]))) \]

其中,\(\sigma\)表示sigmoid激活函数,\(h_t^i\)表示第i个用户的第t个隐藏状态。

​ 最终的损失为:

\[L = L_{target}+ \alpha * L_{aux} \]

[!tip]

作者认为:在辅助损失的帮助下,每个隐藏状态都有足够的表达能力来表示用户采取行为后的兴趣状态。

Interest Evolving Layer

作者认为建立兴趣的发展的过程可以为最终的点击率预测提供更多的历史信息,更好的预测点击率。每个用户都有着不同的兴趣,并且每个兴趣都有不同的演变过程。基于 Interest Extractor Layer得到的隐状态兴趣表示,引入注意力机制,增加相关兴趣的影响关系,减弱不同兴趣之间的干扰。

注意力函数在论文中表达为:

\[a_t = \frac{exp(h_tWe_a)}{\sum _{j=1}^T exp(h_jWe_a)} \]

其中,\(e_a\)表示候选广告的向量,\(W \in (n_h,n_a)\), \(a_t\)表示注意力得分

作者提出了三种注意力机制和GRU结合的方式:

  • GRU with attentional input (AIGRU)

直接利用注意力得分作用在Interest Evolving Layer

【弊端】:AIGRU 中使用注意力得分对输入兴趣进行加权,希望减小不相关兴趣的影响。但由于 GRU 的特性,即使输入为零,它的内部状态依然可能发生变化,不相关兴趣还是会对模型的学习过程产生影响,导致效果不好。

\[i_t'=h_t * a_t \]

\(i_t'\)表示第二层GRU的输入。

  • Attention based GRU(AGRU)

AGRU 在此前已经被人提出解决问答系统的问题,有效的提取了问句中的关键信息。这篇文章利用他提取相对兴趣,将注意力得分嵌入到更新门上

\[h_t'=(1-a_t)*h'_{t-1}+a_t * h_t'' \]

  • GRU with attentional update gate (AUGRU)

注意力得分是一个标量,用其实现更新门忽略了不同维度的不同重要性,在AGRU的实现中,隐状态都是乘以一个固定的注意力得分,因此,提出了利用向量嵌入到更新门上

\[u_t = a_t * u_t \]

\[h_t' = (1-u_t) · h_{t-1}' + u_t· h_{t}'' \]

二、实验

数据集

Amazon Dataset: Using Books and Electronics to verify the effect of DIEN.

Industrial Dataset

实验结果

image

可视化

时序模型的隐藏状态可以反映兴趣的发展过程。作者选取一个行为序列:Computer Speakers, Headphones, Vehicle GPS, SD & SDHC Cards, Micro SD Cards, External Hard Drives, Headphones, Cases, successively;并通过PCA降维至两维

  • 黄色线:没有使用注意力得分;
  • 蓝色线:使用了注意力得分但是目标物品是Screen Protectors,行为序列没有出现过,因此和黄色线相似;
  • 红色线:目标是Cases,隐状态的变化与最后一个物品有很强的相关性;

image

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

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

相关文章

datagridview点击列头对当前列进行排序的功能无效

DataGridView 的默认行为是支持通过单击列头对列进行排序,但在以下情况下可能会取消该功能或无法使用: 1. 绑定的数据源不支持排序 如果 DataGridView 的数据源是绑定到一个不支持排序的集合(例如,List 或未实现 IBindingList 的对象),排序功能会被禁用。 2. 列的 SortMo…

Salesforce Q3财报:营收94亿美金,净利润同比增长25%,靠什么实现逆风翻盘?

Salesforce在发布第三季度财报后,其股价迎来了久违的高光时刻。周三上午,Salesforce股票(CRM)报收367美元,较前一交易日的331.43美元上涨了10%,一跃成为市场关注的焦点。 本季度我们在收入、利润率、现金流和cRPO等各项财务指标上再次实现了卓越的表现。Agentforce,作为…

c# 创建Access数据库文件,并创建表,增加一行数据

需求:每隔一段时间存一条数据到Access数据库,数据库文件以日期命名,把这个功能封装以供调用 分解任务:1新建数据库文件 2新建数据库表 3向数据库表中增加数据 4需要有日志记录执行结果 5由于过多的dll不易于传播维护,需要将这些dll封装 参考资料: 关闭ADOX.Catalo…

转载:【AI系统】AI 系统与程序代码关系

模型算法的开发者一般会通过使用 AI 框架提供 Python 等高级语言的 API,来编写对应的 AI 算法,而 AI 算法的底层系统问题被当前层抽象隐藏。到底在代码背后 AI 系统的每一层发生和执行了什么?有哪些有意思的系统设计问题? 本文我们将从一个具体的 PyTorch 实现一个 LeNet5 …

VUE使用Canvas元素实现手绘签名(重新签名+撤回一笔)

VUE使用Canvas元素实现手绘签名(重新签名+撤回一笔) 效果:代码实现:本文来自博客园,作者:じ逐梦,转载请注明原文链接:https://www.cnblogs.com/ZhuMeng-Chao/p/18599924

雷池社区版的防爬虫功能之Bot 防护 - 人机验证

​ 介绍 互联网上有来自真人用户的流量, 但更多的是由爬虫, 漏洞扫描器, 蠕虫病毒, 漏洞利用程序等自动化程序发起的流量. 识别真人用户对提升网站的安全性至关重要, 也是防爬虫, 防扫描的关键. 该功能开启后,当用户访问您的网站时,雷池会预先检查客户端环境的合法性,如下图…

精美的jQuery科学计算器插件

jsRapCalculator是一款jQuery科学计算器插件。该科学计算器提供除加减乘除外,还有或和异或、取反、八进制,十六进制和二进制等功能。在线演示 下载使用方法 在页面中引入jquery和jsRapCalculator.js文件和样式文件jsRapCalculator.css。<link rel="stylesheet"…

# electron 打包 webview 嵌入需要调用电脑摄像头拍摄失败问题

electron 打包 webview 嵌入需要调用电脑摄像头拍摄失败问题这篇文章是接我cocos专栏的上一篇文章继续写的,我上一篇文章写的是 cocos 开发触摸屏项目,需要嵌入一个网页用来展示,最后通过 electron 打包成 exe 程序,而且网页里面是需要调用电脑摄像头进行拍摄的。问题 通过…

制作一个简单的单片机上的boot系统

此篇文章在2023年3月24日被记录ARM单片机使用自定义bootloader 什么是BOOT 懂得计算机的同学都知道,电脑在开机时,从上电的那一刻开始,首先会进入bios,这个bios的作用就类似于单片机中的bootloader。万一我们浏览某些不可言状的网站导致系统崩溃时,我们就可以在这个临时的…

Amazon S3 概念及如何集成到 .net 8 C#

本文主要分为两个部分: 1、Amazon S3 相关概念 2、.net 集成的代码 * 阅读提示 :鼠标悬停在 章节标题 上可见 文章目录Amazon S3(Simple Storage Service)是一个高度可扩展、数据可用性高、安全性强的对象存储服务。 Amazon S3 使用对象存储架构,数据以对象的形式存储在桶…

SAP QM 客户退货检验的三种实现方案

SAP QM 客户退货检验的三种实现方案在SAP项目上,客户退货检验场景经常遇到。如果项目上启用QM模块,要在SAP 里实现客户退货场景的质量检验,有三种实现方式。本文将对这三种实现方案做简要说明,与同行共勉。1, 客户退货的收货启用移动类型651,物料激活检验类型06, 退货交货…