当前位置:网站首页>【兴趣阅读】Adversarial Filtering Modeling on Long-term User Behavior Sequences for Click-Through Rate Pre
【兴趣阅读】Adversarial Filtering Modeling on Long-term User Behavior Sequences for Click-Through Rate Pre
2022-07-04 04:33:00 【梦否】
Adversarial Filtering Modeling on Long-term User Behavior Sequences for Click-Through Rate Prediction
Alibaba Group
6页(加参考文献)
1. 摘要
丰富的用户行为信息对捕获和理解点击率预测用户兴趣是及其重要的。最近的研究者提出了几种方法来处理短期-长期行为序列和建模用户兴趣。这些方法没有很好的处理在长期用户行为中的噪声信息,而这可能会明显影响到点击率预测的性能。故而这篇论文提出了一个新奇的对抗过滤模型(ADFM),在该模型中使用一个对抗的过滤机制,可以移除无用的行为信息。
2. 引言
由于用户历史数据的迅速增长,在点击预测(CTR)任务中用户行为建模被广泛采纳,主要目的是从用户历史行为数据中捕捉到用户兴趣,而且对于推荐系统和在线营销有着至关重要的作用。现有模型主要针对短期用于行为序列,即有限长度。如果将其扩展到长期用户行为序列,即更大的窗口长度值,但往往需要花费更多的存储空间,同时也可以获取到一些潜在的信息。那么如果设计一个有效的长期用户行为模型?
- 直观上来说,可以转换;将长序列转换为短序列,比如在论文
[8, 9, 11]中就是这么处理的。
那么,对于在摘要中提到的其他模型无法处理的噪声问题,在论文中噪声指:
- 重复的行为和无用的行为;比如:重复的行为可以是用户访问多次的商品、商标等,这些重复的数据没有带来新的信息。无用的数据,比如用户意外的点击或者“长尾项”数据。
3. 基本点击预测(CTR)模型
3.1 输入特征(Input Fetures):
Item Profile
*User ProfileShort-term user behavior,分为行为类型:{impression,click,add to cart,pay},行为目标:{item,brand,shop,category};将行为类型和行为目标组合为用户的短期行为序列。时间窗口为3天,并且行为序列最长不超过100。Long-term user behavior,和短期用户行为类似,时间窗口为几个月,序列长度可达 成千上万(tens of thousands);
3.2 嵌入层(Embedding Layer):
target: high-dimensional sparse fetures => low-dimensional dense embedding representaion.
然后加入了池化层,多层感知机层,也就是最后的进行输入预测目标项是否会被点击。对应的(点击)激活函数为:

(x, y)表示训练集样本,y取值为0或者1,对应的p(x)表示预测点击的概率。也即是:预测成功的概率=(预测实际点击成功+预测实际不点击成功)
4. ADFM模型
见下图:
观察上图,和自己所见过的模型框架的区别直观上来说确实在于加入了中间的部分,即:Behavior Selection Unit。经过了一次MLP进行判优之后,再选择出分类效果较好的嵌入特征,将这个嵌入特征(Useful behaviors/Useless behaviors)再用作新一轮模型的输入,同样经过注意力机制,然后进行分类。同时还引入了外部的特征,有Target feature, Other features。那么其实我是很好奇的:为什么要吧这特征额外作为外部的特征,而不是统一的进行筛选:
- 猜想一:这部分特征很有用,能对模型的效果起决定性作用?
- 猜想二:这部分特征数据比较少,不能简单拼接到
Long-term user behavior sequences?
感觉应该是第二个。带着这个疑问,以及对这个模型的非细节理解继续进行阅读。
从底向上:
Hierarchical Aggregation Unit:用来去重;Behavior Selection Unit:用来选择有用/无用的行为嵌入;Interest Extraction Unit & Adversarial Interest Extraction Unit:捕获用户兴趣。
值得注意的是:
The aim of ADFM is to identify duplicate and useless behaviors from the long-term user behavior sequence and retain the most useful k behaviors, where k is a hyper-parameter.
然后可以得到过滤的去序列,然后输入到一个CTR点击预测模型中进行最终的分类。
4.1 Hierarchical Aggregation Unit(HAU)
这部分主要用于去除重复数据,然而面临的一个问题就在于:
- 数据序列中,去除重复数据可能会导致序列信息的损失;
- 不能区分用户的一次还是多次行为;
因此,在论文中添加了统计,每种行为都对应了具体的格式,为:(behavior_id, number, timestamp)。比如说:
(shop_id_1, click_num_1, timestamp_1)等;
4.2Behavior Selection Unit(BSU)
从上图中我们知道这个部分最终目的是为了选择出top k的useful和useless的两个部分的用户行为序列嵌入,也即是最终输出的部分还是一些矩阵或者向量的表示。接着按图索骥:
- 使用自注意力机制从每个用户行为序列中获得一个新的嵌入表示;
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OuLlQYLa-1656737239411)(imgs/1656735587445.png)]](/img/04/c8c8bdd0ee71a80327934c2355324d.png)
E_t来源于嵌入层,即将前一部分去重的行为序列嵌入得到举证表示。然后使用自注意力机制进行得到新的嵌入表示。然后定义了使用F()函数来将其加入到CTR模型中进行前向传播,得到G_t:

通过G_t和E_t,以及预定义的k值来选择top-k的useful或者useless的行为。

4.3 Interest Extraction Unit & Adversarial Interest Extraction Unit
因为引入了外部特征,也输出的选择后的特征矩阵表示,这里使用了多头注意力机制来得到新的嵌入表示。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qZ9iFviR-1656737239414)(imgs/1656736330082.png)]](/img/b2/0a2b154f05d10cbda0cd1f22742960.png)
然后输入到多层感知机,用于CTR的预测。
对于useful和useless两个部分的损失函数分别使用loss_s和loss_s拔表示:

当然,对于loss的分类损失经典做法为3.2部分提到的交叉熵损失。
受对抗学习(adversarial learning)的启发,作者提出了一个对抗训练的机制来加速训练,即:
固定BSU部分,来计算IEU和AIEU的损失,即:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J9nGQf5d-1656737239416)(imgs/1656736940157.png)]](/img/17/6111c5c8c39e47b354109c32f61bb8.png)
不难理解,也就是不考虑框架图中中间部分的损失,那么分类的损失就需要两部分损失最小。
固定IEU和AIEU,同样的还是观察框架图,那么我们所期望的就是能够获取更多的用户useful的信息,故而为:

5. 后记
虽然大约理解了这个文章的做法流程,但是对于实现的细节却没有参考,很遗憾没有代码可以看看。之后有时间了再考虑仔细研读和理解细节部分。
边栏推荐
- Roles of rollup components
- 练习-冒泡排序
- Annex II: confidentiality agreement for offensive and defensive drills docx
- Correct the classpath of your application so that it contains a single, compatible version of com. go
- 【MATLAB】通信信号调制通用函数 — 插值函数
- 【MATLAB】MATLAB 仿真模拟调制系统 — DSB 系统
- Trie数-字典树
- [matlab] matlab simulation - low pass Gaussian white noise
- [matlab] matlab simulation - simulate the AM modulation process of the modulation system
- 附件六:防守工作简报.docx
猜你喜欢

How to build your own knowledge engine? Community open application

Utiliser des unités de mesure dans votre code pour une vie meilleure

【QT】定时器

Drozer tool

Capturing and sorting out external Fiddler -- Conversation bar and filter

Annex V: briefing on the attack process docx

自动化测试selenium基础篇——webdriverAPI

Correct the classpath of your application so that it contains a single, compatible version of com.go

全国职业院校技能大赛(中职组)网络安全竞赛试题—解析

Zhongke panyun-d module analysis and scoring standard
随机推荐
Unity中RampTex介绍和应用: 溶解特效优化
远程桌面客户端 RDP
TCP状态转换图
红队视角下的防御体系突破之第一篇介绍、阶段、方法
【MATLAB】通信信号调制通用函数 — 低通滤波器
Binary search tree
[matlab] matlab simulates digital baseband transmission system eye diagram of bipolar baseband signal (class I part response waveform)
[matlab] matlab simulation modulation system FM system
[matlab] matlab simulation modulation system - DSB system
Zhongke Panyun - data analysis and forensics packet flag
Maui introductory tutorial series (5.xaml and page introduction)
【MATLAB】MATLAB 仿真模拟调制系统 — AM 已调信号的功率谱与相干解调
Notes on the paper "cross view transformers for real time map view semantic segmentation"
CRS-4013: This command is not supported in a single-node configuration.
Zhongke panyun-d module analysis and scoring standard
Error response from daemon: You cannot remove a running container 8d6f0d2850250627cd6c2acb2497002fc3
练习-冒泡排序
Zkevm (12) state proof of appliedzkp
力扣 第 300 场周赛
【MATLAB】MATLAB 仿真 — 低通高斯白噪声