KBQA学习笔记

评价标准:召回率,准确率,F1-Score

方法:自然语言查询–>意图识别(Intention Recognition)–>实体链指(Entity Linking)+关系识别(Relation Detection) -->查询语句拼装(Query Construction)–>返回结果选择(Answering Selection)

KBQA除了 基于模板的方法 之外,还有 基于语义解析基于深度学习 等方法

  • 三元组表示
    “奥巴马出生在火奴鲁鲁。” 可以用三元组表示为 (BarackObama, PlaceOfBirth, Honolulu)
    (实体entity,实体关系relation,实体entity)

技术基础

一、词语的向量化表示

  • 离散表示 One-Hot模型(维度高造成很大开销,词与词关系隔离)

  • 分布式表示 思想:词的语义可以通过上下文信息确认,通过无监督学习,将文本信息映射到定长的向量表示

  • Word2Vec两种模型
    CBOW模型(Continous Bags-of-Words Model) 利用上下文预测目标词语
    Skip-Gram模型(Contin-uous Skip-Gram Model) 利用当前词语预测上下文
    CBOW复杂度公式 ND+DlogvN*D+D*{\log{v}}其中N是上下文窗口大小,D是词向量维度,V是词典大小
    模型最大化目标函数
    Lcbow=1Tt=1Tlogp(ωtContext(ωt))L_{cbow}=\frac{1}{T} {\sum_{t=1}^T}{\log{p}({ω_t|Context(ω_t))}}

    Skip-Gram模型 利用当前词语预测上下文
    Skip-Gram复杂度公式 C(D+Dlog(V))C*(D+D*log(V))
    模型的最大化目标函数
    LSkipGram=1Tt=1Tcjc,j0logp(ωt+jωt)L_{Skip-Gram}=\frac{1}{T}{\sum_{t=1}^T}{\sum_{-c≤j≤c,j≠0}}{\log{p}({ω_{t+j}|ω_t})}

二、神经网络

如图所示,这是一个三层神经网络模型,包括输入层(input layer)、隐藏层(hidden layer)、输出层(output layer)
KBQA学习笔记

2.1 卷积神经网络(CNN)

如图所示,卷积神经网络本质上是由卷积层、池化层、全连接层构成的深层神经网络。通过卷积层、池化层的结合,构成多个卷积组,然后逐层提取特征信息,最后通过全连接层得到最终的特征信息。
KBQA学习笔记
卷积神经网络主要特点是降采样局部连接、以及权值共享

  • 局部连接:通过感知小部分的区域来降低参数数量,提供特征拟合的能力
  • 池化层:更进一步降低输出参数数量,提高CNN的泛化能力
  • 权值共享:使一些基本特征能够被重复使用,共享网络参数并提高神经网络的训练效果

2.1.1 卷积层

是指“滑动窗口”与矩阵重叠局部区域间的线性运算,如图所示。
KBQA学习笔记
图中的“滑动窗口”(也叫卷积核)大小3*3,运算过程:滑动窗口从左上方开始,由左往右,由上至下,单次移动方向不变,距离(步长)固定。根据卷积核大小以及参数的不同,设置不同的卷积核可以提取到不同的特征。
以上图所示,卷积运算的公式是
Z=i=1dj=1dXm+i,n+jWi,j+bZ=\sum_{i=1}^{d}{\sum_{j=1}^{d}{X_{m+i,n+j}W_{i,j}}+b}
其中W是卷积核,X代表输入的矩阵向量(图像,文本),b是偏移参数,D是窗口的高度和宽度,m、n代表“滑动窗口”局部区域的索引图右边展现的是卷积运算结果矩阵Z。卷积层的最终输出公式:Ci,j=g(Zi,j)C_{i,j}=g(Z_{i,j})
其中g(·)表示signmoid、tanh、relu等**函数。

2.1.2 池化层

池化层对的任务是从输出中提取局部特征,通过筛选减少参数量。一般采用的Pooling方法有MaxPooling(取局部最大值,也叫最大池化法)、Mean-Pooling(取局部平均值,也叫平均池化法)等。
Pooling操作的好处:
①可以使神经网络的最终输出可以固定长度
②输出可以很方便地加入到另外的神经网络

2.2 循环神经网络(RNN)

利用有向循环网络的结构来充分保留序列信息,记忆模型历史信息。在RNN中,当前神经元的输出跟序列中的其他神经元的输出相关。RNN中t时刻的节点与t-1时刻节点相连接,使隐藏层同层的节点不在相互独立。如图所示,上一时刻的输出与当前时刻输入一起送入当前节点进行计算。
KBQA学习笔记