当前位置:网站首页>【兴趣阅读】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 Profile
Short-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的两个部分的用户行为序列嵌入,也即是最终输出的部分还是一些矩阵或者向量的表示。接着按图索骥:
- 使用自注意力机制从每个用户行为序列中获得一个新的嵌入表示;
E_t
来源于嵌入层,即将前一部分去重的行为序列嵌入得到举证表示。然后使用自注意力机制进行得到新的嵌入表示。然后定义了使用F()
函数来将其加入到CTR
模型中进行前向传播,得到G_t
:
通过G_t
和E_t
,以及预定义的k
值来选择top-k
的useful
或者useless
的行为。
4.3 Interest Extraction Unit & Adversarial Interest Extraction Unit
因为引入了外部特征,也输出的选择后的特征矩阵表示,这里使用了多头注意力机制来得到新的嵌入表示。
然后输入到多层感知机,用于CTR
的预测。
对于useful
和useless
两个部分的损失函数分别使用loss_s
和loss_s
拔表示:
当然,对于loss
的分类损失经典做法为3.2部分提到的交叉熵损失。
受对抗学习(adversarial learning
)的启发,作者提出了一个对抗训练的机制来加速训练,即:
固定BSU
部分,来计算IEU
和AIEU
的损失,即:
不难理解,也就是不考虑框架图中中间部分的损失,那么分类的损失就需要两部分损失最小。
固定IEU
和AIEU
,同样的还是观察框架图,那么我们所期望的就是能够获取更多的用户useful
的信息,故而为:
5. 后记
虽然大约理解了这个文章的做法流程,但是对于实现的细节却没有参考,很遗憾没有代码可以看看。之后有时间了再考虑仔细研读和理解细节部分。
边栏推荐
- 中科磐云—模块A 基础设施设置与安全加固 评分标准
- appliedzkp zkevm(11)中的EVM Proof
- NTFS security permissions
- 令人头痛的延时双删
- LeetCode136+128+152+148
- Zhongke Panyun - 2022 Guangxi reverse analysis ideas
- A summary of the 8544 problem that SolidWorks Standard cannot obtain a license
- How to build your own knowledge engine? Community open application
- 力扣 第 300 场周赛
- STM32F1与STM32CubeIDE编程实例-74HC595驱动4位7段数码管
猜你喜欢
全国职业院校技能大赛(中职组)网络安全竞赛试题—解析
6-5 vulnerability exploitation SSH weak password cracking and utilization
Zhongke panyun-2022 Guangdong Trojan horse information acquisition and analysis
中科磐云—2022广东木马信息获取解析
在代碼中使用度量單比特,從而生活更美好
Unity 接入天气系统
关于solidworks standard无法获得许可 8544问题的总结
软件设计文档示例模板 - 学习/实践
2022 Guangdong provincial competition - code information acquisition and analysis flag
Annex VI: defense work briefing docx
随机推荐
How to build your own knowledge engine? Community open application
Simple g++ and GDB debugging
附件六:防守工作簡報.docx
中科磐云—D模块解析以及评分标准
如何构建属于自己的知识引擎?社群开放申请
Useful plug-ins for vscode
Annex V: briefing on the attack process docx
RPC - grpc simple demo - learn / practice
2022广东省赛——编码信息获取 解析flag
Notes on the paper "cross view transformers for real time map view semantic segmentation"
Exercise bubble sort
测试 CS4344 立体声DA转换器
The paddlehub face recognition scheme is deployed, and the trained model is deployed and applied in pytchrom
【MATLAB】MATLAB 仿真 — 窄带高斯白噪声
MAUI 入门教程系列(5.XAML及页面介绍)
Encryption and decryption
【MATLAB】通信信号调制通用函数 — 傅里叶变换
[技术发展-25]:广播电视网、互联网、电信网、电网四网融合技术
VSCode的有用插件
附件2-2保密承诺书.docx