【论文笔记】Question Answering over Freebase with Multi-Column Convolutional Neural Networks
本文发表于ACL 2015会议。作者提出了一种基于Freebase的新方法,并采用多列卷积神经网络架构(MCCNNs),从三个维度对问题进行分析:答案路径(answer path)、答案背景信息(answer context)以及答案类型(answer type),并通过学习这些信息的分布式表示(distributed representations)来构建模型。在无需人工特征提取或预先定义词表的情况下,在WEBQUESTIONS问答数据集上进行了实验并取得了良好的效果。
对于问题q=⟨w₁⟩...⟨wₙ⟩, 作者通过调用Freebase Search API获取问题中的命名实体信息。当问题中未能识别出任何命名实体或名词时, 采用返回最相关的一个命名实体的方法, 并将其悬置于知识库作为候选答案的基础。随后, 将所有与q相关的直接关联实体及其关联关系纳入候选答案集合中, 表示为C_q. 在此基础之上, 对每一个候选答案a, 基于模型训练获得的答案路径(answer path)以及背景信息(answer context)等矢量表示方法, 分别计算其与问题q的矢量表示f₁(q), f₂(q), f₃(q). 最终通过综合评估S(q,a)确定最优答案. 计算公式如下:
S(q,a)=f_1(q)^T g_1(a)+f_2(q)^T g_2(a)+f_3(q)^T g_3(a)
其中f_i(q)和g_i(a)具有相同的维度;其计算方式为内积;最终将这三项进行求和运算得到S(q,a)。

2.2 MCCNNs for Question Understanding
MCCNNs采用了三个模块来获取问题表示和word embeddings(分别是答案路径、答案背景信息以及答案类型)。假设存在一个问题,则将每个词通过look-up转换成相应的词向量(即:w_j = W_v u(w_j)),其中 W_v ∈ ℝ^{d_v×|V|} 是一个映射矩阵,在此过程中 u(w_j) ∈ \{0, 1\}^{|V|} 表示单词 w_j 的one-hot编码形式(即单词在词汇表中的唯一标识符),而 |V| 则代表词汇表中单词的数量。
对于MCCNNs的第i个通道来说,则是通过计算该通道对应的n维向量中每一个j的位置值来进行操作。
x^{(i)}_{j} =h(W_{(i)} [w^{T}_{j-s} ...w^{T}_{j}...w^{T}_{j+s}] +b^{(i)})
其中(2s + 1)为滑窗大小, W^{(i)} ∈ R^{d_{q}×(2s+1)d_{v}} 为卷积层的权重矩阵, b^{(i)} ∈ R^{d_{q} ×1}为偏置向量,h (·) 为非线性函数,这里与text-cnn稍微有一点点不同,这里每个卷积计算后得到的是维度为 d_{q}的向量。最后再Max-pooling层得到MCCNNs第i个通道的向量表示,即:
f_{i} (q) = max_{j =1,...,n}{ \textbf{x}_{(i)}}
2.3 Embedding Candidate Answers
对于每个候选答案a,其三方面的Vector representations分别表示为: g_{1}(a) , g_{2}(a) , g_{3}(a),其学习方式分别如下:
①Answer Path ,答案路径表示为知识库中候选答案与问题中的实体节点之间路径上的所有关系(relation)集合,如上图的答案路径为:(film.film.release date s,film.film regional release date.release date),其ector representation g_{1}(a) 计算方式为:
g_{1}(a) = \frac{1}{||u_{p}(a)||_{1}}\textbf{W}_{p}u_{p}(a)
其中 u_{p}(a) ∈ R^{|R|×1}为维度大小为|R|的向量,即如果在这个某个实体关系出现了,那么该位置值为1,否则为0,|R|表示关系的个数, W_{p} ∈ R^{d_{q}×|R|}为权值矩阵, ∥·∥_{1}为L1范数,所以这里最终的意思可以解释为所有出现的关系(relation)的embedding的平均。
②Answer Context ,所有与答案路径直接相连的实体或关系都视为答案上下文背景,其representation的计算方式为:
g_{2}(a) = \frac{1}{||u_{c}(a)||_{1}}\textbf{W}_{c}u_{c}(a)
其中 u_{c}(a)∈ R^{|C|×1}为维度大小为|R|的向量,即如果在这里某个实体或关系出现了,那么该位置值为1,否则为0,|C|表示在所有上下文中出现的实体和关系的个数, W_{c} ∈ R^{d_{q}×|C|}为权值矩阵, 为L1范数。
③Answer Type ,候选答案的类型是作为问题答案的重要线索,其representation的计算方式为:
g_{3}(a) = \frac{1}{||u_{t}(a)||_{1}}\textbf{W}_{t}u_{t}(a)
其中 u_{t}(a)∈ R^{|T|×1}为维度大小为|R|的向量,即如果在这个某个实体关系出现了,那么该位置值为1,否则为0,|T|表示在所有类型的种类个数, W_{t} ∈ R^{d_{q}×|T|}为权值矩阵, 为L1范数。
2.4 Model Training
在训练集中,对于问题q的每一个正确答案 a ∈ A_{q}(一个问题的正确答案可能不止一个),随机在候选答案 中选择k个错误的答案 a^{'},其loss函数可以构造为:
l(q,a,a^{'}) =(m−S(q,a)+S(q,a^{'})_{+}
其中m为margin parameter, (z)_{+} = max{0, z},那么最终的loss函数可以表示为:
min\sum_{q}{\frac{1}{|A_{q}|}\sum_{a∈A_{q} }\sum_{a^{′}∈R_{q}}}l(q,a,a^{'})
其中 |A_{q}|表示每个问题正确答案的个数。
因为对于每一个问题,其对应的正确答案可能不止一个,所以设定了阈值m,即loss函数中的margin parameter,当通过下列公式来判别是否选为正确答案:
{ A_{q}={ a|a∈C_{q} and max{ S(q,a)−S(q,a) <m }
三、实验结果

从下图可以看出, 该研究者提出了一种基于深度学习的MCCNNs模型, 并且该模型取得了更好的结果, 超过了当时其他学者的研究成果。此外, 在通道选择方面, 作者进行了详细的对比分析。通过去掉不同条件下的相关通道进行实验验证, 可以发现最具有重要性的是answer path信息, 因为该路径能够体现出最具有重要性的是answer path信息, 因为其充分获取了问题与候选答案之间的信息; 相反地, answer context所包含的信息量较大, 这就导致引入的相关噪声也随之增加

在上图左侧部分中显示了作者基于学得的问题表示函数f(q),用于评估问题中各个词的重要性程度。具体而言,在问题q = w_{1}^{n}中展示了一个例子,在此例中针对第j个词的重要性的计算方法为
e_i(w_j)其值等于函数f_i(w_1^n)与函数f_i(w_1\cdot w_j'\cdot w_j)之间的L2范数之差。
其中w_j'表示被替换掉的一个词(通常使用is、to、a等停用词),研究表明以wh-开头的词汇具有重要性;此外依赖于wh-词汇的动力学(dynamics)动词和名词同样重要。
图中展示了作者通过不同通道对问题进行表示的方法;通过计算各问题间的余弦相似度来推断相似的问题及其表现结果。

四、结论与思考
作者提出的multi-column convolutional neural network模型(MCCNNs),通过三个维度分别从答案路径、答案背景信息以及答案类型三个方面展开学习理解问题,在数据集WEBQUESTIONS上取得了显著效果。作者基于实验结果对模型输出错误进行了分析:
①在候选生成环节(Candidate Generation),由于Freebase Search API返回的候选列表中可能出现与真实正确答案无关的情况(例如问题中使用了缩写形式),导致模型难以准确捕捉关键信息;
②对于时间序列相关的问题(Time-Aware Questions),例如"Who is Johnny Cash’s first wife?"这类问题的答案可能会返回第二任妻子的信息(因为first/second等时间前缀难以被有效识别);
③在面对模糊或歧义性问题(Ambiguous Questions)时表现较差(例如"what has Anna Kendrick been in"这类问题无法明确指向电影角色),因为这些问题缺乏足够的关键词来准确描述其含义。
五、个人思考
