20180315-16KG串讲
一、知识图谱表示方法
s:subject 图谱实体
p:predicate 图谱关系、实体属性
o:object 图谱实体 或者 string、float等
实体关系<章子怡,丈夫,汪峰>
实体属性<章子怡,出生,1979-02-09>
知识图谱的过程就是从s和p找到o,或者s和o找出p;
二、知识抽取
用一批标注好的三元关系,去页面通过匹配找出句子,(不管是对的还是错的,我们认为对的占大多数)。
用三元关系和句子训练文本分类器。
三、命名实体识别
作用:识别出特定领域的实体、为关系抽取做准备、为在图谱正确查找实体做准备。
1.规则匹配
定义规则:比如 收购(NP.*)公司
1. 简单直观、容易理解、精度高
2. 应用非常广泛,例如freebase和企业图谱[7]均以此方法构建;
3. 召回率低,人力成本较高
2.条件随机场CRF
源句子: 百度收购 渡鸦科技有限责任公司
• O:无关的词
• B:代表一个实体的开头
• I :代表一个实体的中间
• E :代表一个实体的结束
分类问题,对句子中的每个词预测词的真实类别(OBIE)
比如:
•标注: O O B I I I E
•源句子: 百度收购 渡鸦科技有限责任公司
当前词yi的概率与前一个词yi-1有关
U00:百度(以为0这位置是“渡鸦”这个词,那么前两个词是“百度”这个词)
U01:收购
四、图谱在QA的因共用
应用:图谱知识表示为知识路径,将问答任务转化成Q与路径的匹配程度计算
最大难点:如何衡量问题与答案的匹配程度
例子:
question:阿凡达什么时候在英国上映?
step1:通过Freebase API,完成NER和NED
1.识别问题中提到的实体:NER(Named Entity Recognition)技术,识别出阿凡达(电影or小说)、英国(国家)。
2.把实体正确的链接到知识库:命名实体消歧技术NED(Named Entity Disambiguation),
消歧结果为电影《阿凡达》
step2:
通过API检索Question得到候选的实体(NER),选择API返回的第一个结果(NED)
step3:根据实体召回三元组:<阿凡达、上映、 E> <E、时间、2009-12-20> <E、地点、英国><E、时间、2011-12-20>
这里的E表示事件实体,就是图谱中的s
step4:我们把三元组组合起来生成候选答案:
生成候选答案:
- <阿凡达、上映、 E 、时间、2009-12-20 >
- <阿凡达、上映、 E2、时间、2011-12-20>
- <阿凡达、上映、 E 、地点、英国>
step5:计算
采用CNN把问题embedding成语义向量:
CNN网络结构,具体可参考TextCNN
- Lookup 层:句子转化成词向量矩阵
- 卷积层:句子局部信息embedding
- 最大池化层:保留最明显的句子特征
输入问题,输出三个问题向量(???)
- 知识路径向量
- 上下文向量
- 答案类型向量
理解答案的语义,答案embedding成语义向量
<阿凡达、上映、 E 、时间、2009-12-20 >
• 答案路径向量
• 平均(向量<上映>+向量<时间>)
• 答案上下文向量
• 平均(向量<阿凡达>+向量
• 答案类型向量
• 平均(向量<上映-动词类>+向量<时间-时间类>)
计算答案得分,即答案与问题的匹配程度
f是问题向量,g是答案向量,S是问题向量在答案向量上的投影。
目标函数:候选答案中随机选择k个作为负例。采用??目标函数。
线上应用:可选择得分最高的答案作为输出