主要包含:传统特征模型、Stanford Attentive Reader、实验结果等

传统特征模型

基本思路

文章p,问题q,答案a,候选答案集合E。包含两个步骤:

1)为每个候选答案a构建特征向量\(f_{p,q}(a)\)

2)利用机器学习方法对答案的特征向量进行排序分类,正确答案要比其他候选答案排序要高 \[ W^Tf_{p,q}(a) > W^Tf_{p,q}(e), \forall e \in E-\{a\} \]

八种特征

特征向量对传统特征模型很重要,它需要有:

  • 丰富的信息
  • 能应对各种具体的任务
  • 不太稀疏

特征向量包含数值特征和语言特征,其中语言特征需要利用已有的语言特征工具。语言特征使得模型有两个缺点:

  • 让模型更加的笨重
  • 模型依赖于已有工具的准确率

对于完型填空任务而言,有八种特征,如下:

现代NLP组件

词向量

传统one-hot编码没有词汇之间的语义相似度。

词向量的假设:相似上下文中的单词具有相似的语义。对语义相同的词汇,词向量的编码也会相同。 \[ \cos(\mathbf{v}_{\text{car}}, \mathbf{v}_{\text{vechicle}}) < \cos(\mathbf{v}_{\text{car}}, \mathbf{v}_{\text{man}}) \] 常见的词向量有Word2vecGloveFasttext

循环神经网络

RNN天生能有效处理时序信息、变长的时序信息。

LSTM解决了RNN的梯度消失问题,利于网络优化。

BiLSTM从两个方向去编码时序信息,把两个方向的特征拼接起来,能够充分编码,是NLP任务中一种通用的特征抽取器。

注意力机制

经过RNN编码后的序列得到\(\mathbf{h}_1, \mathbf{h}_2, \cdots, \mathbf{h}_n\)。一般使用\(\mathbf{h}_n\)去做下游任务,这就需要模型把所有信息压缩到一个向量中。这就造成了信息瓶颈问题

这里使用注意力机制对这n个向量进行加权求和,得到序列的表达。权值决定了序列中哪些部分是最有用、最相关的。

注意力机制不一定只能和RNN使用,比如Transformer:词向量、注意力机制、FFN、位置信息。它的优点有:参数更少、并行性更好、上限更高。