2018-03-08 | Paper Notes | UNLOCK

Paper Notes:Domain Specific Entity Linking via Fake Named Entity Detection


image.png
于是引起了我的好奇心,探究效果实现的原理,庆幸的是清华大学将他们的工作都发表了论文,那这篇笔记就是我看到的第一篇他们的文章Domain-Specific Entity Linking via Fake Named Entity Detection,下面就来仔细分析他们实体链接的实现。

Named Entity Detection and Entity Linking Introduction

实体检测,是指从文本中检测出相关的实体;实体链接是将检测出的实体链接到已有知识库上,比如搜“王者荣耀怎么玩”,会检测出“王者荣耀”是一个实体,然后这个实体会被链接到知识库(一般自己构建或公开,这里用百度百科)“https://baike.baidu.com/item/%E7%8E%8B%E8%80%85%E8%8D%A3%E8%80%80/18752941”.
传统的实体链接方式是先检测出实体,然后作为输入进行实体链接,忽略了实体检测(NED)和实体链接(EL)二者间的关联性,文章提出一种新的思路来在垂直领域进行EL,将NED和EL组成一个联合模型,实验结果表明这种方式可以满足使用场景。

Challenges in domain-specific EL problem

  • Fake Named Entity
    假命名实体,这个概念是这篇文章首次提出的。给定一个文档(这里指一条文本数据)和一个特定领域的知识库,文档中会存在很多常用短语(Common phrases)可能链接到知识库的某个实体上,但并不是所有的短语都有对应的实体链接,那些能够成功链接到知识库上的短语称作真实实体(True Named Entity, TNE),不能够链接到知识库的短语称作假实体(False Named Entity, FNE).传统方法并不会考虑FNE的问题,而且对于垂直领域进行EL效果并不好。
  • Interdeependency
    现在流行的做法是将NED和EL用pipline 或sequencial的方式来设计,并不会考虑NED和EL直接的依赖性。如果NED选择了FNE,那么肯定会影响EL最终效果。
    检测FNE和将正确的短语文本(mention)是很重要的,在垂直领域中textual mention 会比较有歧义性,必须考虑同时考虑NED和EL。

Introduce fundamental concepts

  • Domain-Specific Knowledge Base
    将知识库定义为$DSKB={C,E,P,R}$,其中C表示概念集合(concepts)比如这里是影视知识库,那么概念可以是演员、电影、制片人等;E是概念下面的实体;P是描述概念和实体的属性结合比如演员名字、电影上映时间等;R是一个三元组集合,每个元素都是一个三元组,描述的是两个实体间的关系或实体和概念间的关系。文章中提到的影视知识库数据来源于百度百科、豆瓣,包括23个concept,91个properties,多余70w个实体,1000w个三元组。
  • Mentions and Linked Entites
    这里的mention都是一些可能被链接到实体上的文本短语,这些短语都是有小于5个字的词组成。作如下内容定义,$M=\{m_1,m_2,..,m_{|M|}\}$ 表示mention的集合,$E(m)=\{e_1, e_2,…,e_{E{(m)}}\}$ 表示候选mention m可能链接的候选实体集合;$e_m \in E(m)$ 表示m真是链接的实体.

  • Fake Named Entity
    定义,表示没有对应实体链接的mentions,,表示可以链接到实体的mention集合。

  • Context Mention and Entity
    定义在同一篇文档或同一个词窗口内除m以为的mention记为,但这个集合中的mention并不一定有对应的实体链接,记可能被mention链接的实体集合为
    定义完所需要的符号之后,那么一起来看下文章具体的实现思路。

  • Preprocessing
    首先根据构建一个dictionary D,它包含所有实体的各种形式【待添加】。词典是key value形式,key实体表面形式的一个列表,value是这些形式对应的实体集合,之后根据文档d生成一个mention集合(ngram, n < 5),然后再D中进行查询,如果在key中出现则加入到mention集合,这样就生成了一个mention集合M,在查询key的同时会把对应实体加入到E(m).

    Algorithm

    整个算法思路是这样的,首先根据标注的数据分别训练EL模型和NED模型,首先构造出两个特征向量(下文会详细介绍),利用分类模型训练出两个权重向量,和,NED模型输出表示一个m是实体的confidence,EL模型输出表示的是一个m链接到一个实体e的confidence,之后可以通过模型相互迭代来不断提高confidence,增最终的链接准确率。整体架构图如下,
    image.png

Training

将NED 和EL模型当做一个二分类进行建模,文章中提到采用SVM算法。首先要做的就是整理训练集,如果m能真正链接到实体集$E(m)$中的实体$e_m$上,则$(m,e_m)$为positive sample,而m与其他实体实体组成的实体对则称为negative sample。EL和NED模型可以表示为,

对于EL模型,对候选实体集$E(m)$中所有实体进行计算,然后选择confidence最高作为最终m最终的链接实体;对于NED模型,对一个文档生成的所有mention进行计算,根据计算的score判断它是否是一个真实的实体。因此可以通过计算一个模型的输出来迭代另一个模型的特征,从而提高整体效果。

Features in EL Model

  • Popularity
    这个指标主要是根据具体的场景进行设计,文章中所研究的是影视领域,主要数据为评论数据,因此人们更容易讨论流行和经典的影视作品,计算公式如下,其中,$count_m(e)$表示的是mention m链接到百度百科中实体的个数,比如“王者荣耀”一词,在百度百科中链接到实体“王者荣耀(2015年腾讯天美发行的MOBA手游)”的次数。(这里有点不理解的是,如果这个特征描述的是mention链接到百科实体e的次数,那这个次数不是1吗,会存在一个mention多次链接到同一实体的情况吗?)文章中同时提到这个特征可以离线进行计算。
  • Context Relatedness
    上下文关联性,同一篇文中的mention更倾向于讨论具有相同语义的一个或多个topic,基于这个原则出发,设计该特征,通过计算候选实体$e \in E(m)$(文档计算出的最大score的实体?)和其他context entites(其他mention对应的实体),具体计算公式如下:
    image.png
    其中是指前一次EL模型mention m得到最大score的实体,记作$e_{top}(m_c)$.在计算context relatedness时采用两种方式进行计算,一种是WML基于维基百科的超链接结构,计算公式为$WML(e_i, e_j)=\frac{log(max(|E_i|,|E_j|))-log(|E_i \bigcup E_j|)}{log(|W|)-loog(min(|E_i|,|E_j|))}$,$E_i$和$E_j$是指链接到知识库中实体$e_i$和$e_j$的实体集合,W是知识库中所含实体的总数。另外一种方式是通过将实体$e_i$和$e_j$用bag-of-words进行表示然后计算Jaccard distance。
  • Content Similarity
    这个特征定义的是mention和它对应的entity之间的相似度,通过计算Jaccrad distance得到。

Features in NED Model

  • Link Probability
  • Link Certainty
  • Coherence

评论加载中