您的位置:首页 > 运维架构

论文阅读笔记之How to Keep a Knowledge Base Synchronized with Its Encyclopedia Source

2017-10-04 00:25 621 查看
论文来源

阅读笔记

总结

论文来源

  这段时间我一直游走在知识图谱等领域,看了一些论文,对其中关于知识库更新的工作产生了兴趣。“How to Keep a Knowledge Base Synchronized with Its Encyclopedia Source”这篇论文发表在今年的IJCAI上,作者团队介绍了他们在知识库更新方面的工作——通过构建了预测器去预测可能需要更新的实体,从而避免了全局更新,高效地实现知识库的更新。

阅读笔记

  在这之后的三段是对现状与该论文工作的简要介绍,细节部分将在后面的段落展开。

  大多数知识库的构建往往离开不了从百科网站中抽取的信息,通过此方式构建的知识库往往具有较高的准确度和较宽的覆盖面,被广泛用于推荐系统、摘要等。其中绝大多数知识库面临着实时性的问题,失效的信息会限制其应用。在这些知识库中,一些旧词没有及时更新,比如现在的特朗普不是一个商人而是美国总统;即便是百科网页中已经出现的新词,也不一定会出现在知识库中,比如iPhone8。由于很多知识库都是从百科网站抽取而来,并且网站的内容通常由志愿者人工更新,这意味着高质量的更新内容,所以选取在线百科网站作为更新源。

  目前存在两种方法去更新知识库,第一种方法是利用百科网站开放的最新数据,如维基百科的开放数据,但是只有少数网站提供这样的服务,并且有一个月以上的延时;第二种方法是通过爬虫爬取百科网站的内容,往往需要爬取数十亿的网页。无论选择上述哪种方法,都需要下载数量量以GB为单位的数据,占据了很大的网络带宽。因此,“如何更新知识库”就转变为“如何使知识库与百科网站保持同步”。

  事实上,并不是所有实体都需要更新,一些稳定的实体往往具有短时间内不会改变的属性,比如牛顿。只有一些实体(作者称之为“hot entities”,笔者翻为“热词”)才会经常更新其属性,例如特朗普。只需要更新这部分热词,就可以满足我们更新知识库的需要。这样,“如何使知识库与百科网站保持同步”就转变为“如何估计一个百科网站中某个实体的更新频率”。

  下面就是整个工作的细节部分,涉及一些数学推导以及伪代码。

  由于网络显示和百科网站的反爬虫机制,不得不设定一个限制K(每天爬取的实体数≤K)。在限制K的情况下,要最大化需要更新的实体数,下列公式包含约束条件和目标。其中,R表示爬取的实体集合,K表示最大限制,tn(x)表示x在在线百科最后更新的时间,ts(x)表示x最后同步的时间。当x没有存在于当前的知识库中,ts(x)记为负无穷。



  一个好的更新策略重点在于一个实体是否在最后一次同步之后被更新。但是即便假设存在一个预测器可以做出判断,但是每次在知识库中去寻找这样的实体会带来很高的复杂度,并且无法更新不存在于知识库中的实体。基于热词的方法只需要更新很少的一部分实体,就能达到较好的效果,之后在实体扩展部分,召回率将进一步提升。

  基于热词的方法将包括以下几个部分:发现种子实体、种子实体同步、扩展实体、同步扩展实体。下图是该更新系统的伪代码。



一、种子实体的发现

  准则一:如果一个实体频繁地出现在搜索引擎、在线社区、网络新闻,它的内容很有可能会有改动。

  在这样的准则下,从热点新闻标题、搜索引擎的关键词、 在线社区的热点获取相关句子或词组。为了获得较高的召回率,句子或短语中的所有分词结果会被详尽地列举,并被放入百科中搜索其对应实体。例如,从“中国喜剧演员周立波被逮捕”这一标题中可以获得分词结果“周立波”和“立波”,尽管搜索“立波”并不会发现对应实体(这样做并不会带来过大的开销,因为每个数据源每天提供的热门句子或者词组总是有限的)。

二、扩展实体

  准则二:一个实体和一个最近被更新的实体有语义关系,其内容很可能被改动。

  种子实体具有很高的准确性,但召回率还有一定的提升空间,这时候就需要扩展实体。例如,特朗普夫人的身份随着特朗普成为美国总统而发生变化,尽管其在网络的出现频率很低。

三、同步扩展实体

  准则三:如果某个扩展实体并不存在于现有的知识库中,其享有最高的优先权去被同步。

  对于获得的扩展实体,将其分为两类,一类为已存在于知识库中的实体,对于这类实体,将在后续利用预测器预测其更新频率;另一类为未存在实体,对于这类实体将基于准则三加入知识库。

  通过实验发现只有部分扩展实体会被经常更新,为了减小开销,制定了准则四。

  准则四:在百科全书网站上一次同步后具有较大预期更新次数的实体,在网络访问预算约束下,享有较高优先的同步机会。



  上述公式中的u(x)为实体x在上次同步的更新次数,P(x)为预测器预测的更新频率,ts(x)为实体x上次同步的时间,如果x不在当前的知识库中,ts(x)为负无穷,这一假设则与准则三吻合。实体x的E[u(x)]值越大,其越应该优先被同步。

  接下来的部分主要围绕更新频率预测器(作者在文章称之为“Update Frequency Predictor”),该预测器的结果也是上文P(x)的来源。

  第一种想法“是否可以利用历史更新信息去做预测?”,这是基于基线的预测器。许多百科都有完整的历史更新信息,如果利用历史信息,就意味着更新率 λ 独立于时间,是一个不变的量。

  假设一:在一定间隔N内,一个实体在百科网站更新的次数服从泊松分布。



  可以通过下面的式子去估计λ,其中C(x)为某段时间内实体x的更新次数,分母是时间间隔,整个式子的值可以近似代替准则四中的P(x)。



  但是这种方法有不少缺点。第一,很多实体的历史比较短,所以基于历史更新信息的估计并不准确。第二,实体的更新频率往往随着时间变化而变化,某种程度上并不满足先前的假设——服从泊松分布。

  第二种想法是利用一些特征去训练监督学习的预测器。

  作者选用线性回归随机森林两种方法,使用以下信息作为特征。其中,2-7号特征使用log(1+x)做标准化

1.存在周数:描述实体存在于百科网站的时间,越短的时间意味着更大被更新的可能性。

2.总更新次数:总共被更新的次数,次数越多越可能被更新。

3.被访问的次数:越多的访问次数越可能被更新。

4.所有的超链接:超链接数越多意味着越容易受其他实体或者其他数据源影响。

5.其他实体的超链接:其他实体的改变会影响到实体本身。

6.网页长度:越长的网页,其被更新的可能性越大。

7.主要内容的长度

8.历史更新频率:按周为单位的平均更新频率,与基于基线的方法中类似。

   特征和标记< x1(e),x2(e), ……xk(e),y(e) >,其中xi(e)表示实体e的第i个特征,y(e)表示在时间戳T内的平均更新频率(这里的T取一个月,平均频率以周为单位)。

总结

  详细的实验结果可以自行参照全文,下面是转自论文原文的在真实世界的测试结果。



  在这里做一个小小的总结和回顾吧。由于周围的世界总是瞬息万变,一些知识不能一成不变,知识库同样面临着时效性的问题。往往针对整个知识库进行更新,无论在时间还是网络带宽等多方面都需要巨大的开销,也是没有必要的。作者巧妙地将知识库更新这一问题转化成如何发现需要更新的实体,也就是文中的”hot entity”,接下来就是寻找特征以及使用监督学习的方法去训练一个基于监督学习的更新频率预测器。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐