这篇是KDD`17中的论文,我之前做对比实验的时候复现过代码。现在想把这篇论文的思想记录下来.论文思想:主要是通过本次的诊断预测下一次的诊断。论文的主要框架是一个BRNN(双向RNN)和Concatenation-based Attention。
论文链接
https://arxiv.org/pdf/1706.05764.pdf
论文代码
论文中没有开源他们的代码,但是我在github上找到有人对它的复现(PS:不一定完全正确,仅供参考)。
代码链接:https://github.com/Yuyoo/Dipole
看代码上的注释应该是东南大学的某位研究僧复现的,里面有pytorch版本和TensorFlow版的,真是相当详细了。(PS:我自己复现的跑出来效果不好,以为自己复现错了。看到这位博主复现的代码与自己复现的一样,就知道了这个模型可能不太适合我们的那个数据。在这里十分感谢这位博主分享自己的代码)。
论文框架
1,Visit Embedding
2, Bidirectional Recurrent Neural Networks
经过双向RNN出来的数据,也是双向的。
1,正向
2,反向
3,最后拼接在一起 ,此时要注意输出的维度是原来的两倍。
3,Attention
论文中提出了三种Attention方式。
- Location-based Attention
这个Attention没有结合ht,它用的是之前的信息hi. - General Attention
这个Attention结合ht了,注意hi和ht的范围.这边算完之后还要经过上面的公式3和公式4计算ct. - Concatenation-based Attention
这边算完之后还要经过上面的公式3和公式4计算ct.
Diagnosis Prediction
复现总结
我用这篇论文作对比实验,三种attention方法都试了,结果相差无几。论文中也显示了
在复现的时候要特别注意tensor维度的转换。
发布时间: 2020-01-12
最后更新: 2020-01-15
本文标题: Dipole:Diagnosis Prediction in Healthcare via Attention-based Bidirectional Recurrent Neural Networks
本文链接: https://yoken-mao.github.io/2020/01/12/Dipole/
版权声明: 本作品采用 CC BY-NC-SA 4.0 许可协议进行许可。转载请注明出处!