SkipThoughtVectors
借助 skip-gram+seq 2 seq 的思想,学习 "句向量",通过中心句子,预测上下文句子。首先使用编码器提取中心语句的特征,然后使用两个编码器分别预测上文句子和下文句子。
什么是 SkipThoughtVectors ?
- 一种 “句表示” 模型,借助 skip-gram 的思想,通过中心句子,预测上下文句子,如上图的
I could see the cat on the steps
,输出得到上文句子I got back hom <eos>
和下文句子This was strang <eos>
- SkipThoughtVectors 首先由一个编码器编码中心句,得到中心句的 "句表示",然后分别输入上文解码器和下文解码器,得到上下文句子输出
SkipThoughtVectors 的网络结构?
- Encoder-Decoder 架构,在 Encoder-Decoder 架构中所使用的模型是 GRU 模型。在训练句子向量时同样要使用到词向量,编码器输出的结果为句子中最后一个词所输出的向量
SkipThoughtVectors 的训练?
- 类似经典的 RNN 训练,使用 Teacher Forcing 方法训练模型
SkipThoughtVectors 的损失函数?
- 预测的上下句子的损失,也就是交叉熵,假设每个句子有 t 个词语需要预测,则每个词语的预测损失,就是模型损
参考: