编码层
Character Embedding Layer
Char-CNN,防止OOV词
Word Embedding Layer
Glove
Contextual Embedding Layer
解决一词多义的问题。用LSTM进行编码。
比如apple这个单词,可以做苹果,也可以作为手机。
Highway Network
调整单词嵌入和字符嵌入的贡献比,用来做平衡。
前馈神经网络:
将权重矩阵W与y相乘。
在W*y中添加偏差b。
对W*y应用非线性函数g,如Relu或Tanh。
高速神经网络:
只有一小部分的输入将受到上述步骤的影响,剩下的一小部分允许通过未转换的网络。这些部分输入的大小由转换率t和携带率1-t来控制,通过sigmoid函数计算t值,在0-1之间。通俗说,t=0,y不经过非线性函数g。
交互层
- 计算相似度矩阵
- Context-to-query 注意力计算,计算query中每个word与context中word的相似度
- Query-to-context 的注意力计算,取出每一行最大值
- 用context中的word进行计算
输出层
开始位置概率:
结束位置概率:
交叉熵损失函数:
论文与参考资料
http://papers.nips.cc/paper/5945-teaching-machines-to-read-and-comprehend.pdf
https://arxiv.org/abs/1611.01603
|