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 个词语需要预测,则每个词语的预测损失,就是模型损

tlogP(wi+1twi+1<t,hi)+tlogP(witwi1<t,hi)\sum_\text{t}\mathrm{logP\left(w_{i+1}^t|w_{i+1}^{<t},h_i\right)}+\sum_\text{t}\mathrm{logP\left(w_{i-}^t|w_{i-1}^{<t},h_i\right)}

参考:

  1. Skip-Thought Vector 学习笔记_潘多拉星系的博客 - CSDN 博客