修改DSIN部分内容

This commit is contained in:
RuyiLuo
2022-04-23 10:12:14 +08:00
parent 7dec3a5e77
commit 7cfd322db5

View File

@@ -713,19 +713,15 @@ class BiLSTM(Layer):
这里这个操作是比较骚的以后建立双向LSTM就用这个模板了具体也不用解释并且这里之所以说灵活是因为最后前向LSTM的结果和反向LSTM的结果都能单独的拿到且可以任意的两者运算。 我记得Keras里面应该是也有直接的函数实现双向LSTM的但依然感觉不如这种灵活。 这个层数自己定,单元自己定看,最后结果形式自己定,太帅了简直。 关于LSTM可以看[官方文档](https://tensorflow.google.cn/versions/r2.0/api_docs/python/tf/keras/layers/LSTM)
这个的输入是`(None, sess_nums, embed_dim)` 输出是`(None, sess_nums, hidden_units_num)`
### 会话兴趣局部激活
这里就是局部Attention的操作了这个在这里就不解释了和之前的DIENDIN的操作就一样了 代码也不放在这里了剩下的代码都看后面的GitHub链接吧 这里我只记录下我觉得后面做别的项目会有用的代码哈哈。
## 总结
到这里就把DSIN这个网络走了一遍这是阿里在DIEN后的新探索也把比较经典的Transformer引入了进来这篇文章画了3个下午+1个晚上的时间主要是研究代码花的时间多。不过总算借着这个机会弄懂了Transformer。 简单总结下:
DSIN的核心创新点就是把用户的历史行为按照时间间隔进行切分以会话为单位进行学习 而学习的方式首先是会话之内的行为自学习,然后是会话之间的交互学习,最后是与当前候选商品相关的兴趣演进,总体上还是挺清晰的。
具体的实际使用场景依然是有丰富的用户历史行为序列才可以,而会话之间的划分间隔,也得依据具体业务场景。 具体的使用可以调deepctr的包。
由于最近涉及到找工作,估计后面再学习模型的话,来不及复现了,因为每个模型都复现花费时间太多,也没有必要,因为好多东西都在重复。 所以后面打算这样, 快速看论文先总结原理,代码复现部分的话,先占个坑, 等后面找到工作之后了,再慢慢来填坑。 当然遇到一些引入新结构且重要的那种模型还是会参考deepctr复现一波的就比如这次这个。 所以接下来这段时间,先以前沿模型的思路为主, 代码实现为辅哈哈。
**参考资料**
* [DSIN原论文](https://arxiv.org/abs/1905.06482)
* [自然语言处理之Attention大详解Attention is all you need](https://blog.csdn.net/wuzhongqiang/article/details/104414239?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161512240816780357259240%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=161512240816780357259240&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_v1~rank_blog_v1-1-104414239.pc_v1_rank_blog_v1&utm_term=Attention+is+all)