DSXiangLi / CTR

CTR模型代码和学习笔记总结
374 stars 94 forks source link

DIN模型的代码疑问 #8

Closed TangDouOVO closed 3 years ago

TangDouOVO commented 3 years ago

1.DIN.py中attention函数下 dense = tf.layers.dense(dense, units= unit, activation = tf.nn.relu, name = 'attention_{}'.format(i)) 这里的激活函数tf.nn.relu是不是换成论文中提到的Dice更好? 2.CTR这类模型在对特征做embedding时候,是不是每一个特征变量都要单独做一个从特征维度(即每一个变量one_hot后的维度)到D维(即embedding输出后的固定维度)的变换?

DSXiangLi commented 3 years ago
  1. 哈哈是的这里偷懒了,应该是使用PReLU或者generalized的Dice, 这里就实现了模型结构,training technique这种锦上添花的都没整
  2. 离散变量是的
TangDouOVO commented 3 years ago

还想问一个问题,上面那个attention中有一行代码是“dense = tf.concat([keys, queries, queries - keys, queries keys], axis =2 )”,论文中图2的attention unit 示意图中有:keys, queries,queries keys这三个表示,queries - keys是在哪里说明的呢?为什么要加queries - keys?

DSXiangLi commented 3 years ago

这里是参考了论文作者的实现 https://github.com/zhougr1993/DeepInterestNetwork, 我的理解是可以看成是把ot-product attention和additive attention进行了融合,也算是人为对embedding做交互帮助模型学习,是比较pratical的操作

TangDouOVO commented 3 years ago

非常感谢!