©PaperWeekly 原创 · 作者|龚俊民
单位|vivo AI LAB算法实习生
研究方向|NLP、可解释学习
个人专栏|除夕酱的炼丹炉
把分类粒度变细是亚里士多德在《形而上学》中的“给世间万物的存在基于语言来分层和分类”的进一步体现。我们只把世间万物的存在划分成人名,机构,位置,时间这些类别远远不够,就算划分为十几个、几十个、甚至上百个也是不足以映射真实的划分的,但是会更加接近我们的世界知识体系。
每多一层的粒度划分,我们实质在做的是让机器能像我们人递归调用自身一样,用语言去解释语言。给定它一个“苹果”,它能找到这个“苹果”的可能歧义,读音,出处,用法和指代对象,甚至各种典故和梗。能解释该实体的一切与之相连,便有了通过将实体连在一起来描述知识的知识图谱。这一期,我们来聊一聊细粒度实体分类。
Introduction
上一期我们提到了实体命名识别(Name Entity Regcognization)的五个难点(定义难,数量多,有歧义,边界靠词表,数据难标注),并综述了对应的解决方案。但在实际生产中,真正需要的实体类别,粒度往往会更为细致。
更细致的粒度意味着同一类型下的实体在语义上呈现出更紧密的距离。这种距离的紧密带来了一个实体对应多种不同标签的问题。上游识别的实体通常要对下游的信息抽取业务(如实体链接、关系抽取)提供支撑。
实体链接本质做的是消歧,解决的是一个实体对应多种类别的情况。而关系抽取做的是找到两个识别出的实体间的谓语关系。实体的细粒度标签能很大程度暗示候选的谓语关系。
显然越粗的实体粒度标签下,实体间的候选关系就越容易变复杂,相应的关系抽取任务做起来也会越难。于是实体命名识别因下游业务需要,会自然而然地过渡到另一个与之相近的任务——细粒度实体分类(Fine-Grained Entity Typing)上。
在 FGET 任务中,我们更倾向于使用 mention 去表示实体在上下文中的指代,因为它暗示着多标签实体的消歧步骤。FGET 任务要在实体被提及的情况下,根据上下文来给定 mention 一到多个标签。
难点一:类别体系不统一
这个看似简单的问题,却在过往的研究中被忽略。不同数据集的类别体系还是有不少差异的。
论文标题:OntoNotes: The 90% Solution
论文来源:NAACL 2006
论文链接:https://dl.acm.org/doi/10.5555/1614049.1614064
https://github.com/yhcc/OntoNotes-5.0-NER
它是一个多语种,承载了词性标注、共指解析和实体命名识别等多任务的数据集。它的命名实体部分的标注参照了《ACE 英文实体标注标准》[15] 和《ACE 中文实体标注标准》[16]。
在中文标准中,实体类型被划分成了 7 个大类别,往下再细分出了 45 个二级子类,以及往下更细的近一百来个三级子类。然而,即便存在一个这么详细的标注标准,细粒度实体类别体系这一块依然没有达成一致的统一。
▲ ACE 2005 中文实体标注标准一级、二级类别一览
论文标题:Fine-Grained Entity Recognition
论文来源:AAAI 2012
论文链接:http://xiaoling.github.io/pubs/ling-aaai12.pdf
代码链接:https://github.com/xiaoling/figer
在整理标签过程中,论文提到了三个挑战:
后人发现 FIGER 这个数据集存在几个版本类型树,会对结果产生巨大影响。而且 FIGER 这个数据集训练集巨大,但测试集只有 500 个样本,这会增大测试结果的随机性,因为不是所有的实体类型都在测试集中出现过。因此后人在使用它时,通常都会自己进行再整理和划分。
论文标题:Context-Dependent Fine-Grained Entity Type Tagging
发布时间:2014
论文链接:https://arxiv.org/abs/1412.1820
这篇论文参照了 FIGER 的做法,也是从 Freebase types 数据集中筛选出类别。但不同在,这些类别被重新组织成了更明确的层级关系。
论文标题:Finer Grained Entity Typing with TypeNet
发布时间:NIPS 2017
论文链接:https://arxiv.org/abs/1711.05795
代码链接:https://github.com/iesl/TypeNet
TypeNet 是一个自建的数据集。它从 freebase 中筛选出了 1081 个实体类型,和 860 个 WordNet 类型,进行重组对齐后,平均层级有 7-8 层。
▲ TypeNet 数据集的层级类别体系一览
论文标题:Ultra-Fine Entity Typing
发布时间:ACL 2018
论文链接:https://arxiv.org/abs/1807.04905
代码链接:https://github.com/uwnlp/open_type
UFET 构建了一个类别有一万多个的新数据集。它的任务是对给定 mention 进行多标签分类。
对于一个 mention 到的实体,研究者会用 WordNet 去拓展它的类别,比如使用同义词或基于 Common Sence 的释义词来作为候选类别。这样细粒度类别的获取就更接近我们人用语言解释语言的递归过程。而类别的层级从上往下是从抽象到具体的,体现出我们人思维的演绎归纳过程。
在 OntoNotes 中,一级标签 Other 占据了很大比重。这种划分实体的类别语义并不能很好地归纳类别内的实体语义,在实际生产中也很难去用。而 UFET 的超细粒度标签更接近实体的语义属性。这些属性可以支持下游任务更灵活的搜索和匹配。
比较以上 ACE,FIGER,OntoNotes,TypeNet 和 UFET 可以看出,实体类别无论是在类型数目,层级划分上都未得到一致的统一。
大都是研究者一拍脑袋理所当然的去划分了。每一种划分的方式都符合我们的世界知识体系一部分。但任意一种都或多或少都存在覆盖不全的问题。当然在业务中我们也无需用到全部的实体类型。
如果下游任务是推荐,用到较多的是地址、影视名,商品名,公司名,和人名等。其中很多类别都用不到。所以经济化考虑,不覆盖全是一种在时间精力上妥协。但不统一带来的问题是,现有模型需要重新在新的数据集上训练才能拿来用。
难点二:远程监督有噪音
当类别体系越完善,下游类别会非常多,这会给人工标注数据带来大问题。训练的语料不易构建,标注难度高不说,还有很多重叠和歧义。即便制定了标注标准,当类别从几十变成上万不等时,人工标注几乎变得不可行。而由于类别数量巨大,模型训练又需要更多的数据。
可以通过扩充知识库来提升召回。但知识库可能不完备。比如说电视剧,近一年的新剧知识图谱可能就未收录。
▲ 从知识库中得到的实体标签只有部分是符合上下文的
远程监督算法会带来大量噪音标签。任翔等人对该问题进行了细致分析,发现噪音标签对最终细粒度实体分类模型的性能影响很大。前人通常的做法是基于启发的把有冲突的类型的 mention 给删掉。但这样会显著减少训练集样本量导致整体表现变差。当类型数量越多,这种删除 mention 的方法就会表现越糟。
▲ 整个算法的框架
作者则提出需要一种去噪算法 LNR 来减少噪音标签的影响。实体分类模型会假设所有的标签都是正确的,并用在这些带噪音数据中得到的模型去预测未标注的 mention。LNR 则侧重于从自动得到的标注的 mention 中识别出正确的标注类型,可以看作是部分标签学习。
为实践 LNR 算法,一种基于语义嵌入的框架 PLE 来衡量实体类别和 mention 之间的语义相似度,从而筛选出语义更相近的实体类别。结果达到了当年的 SOTA 水平。
▲ 当用去噪算法筛选出正确标签去训练模型后,表现显著提升
论文标题:Put It Back: Entity Typing with Language Model Enhancement
发布时间:ACL 2018
论文链接:https://www.aclweb.org/anthology/D18-1121
代码链接:https://github.com/thunlp/LME
考虑到实体和标签类型其实都是文本,二者之间存在语义相关性。比如人名相关的上下文,可能有“出生于”、“就职于”,“饰演”等提示词。这篇论文的思路是用语言模型去找出这种关联来降噪。
▲ mention 的上下文中会有限定其候选类型的关键词
put it back 的模型分成了两个部分:
▲ 实验结果表明语言模型增强能将 F1 Score 提升1-2个点
论文标题:Improving Distantly-supervised Entity Typing with Compact Latent Space Clustering
发布时间:NAACL-HLT 2019
论文链接:https://arxiv.org/abs/1904.06475
代码链接:https://github.com/herbertchen1/NFETC-CLSC
论文的思路是用一种压缩隐空间簇的方法来绕开可能的标注噪音。其核心思想是利用无标签数据来约束特征抽取器的参数,使得其形成类内距离近,类间距离远的类簇,来帮助分类。
▲ 将 mention 和其上下文输入给模型后会得到每个类别的得分
▲ 将一个 batch 预测的得分与自身做点积,就能得到值为每个类别的两两相似性矩阵 A。这个矩阵可以看作是以类型为节点,以其相似性为权重边构建的邻接矩阵图
▲ 再根据如上两个公式,用图示的方式进行迭代更新直至收敛
▲ 结果表明,CLSC 在 OntoNotes 数据集和 BBN 数据集上都显著好于过去的 SOTA 模型。而且该方法在只有很少的单类型路径的干净数据上也有很好的鲁棒性
难点三:实体标签不独立
大部分实体分类器都是把实体的类别默认为互相独立的去分类,而忽略了实体类别间存在层级、语义相关的关系,且每个实体类别的重要性是不对等的。
比如演员与歌手的语义距离会比演员与政客的语义更近。这种相关性的忽略会导致分类器在样本量较多的实体类型上表现好,而在样本量较少的实体类型上表现差。
直觉上看,训练时某个实体被分类的标签与正确标签的语义较近,计算的损失应该比与正确标签语义较远的小。比如一个演员被误分类为歌手的损失要显著小于它被误分类为政客的损失。这种区分能够帮助模型更好地去减少更离谱的错误。
论文标题:AFET: Automatic Fine-Grained Entity Typing by Hierarchical Partial-Label Embedding
发布时间:EMNLP 2016
论文链接:https://www.aclweb.org/anthology/D16-1144
代码链接:https://github.com/INK-USC/AFET
对于实体类别相关问题,论文的做法是把样本表示和类型表示映射到同一个空间,这样就能通过计算样本和类型语义的相似度来进行分类。对于某个预定义好的实体类型,我们不能直接用其类型词的词向量去计算语义距离,因为比如 other 标签就很难反映与其他类型的差异。相对可靠的是寻找类型类别对应的典型实体。
▲ AFET 用到的文本特征,其中 head word 可通过句法解析获取
第二步,把训练数据集中的 mention 分成
类别相关的信号可以从两个方面获得:
对于noise set 中的样本,我们假设其候选的类别得分应该大于非候选类别的得分。
▲ 模型最终要最小化这两个损失的加权和
▲ rank loss 计算流程可视化
▲ AFET 结果一览,2016 年 SOTA 水平
论文标题:Neural Architectures for Fine-grained Entity Type Classification
发布时间:EACL 2017
论文链接:https://arxiv.org/abs/1606.01341
代码链接:https://github.com/shimaokasonse/NFGEC
这篇文章为细粒度实体分类模型构建了一个统一的框架。这也是后来著名的 Attentive 模型。它把 mention 实体中的词向量取平均后的表征,与经过 BiLSTM + Attention 之后的上下文表征一起拼接起来,经过 MLP 进行类别。
论文把每种层级关系都考虑为一个预测类别。比如 Person/artist/actor 存在三种粒度。它会把这个类别编码成三个向量。
第一级 Person 为一个 one-hot 向量,第二级粒度 Person/artist 为有两个索引位置为 1 的多标签向量,第三极粒度 Person/artist/actor 为有三个索引位置为 1 的多标签向量。
论文标题:Neural Fine-Grained Entity Type Classification with Hierarchy-Aware Loss
发布时间:NAACL 2018
论文链接:https://arxiv.org/abs/1803.03378
代码链接:https://github.com/billy-inn/NFETC
在远程监督的噪音中,有一类噪音需要特别留意,那便是 over-specific noise。远程监督的方法经常会给数据标出过于细致的标签。其中的部分过细标签并不能从上下文情景中推断处理。
比如周杰伦出生于台北中,候选标签可能会有歌手,创作人,演员,导演等各种标签。但这里的上下文只能将“周杰伦”这个实体推断为人类。之前的去噪算法其实都不能很好地去区分这种噪音,这是因为它们忽略了实体标签之间的层级依赖关系。
完备的细粒度实体类别体系非常有价值,但依赖于现有的垂类知识库。这条件只有大厂才能做。
远程监督噪音问题推荐用压缩隐空间簇去解决,提升效果显著且鲁棒性高。
基于阅读理解的命名实体识别方法适用于稍长的资讯类文本,但对于短文本,高层语义信息的加入提升效果不明显。
标签层级问题再推荐近两年来的三篇论文 [12],[13],[14]。直观地说,模型和人一样,更容易区分粗粒度实体,而相对容易混淆细粒度实体。[14] 的解决思路值得一探,通过在不同层级为排序模型设定不同的边际,再让解码器在类型层次结构上去搜索可以保障预测标签不违反层次结构。
在细粒度实体标注中,思考如何利用远程标注信息来让模型要区分的类别变少,从而减缓模型的学习曲线也是一个很值得研究的方向。直觉上看,二分类要比多分类要容易。在相同条件下,类别越少,模型要预测信息的困惑程度越低。
参考文献
更多阅读
#投 稿 通 道#
让你的论文被更多人看到
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学习心得或技术干货。我们的目的只有一个,让知识真正流动起来。
📝 来稿标准:
• 稿件确系个人原创作品,来稿需注明作者个人信息(姓名+学校/工作单位+学历/职位+研究方向)
• 如果文章并非首发,请在投稿时提醒并附上所有已发布链接
• PaperWeekly 默认每篇文章都是首发,均会添加“原创”标志
📬 投稿邮箱:
• 投稿邮箱:hr@paperweekly.site
• 所有文章配图,请单独在附件中发送
• 请留下即时联系方式(微信或手机),以便我们在编辑发布时和作者沟通
🔍
现在,在「知乎」也能找到我们了
进入知乎首页搜索「PaperWeekly」
点击「关注」订阅我们的专栏吧
关于PaperWeekly
PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。