DIEN
亮点
- 引入辅助 Loss:利用 GRU 的 hidden state 与下一个点击的商品做一个
- 一般模型把用户行为直接当成兴趣,dien 认为用户兴趣是隐藏在行为中,需要去挖掘

feature 分成四类:User Profile, User Behavior, Ad and Context
[[interest extractor layer]] 作用 :-> 兴趣抽取层,用 GRU 抽取序列信息
[[interest evolving layer]] 作用 :-> 兴趣进化层,将Target Attention引入GRU,过滤掉与待排序的广告不相关的信息。
[[AUGRU]] 计算方法 #card
这里是先用序列中Item的隐状态和待排序的广告Embedding计算一个Attention标量,再将该标量乘以更新门控向量。
最终隐藏状态和候选状态,以及每一个维度的重要性,由当前Item隐状态,待排序广告,前一Item隐状态,当前Item原特征(后两者用于计算更新门)共同决定。
源码阅读
train.py 指定模型
model 中包含对模型的实现
数据
uid_voc.pkl: 用户名对应的id
mid_voc.pkl: item对应的id
cat_voc.pkl:category对应的id
item-info:item对应的category信息
reviews-info:用于进行负采样的数据
local_train_splitByUser:训练数据,一行格式为:label、用户名、目标item、 目标item类别、历史item、历史item对应类别。
local_test_splitByUser:测试数据,格式同训练数据
网络设置
embeeding 18
hidden size 18*2
attention_size 18*2
fcn: 200-80-2
dice
prelu
需要分析代码:
aux 网络
gru 改造
din_fcn_attention
[[Ref]]