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]]