最近在干嘛

之前生活在被别人有意无意限制的社交圈子当中,每每于虚情假意和狡诈中觉得压抑。最近来到广阔的天地呼吸新鲜空气,才明白那些社交毒蛇其实可以一脚轻松踩死。换句话说,做自己的事情真的无须理会别人,刺探和试探也敌不过光明磊落。

CIKM的文章被拒其实是计划中的事情。这篇稿子火力全开,攻击了几个我很讨厌的 entity retrieval 方法论,只想激起一点涟漪。所以最后连 review 都没看。这一年自评对这个领域的微小贡献主要有二:一是强调了 knowledge graph structure 的独特作用,二是尽绵薄之力发了一些简单的论文,试图引起关注,造一个时势。在我觉得势单力孤的时候,正巧碰上了 1st International Workshop on Entity Retrieval (EYRE ’18).

说实话我们对这个新研讨会的背景感到有点疑惑。但是转念一想,既然有人愿意召集同行讨论 entity retrieval 这件事,不管意图如何,都是值得赞赏的事情。所以 I will attend this workshop.

Comment On Recent Progress Of Ad-Hoc Entity Retrieval 2

我写文章的时候只引用那些我已经消化过的论文。我引用新文章的时候比较谨慎,因为没时间去了解具体的内容。暌违一年,重新在 google scholar 上浏览了一下最近都有哪些新东西。

Comment On Recent Progress Of Ad-Hoc Entity Retrieval 1 在这里: https://lxsay.com/archives/591

Exploiting Entity Linking in Queries for Entity Retrieval

(ICTIR 2016. Faegheh Hasibi, Krisztian Balog, Svein Erik Bratsberg)

这篇文章把语义标注 (semantic annotation) 整合进了 Markov Random Field 这个框架内,简单的来说就是统计语义标注 在 pseudo document 中的频率,然后通过一个平滑函数 (smoothing based feature function) 来刻画 semantic annotation 的分数。

但我觉得这篇文章更重要的在于它暗示了 Knowledge-based Question Answering 和 entity search 的联系。 这个模型在 Fielded Sequential Dependence Model 的基础上使用了一个称为 “Selective Top Fields” 的技巧:给定一个 query,模型首先会通过计算 query term 的 mapping based probabilities across the whole collection 然后选择分数最高的top-k fields计算 query 和 entity profile 之间的分数。这其实是 graph-based question answering 的方法:给定一个问题,Knowledge graph 中每个关系的权值定义为该问题和该关系的语义相似度,最后选择一条权值最优的路径输出作为答案。 这篇文章提出的模型可以看成是能处理 1-hop 关系的 retrieval-based question answering model.

Ranking Entities for Web Queries Through Text and Knowledge

(CIKM 2015. Michael Schuhmacher, Laura Dietz, Simone Paolo Ponzetto)

当信息检索的研究者说他们对 “knowledge graph” 感兴趣的时候,他们所指的 “knowledge graph” 其实是以下三种的组合:

  1. Knowledge graph = Freebase
  2. Knowledge graph = Freebase or DBpedia or Yago or …
  3. Knowledge graph = Wikipedia

这篇文章考虑的是第2种和第3种的组合,使用基于 learning to rank 的方法。特征主要分成 query-mention features, query-entity features, entity-entity features 还有 knowledge base retrieval. 这个框架既考虑了 knowledge graph 的结构(比如考虑 entity mention 到 candidate entity 的路径),也考虑了文本的内容,水准不俗。比较可惜的是这些特征只停留在“统计个数”这样的层面,没有进一步地理解查询的语义(比如说查询“面积最大的国家”就需要理解“最大”的概念,很多 question answering 的模型都可以做到这点)。这篇文章的引用次数不是很多,没有得到应有的关注,个人觉得很可惜。

Michael Schuhmacher 是少数几位懂得运用 Knowledge graph structure 帮助提升 information retrieval performance 的研究者。其他人也有尝试,但我觉得都只能算是浅尝辄止,顾左右而言他。能够把 Graph Algorithm 和 IR 结合得这么好的人屈指可数(中国大陆的 Gong Cheng 也是一位善于使用图论方法的研究者,但是现在这方面的文章比较少,还看不出成熟的思路)。这也显示出德国人在方法论上面深受欧陆古典哲学的影响:重视整体和理性。第二作者的加入弥补了这篇文章过于注重结构忽视文本信息的弱点。

“Exploiting Entity Linking in Queries for Entity Retrieval” 的作者认为这篇文章的结论 “somewhat inconclusive”。我觉得情有可原,因为 2015 年的时候 entity search 的 benchmark dataset 还比较少。说实话这个模型很值得在现在的数据集上复现。

Intent-Aware Semantic Query Annotation

(SIGIR 2017. Rafael Glater,  Rodrygo L. T. Santos and Nivio Ziviani)

基于 learning to rank 的方法。测试数据用的是 DBpedia-Entity v1,因为 sigir 2017 那个时候 v2 还没有发布。这篇文章比 “an empirical study of learning to rank for entity search” 好的地方在于考虑了语义标注的信息 (semantic annotations),简单的说就是统计了 query 和 entity profile 里面出现了多少 knowledge graph 里面的 type 和 relation 的信息,然后当成特征输入 learning to rank 的框架。本质上还是 term-based (word as a term / semantic annotation as a term) 的语言模型方法,对复杂的查询无能为力。但是我觉得这个框架的设计不错,有启发。作者没有开源,本人准备自己实现一个当作以后的 baseline 。

最后想说下(和这篇文章无关), learning to rank 虽然是实证有效的方法,但也分好坏。好的 letor 框架能够精细的处理输入,让整体锦上添花;坏的 letor 框架缺乏对具体问题的洞察(insight),堆砌特征,好像是在指挥一堆垃圾为它们自己建一个垃圾厂。

Interpreting Fine-Grained Categories from Natural Language Queries of Entity Search

(DASFAA 2018. Denghao Ma,  Yueguo Chen, Xiaoyong Du, Yuanzhe Hao)

这篇文章的框架和 “Improving Context and Category Matching for Entity Search” (Yueguo Chen et. al. ) 里面提出的没什么区别,但是用到的语言模型感觉受到了 “Query modeling for entity search based on terms, categories, and examples” 这篇文章的影响。其次更新了一些处理 Wikipedia Category Tree 的细节,定义了一些新的特征。另外在新的数据集上面更新了一下结果。

Leveraging Fine-Grained Wikipedia Categories for Entity Search

(WWW 2018. Denghao Ma, Yueguo Chen, Kevin Chang and Xiaoyong Du)

这篇文章的框架和 “Improving Context and Category Matching for Entity Search” (Yueguo Chen et. al. ) 里面提出的没什么区别,但是用到的语言模型感觉受到了 “Query modeling for entity search based on terms, categories, and examples” 这篇文章的影响。其次更新了一些处理 Wikipedia Category Tree 的细节,定义了一些新的特征。另外在新的数据集上面更新了一下结果。  (灌水小能手:)

可能是受到了自己导师的影响,这篇文章的作者还是主要在 INEX 2009 之类比较老的数据集上面进行测试。如果能转到 DBpedia-Entity v2 上就更好了(不过这样的话需要和 “On Type-Aware Entity Retrieval” 正面比较,感觉比较悬)。

中国人民大学的这个研究小组这几年对 entity search 问题有独到的贡献,比如用提取维基百科的分类标签(category)的关键词和描述词,并把它们按照自己偏序重新组合成 category tree。但我还是感觉他们使用的方法过于复杂,虽然目前在他们的文章里表现不错,但如果换一个测试数据集的话,很难做出针对性的调整。换句话说,工巧但是略欠“大局观”。BM25 和 sequential dependence model 广受欢迎不是因为它们总能够达到最好的结果,而是设计足够鲁棒,足够简单。在不同的问题上都可以做出针对性的调整。

RWRDoc: Random Walk with Restart based Entity Documentation

(ESWC 2018. Takahiro Komamizu)

这篇文章提出了一种新的表示 Entity profile 的方式。每个 entity 的文本都可以表示成一个 bag-of-words vector 或者 TF-IDF vector,考虑到 entity 在 knowledge graph 中与其他 entity 相连,所以它们的文本应该会有一些相关性,于是作者认为每个 entity 的向量表示都是自身与相关 entity 的向量的线性加权和。我认为,作者把这个建模为随机游走是因为如果想要求解这个大型线性方程的话必须假定这样的表示法能够收敛。这种思想来源于 relevance propagation/page rank 这些传统的方法论,不同的是这篇文章传递的是 entity 的 bag-of-words vector 而不是 relevance score。

另外,这篇文章上所有 baseline 的结果都是从 DBpedia-Entity v2 的发布论文里面复制过来的。这其实提出了一个问题:每个人的建的 index 质量都不一样,于是 baseline 的结果也变得有好有坏。这个领域是否需要一个公开的 standard index 让研究者可以比较不同的方法呢?

Entity Retrieval in the Knowledge Graph with Hierarchical Entity Type and Content

Full Text at ACM Digital Library: https://dl.acm.org/citation.cfm?id=3234963

github: https://github.com/linxinshi/EntityRetrievalPAS

我的文章 “Entity Retrieval in the Knowledge Graph with Hierarchical Entity Type and Content” 被 ICTIR 2018 这个会议接收了。

这是我的 “entity retrieval trilogy” 的第二篇。相比第一篇,这篇文章把之前的方法扩展到 Markov Random Field 上,使得 sequential dependence model 也可以使用结构平滑。另外把维基百科的文章解析成一个树状的形式,仍然使用结构平滑来计算查询和文章的相关程度(考虑一个从根到叶子的路径,最后的结果比整篇文章用 bag of words 表示的结果要好,这其实说明文本中有相当多的信息都被传统的语言模型忽略掉了)。这种推广并不是很难,但这篇文章是想强调在不同的结构化信息来源中信息检索模型可以通过以路径为中心的统一框架来寻找答案。“路径”的概念被推广到一个单纯的序列,序列中的相邻元素不一定是在具体的结构(比如 knowledge graph/type taxonomy)中相连的。只要使用者认为把它们组合在一起是有意义的,就可以使用结构平滑。另外结构平滑还可以用在其他更复杂的模型当中。

这篇文章还有一个细节是我把 BM25F 拿来当 baseline。之前这个模型在 dbpedia-entity v2 上取得了最好的成绩,导致这个领域的同行有一段时间意志消沉,觉得之前提出的模型都成了废柴。本人这次把它的固定参数版本单独拎出来吊打了一遍又一遍,to vent for my peer researchers。。。(原来使用的是 coordinate ascent 来学习参数,但是仍然和我的模型有差距)

最后感谢我们家 Sam 的劳动,各位 reviewer 还有 chair Grace & Fabrizio。

语言模型的偏移

为了描述文档中词的分布,之前的研究者提出了很多的语言模型(比如 N-gram)。

一方面来说,这些模型只是近似地描述了一类分布,所以通过求解这类模型得到的分布只能说是基于对应的语言模型假设下最佳的结果。

另一方面,实践中经常会遇到这类情况,我们选定了一个语言模型来描述特定的文档集合的词的分布。但是有时候,工程人员并不完全依照这些模型的经典形式,而是喜欢在模型里面加入一些微扰项作为某种“分布在当前数据集上的偏移”,以便取得更好的结果。 这种现象反映了语言模型作为信息检索的核心的某些深层次问题。

Recent thoughts on entity retrieval

This area needs more publications to demonstrate its essence and boundary. I am tired of being asked “what is the difference between ad-hoc entity retrieval and (knowledge based) question answering ?” or “Is what you have done similar to Siri that can answer users’ questions ?”

I emphasized the term “structure-aware” in my previous papers on entity retrieval. From my perspective, a typical entity retrieval framework shall degenerate into a document retrieval model if it has no structure to utilize.

The research on entity retrieval is, to some extent, the research on document retrieval in the context of a certain kind of knowledge structure  (e.g. knowledge graph, rdf, wikipedia articles …).

Entity Retrieval via Type Taxonomy Aware Smoothing

Github: https://github.com/linxinshi/EntityRetrievalTAS

我的文章 “Entity Retrieval via Type Taxonomy Aware Smoothing”  被 ECIR 2018 这个会接受了

这算是我的第一篇正式的比较有意义的论文。之前几个月因为参加相关比赛的原因,投了 NTCIR 13 和 TREC 两个会议,但是比赛文章毕竟档次要低一些。我参加的两个比赛最后都以只有我一个人参赛不战而胜告终(然后组织者只好请我去演讲)。。。可见目前实体相关领域的研究比较冷清

Ad-hoc Entity Retrieval 可以看作是文档检索任务在结构化数据上的发展。 实体(entity) 就是客观世界存在的物体。目前的知识数据库(比如 DBpedia, Freebase)通常用 主语-谓语-宾语 (Subject-Predicate-Object, SPO triple)这样的三元组来描述实体(比如说 Virginia-isPartOf-UnitedStates)。中间的谓语通常叫作关系(relation),每个数据库都有自己的一套固定的谓语。 Ad-hoc Entity Retrieval 任务的输入是用户的查询,输出就是数据库里面的实体。 比如问“中国首都”,系统返回“北京”这个实体以及它的所有在数据库里面的信息。

很多文档检索的方法也可以用在实体检索任务上。这篇文章主要的创新点是让语言模型(Language Model)里面的狄利克雷平滑(Dirichlet Smoothing)可以在分类系统上(比如维基百科的标签系统)找到更多的和查询有关的信息,从而帮助返回更精确的结果。

坦白说这篇文章的结果不好。虽然 mlm-tc 那两列的提升很吓人,但我觉得主要是因为 mlm 本身能力有限并且每个域的权值是固定的,没有调整。最后不需要在会上演讲,只是展示海报

投稿的时候没时间做更多的实验(比如说推广到 Sequential Dependence Model 上面,这些都写到下一篇文章了)。不过我的目的只是想抛砖引玉,让信息检索这个领域的研究者可以重新审视语料库的结构对检索结果的影响,而不是天天想着用神经网络拟合文档的词的分布或者搞一些乱七八糟的 embedding 模型。所以个人觉得还是达到了我想要的效果。另外也想用这篇文章致敬信息检索大师、语言平滑的专家 Chengxiang Zhai…..

最后感谢各位大佬评审…….虽然看不到名字,但是从评论内容就可以猜出是谁,因为这个领域人很少…….小弟以后会多引用各位大佬的大作的……..请多关照…………

Comment on recent progress of ad-hoc entity retrieval

1.An Empirical Study of Learning to Rank for Entity Search (Jing Chen, Chenyan Xiong, Jamie Callan)

这篇文章用 learning to rank 的方法,把之前一些表现比较好的模型的分数拿出来学习权重,然后返回新的混合的分数。

说实话,这篇文章让我挺失望的。这种基于 LTR 的办法纯属是下三滥的鸡肋套路,对本领域的研究几乎没有任何帮助(Empirical 也要讲道理啊!!拿分数当特征,真的不知道意义何在,而且很多模型其实都是基于类似的语言模型,很有过拟合的嫌疑,最后模型完全变成调参数的框架),因为我们可以随便编造出一堆简单的检索模型(比如对每个域都指派一个不同参数的 Language Model 构造的检索模型),然后用 LTR 以后照样可以提高性能,但是这样的性能提升是有限度的。当然,我也非常理解,因为这几位作者和 Learning to rank 的研究者圈子关系密切,所以用这样的方法论思考是很自然的事情。

这篇文章用的是 Balog 的 DBpedia 测试数据集的第一版,质量比较差。 之后在第二版数据 (DBpedia-Entity v2: A Test Collection for Entity Search)里面,这个方法一下就被打回原形了,和一些当前比较好的方法相比没有明显的提高甚至有所下降。

不知道第一作者是不是急着要文章毕业。假如我文章不够不能毕业,我也不会发这种文章凑数。。。

虽然不待见这篇文章,但是考虑到这个领域的文章实在太少,所以能投出去其实也算个好事,毕竟众人拾柴火焰高

2.Entity Search Based on the Representation Learning Model With Different Embedding Strategies  (Shijia E, Yang Xiang)

首先第一作者鄂世嘉的姓挺少见的,看样子似乎是满族,也有可能是汉族鄂氏(我总感觉每个满族人都是以前的皇族(爱新觉罗???)。。。。小的给贝勒爷请安了)。

这篇文章其实应该归类到知识库问答 (Knowledge Based Question Answering)这类文章中,因为 ad hoc entity search 主要还是发展传统信息检索在新的结构化数据上的方法论,KBQA 则是各种奇技淫巧崭新方法的竞技场。 这篇文章用的是 KBQA 里面比较常见的方法(其实就是 Facebook 之前一篇文章里面的方法。。。),学习查询和实体的表示,然后计算他们的相似度。

这篇文章方法并没有很大的突破,所以拉低了它的档次。文章的实验部分比较可疑(按照 ad-hoc entity retrieval 这个领域的标准来看),只用了 ListSearch 和 INEX-LD 两个数据集,按道理应该用上全部四个数据集, 不知道是否是因为结果不佳还是时间不够还是作者“觉得”这两个已经足够有代表性。  这篇文章用的也是 Balog 第一版的数据,如果换上新的测试数据集可能会被打回原形。

这个领域的数据集的标注数据特别少,一般只有几百条,并且有一定的数据集依赖性(比如说 INEX-LD 里面都是关键词组成的查询, QALD2 里面都是符合文法的正规查询,如果打乱这些不同“风格”的查询组成新的测试数据集,很可能会影响模型的性能)。所以深度学习是否能真的学到什么,个人持怀疑态度。

这篇文章还是有一定的价值,起码指了一条新路。博主的评论风格一般比较狂暴,所以看上去好像我全盘否定了这篇文章,但其实不是,因为我知道 IR 的研究工作量是其他领域的十倍以上,像我这样慢手慢脚的猪仔真的很难生存。。。。。

我觉得大部分的文章都没有理解 entity search 和 traditional information retrieval 的区别在哪里,所以导致方法论有偏差,一味想去拟合文本中词的分布。 其实照这个思路发展下去,总有一天会出现这样的文章:我们只要给每个词一个权重,然后找一台超级计算机疯狂运算几个月拟合结果,出来的结果一定是 state of the art 。。。。。

Life after TREC/NCTIR submission

(figure: Ge You, a famous Chinese actor. This  half sitting posture is called ‘Ge You lay’ in China)

 

“Boss, I tried my best………don’t fire me……crying out loud”

Deepanway now I can tell you how to construct mapping between paragraph ID and article ID, only needed is a small modification on read_data.py …………….

Under the Shadow of Deep Learning

深度学习的概念现在已经是十分火爆了,这种终极的基于优化和统计的函数拟合技术已经征服了计算机科学大部分领域,以至于所有的人都希望自己从事的领域能和神经网络攀上一些关系。成功的人,叫做“XX领域最早使用XX网络的那一批”,久而久之,成了被瞻仰的理由;班门弄斧,应用失败的人,也可以给自己贴上先烈的标签,在机构或者公司里,用壮阔的经历和动人的眼泪谋得一官半职。

我周围的很多人,已经依靠这件宝贝获得了很多的利益。和他们在一起,听他们谈论起各种调整网络结构的技巧以及“会议见闻”的时候,难免会感受到一些压力。在科研机构里面,多发文章才能证明自己的生存能力,才可能获取更多的资源,才更有底气和面子(不管是对同性还是异性。。。)。默默无闻的人,总是被扫进记忆的垃圾桶——即使最终他们忍受了应得的苦难,发现了另外的宝藏,难免带着一身恶臭,不能见人。

在厦门大学,我选了庄宝煌教授的大学物理课程。庄是一个可以熟练地用本质的数学语言描述物理现象的人,也是一个喜欢在大众面前发表各种奇谈怪论的有趣人物。他可以连续数十个昼夜研究黎曼猜想(也许只是他眼中的黎曼猜想:)),也可以在课堂上解读七绝连环诗并且给全物理系的同事发邮件炫耀自己的成果。不过印象最深的还是他一直告诫我们要“随大流”。

对于科学来说,最重要的一直是可解释性,所有的部分都应该像玻璃一样拥有可以触碰的透明。

最近带了两个来自印度的研究助理,他们需要实现一些有点过时而且复杂的信息检索模型,并在有一些混乱的海量文本数据上测试自己的成果。要完成这样的工作需要耐心,特别是对于两位“深度学习爱好者”来说。 他们很尽职,不过在交谈的时候我时刻可以感受到他们对于应用前沿技术的憧憬。

不想耽误别人的青春,也不想浪费自己的时间。我在最后一周做出了一些改变,在可以接受的重要部分使用了一些让他们兴奋的东西。于是他们很开心地在第二天表示已经完成所有部分,在跑数据了。。。。(如果早点发现的话我会让老板扣光他们的工资!!!:))

其实信息检索模型在应用神经网络面对的最大问题是维度爆炸和语义拟合,所以我们都不知道能走多远。。。