主要包含:传统特征模型、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}})
\] 常见的词向量有Word2vec、Glove
和Fasttext
。
循环神经网络
RNN天生能有效处理时序信息、变长的时序信息。
LSTM解决了RNN的梯度消失问题,利于网络优化。
BiLSTM
从两个方向去编码时序信息,把两个方向的特征拼接起来,能够充分编码,是NLP任务中一种通用的特征抽取器。
注意力机制
经过RNN编码后的序列得到\(\mathbf{h}_1, \mathbf{h}_2, \cdots, \mathbf{h}_n\)。一般使用\(\mathbf{h}_n\)去做下游任务,这就需要模型把所有信息压缩到一个向量中。这就造成了信息瓶颈问题
。
这里使用注意力机制对这n个向量进行加权求和,得到序列的表达。权值决定了序列中哪些部分是最有用、最相关的。
注意力机制不一定只能和RNN使用,比如Transformer:词向量、注意力机制、FFN、位置信息。它的优点有:参数更少、并行性更好、上限更高。