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复杂度公式 其中N是上下文窗口大小,D是词向量维度,V是词典大小
模型最大化目标函数Skip-Gram模型 利用当前词语预测上下文
Skip-Gram复杂度公式
模型的最大化目标函数
二、神经网络
如图所示,这是一个三层神经网络模型,包括输入层(input layer)、隐藏层(hidden layer)、输出层(output layer)
2.1 卷积神经网络(CNN)
如图所示,卷积神经网络本质上是由卷积层、池化层、全连接层构成的深层神经网络。通过卷积层、池化层的结合,构成多个卷积组,然后逐层提取特征信息,最后通过全连接层得到最终的特征信息。
卷积神经网络主要特点是降采样、局部连接、以及权值共享
- 局部连接:通过感知小部分的区域来降低参数数量,提供特征拟合的能力
- 池化层:更进一步降低输出参数数量,提高CNN的泛化能力
- 权值共享:使一些基本特征能够被重复使用,共享网络参数并提高神经网络的训练效果
2.1.1 卷积层
是指“滑动窗口”与矩阵重叠局部区域间的线性运算,如图所示。
图中的“滑动窗口”(也叫卷积核)大小3*3,运算过程:滑动窗口从左上方开始,由左往右,由上至下,单次移动方向不变,距离(步长)固定。根据卷积核大小以及参数的不同,设置不同的卷积核可以提取到不同的特征。
以上图所示,卷积运算的公式是
其中W是卷积核,X代表输入的矩阵向量(图像,文本),b是偏移参数,D是窗口的高度和宽度,m、n代表“滑动窗口”局部区域的索引图右边展现的是卷积运算结果矩阵Z。卷积层的最终输出公式:
其中g(·)表示signmoid、tanh、relu等**函数。
2.1.2 池化层
池化层对的任务是从输出中提取局部特征,通过筛选减少参数量。一般采用的Pooling方法有MaxPooling(取局部最大值,也叫最大池化法)、Mean-Pooling(取局部平均值,也叫平均池化法)等。
Pooling操作的好处:
①可以使神经网络的最终输出可以固定长度
②输出可以很方便地加入到另外的神经网络
2.2 循环神经网络(RNN)
利用有向循环网络的结构来充分保留序列信息,记忆模型历史信息。在RNN中,当前神经元的输出跟序列中的其他神经元的输出相关。RNN中t时刻的节点与t-1时刻节点相连接,使隐藏层同层的节点不在相互独立。如图所示,上一时刻的输出与当前时刻输入一起送入当前节点进行计算。