【立委按】发现,在沙龙里喷NLP很容易,都是做了n多年的人了,问题领域如数家珍,任何话头,都可以引申出一大篇来,信马由缰,也不乏闪光的思想和有意思的碰撞。耗时的是笔记整理。那个比信口开河费劲多了,喷一天的话,要三天功夫才能整理出可读的博文。不过,既然喷了,不整理就烟消云散,那还不如不喷。死循环。毛曰: 喷也要噴,整也得整。聂绀弩说:文章信口雌黄易,思想锥心坦白难。
我: 白老师,关于搜索,咱们接着谈?
白: 你先说起来?我开个会,大约半小时。
我: 好,你先忙,这次我们细细谈,到底看这里面有什么关过不去。为什么不完美的关键词可以坐稳宝座,而强得多的善于定义事件的 VO(动宾) 却不能取代它。
如果要想搜寻事件,以便针对这类事件来精准投放广告,那么就需要这个 VO indexing 和 VO retrieval,也需要广告商能够表达这个 VO。如果不用 VO,而用两个关键词的组合来近似表达(就是说只用 VO 的两个节点直接量,不用 VO 的关系),精准投放就会大打折扣。
白: 今天我不讨论商业模式,我的观点昨天已经差不多说透了。我今天从技术和用户的角度说,我们期待什么样的搜索。
第一,我希望query本身的形式是向后兼容的,可以关键词,但自然语言语句或短语、自然语言提问都应该支持。
第二,检索结果的初次呈现,除了传统的排序结果外,可以增加某种结构化的内部表示。这种内部表示是可浏览、可理解、可编辑、可再提交的。为了得到这种结构化的内部表示,后台必须引入某种NLP或IE技术,大规模应用于采集到的资源。
第三,如果后台费了半天劲儿,只是弄出个regex或者SVO,作为呈现出来的结构化内部表示,这太不值得了。怎么着也得弄个知识图谱出来吧。
第四,自然语言对知识图谱(框架、半填充或全填充)的操作,不仅适用于搜索,还适用于更有意义的场景。所以这套技术的开发有重大战略意义。只盯着搜索,太窄了。
发言完毕。@wei
我: 你说的这些,我们都不同程度实现过。知识图谱作为结果呈现的链接是很自然的。
阮: 后台知识图谱,前台KB-based QA。我们就是这么做的。
白: SVO就是知识图谱的初级阶段么。
我: SVO 作为 entities 之间的链接,可以用,特别是无法事先定义的涉及entitites的各类事件。但更主要的知识图谱还是事先用 IE 抽取好的关系库。这就给搜索的用户以 chasing rabbits 这样的机会。
换句话说,就是人类的两个信息需求(搜寻和浏览)被有机整合了,这个设计思想和观念 10 多年前我们就在给政府做的项目中反复论证过,最后促成了千万多美元的一个政府项目,集中于entity之间关系的研发,就是现在说的知识图谱,当时还没这个工业界炒热了的术语。
白: 但是,和爬虫采集的数据对接,只是知识图谱的一个grouding approach。位置信息、天气信息、通信录信息和用户个人profile信息,都是和知识图谱对接的组成部分。
我:搜寻是有事先有目标的信息需求(譬如有一个疑问),浏览不是。当知识图谱加进搜索结果的时候,浏览这种需求与搜索的需求结合起来,这符合人们的求知过程。因为当你看到的结果中有一种关系和事件是你没有预先想到的,你会去点击它,这时你的信息焦点也随之转移,这样一切就活起来了,我们叫 chasing rabbits。
白: 我们叫顺藤摸瓜。
我: 对,就是顺藤摸瓜。其实,搜索最近几年强调知识图谱就是沿着这个方向。知识图谱相对是比 SVO 动态搜索更加靠谱,更加 tractable 的任务,所以先行了。
白: 按照对SVO的狭义理解,如果疑问焦点在定语,就难办咯。比如:哪个国家的首都是大马士革?
我: 疑问焦点在定语,SVO 不好对付的问题,在实践中不难。因为任何一个 SVO 的搜索系统,都不可能做理论上的 SVO 全树搜索。一定是把它打散的。这个道理与关键词为什么变成一袋子词以后再去使用,是一样的。打散 query (or question)的简单的办法就是全部变成 binary 关系。然后在匹配的时候,并不求每一个 binary 都能完美的匹配,总是可以在某个 binary 匹配不了的时候,backoff 到关键词和proximity,用 proximity 来逼近语法关系。
白: 但是对知识图谱,一步到位地确定定语是有可能的
我: 知识图谱是另外一个层面的东西,可以不用参合到搜索的匹配来。只是在应用场景,二者才结合在一起,丰富用户的体验。
知识图谱(我们一直叫关系抽取,最早我们起名叫 Correlated Entity,后来就叫 Entity Relationship)与 SVO 的最大区别是,前者是预制的,可以精雕细琢,是典型的靠谱的信息抽取。后者则不同,是不变应万变。
我们在做医疗系统的时候更绝,你查询任何疾病,除了给你各种治疗方案,并且把治疗方案分门别类以外,每个方案都是知识图谱的入口。而且 医疗中特有的关系,譬如药品与副作用,手术和主刀人,病状与诊断,这些都有机联系成一个专用领域的知识图谱网,漂亮得很。用户爱怎么顺藤摸瓜都成。
白: 我觉得组织信息的核心数据结构只有一种,就是知识图谱。只有人工填充的知识图谱和自动填充的知识图谱的之分,没有知识图谱和SVO之别。SVO只是自动填充知识图谱的中间产物。
雷: 同意,svo只是中间步骤。svo准确,图谱的质量就好。
我: 作为中间步骤的 SVO 不用谈,建立知识图谱可以靠 SVO。 也有不用 SVO 的,主流大多不用,也一直在做。这个是内部的事儿,不必谈。
白: 当然,条条大路通罗马
我: 从外部来看,从面对客户来看,SVO 与 知识图谱也各有价值。道理很简单,知识图谱是 predefined 的关系集合,是典型的抽取任务。而预先定义不能涵盖的关系,特别是动态的事件,如果需要把它们在结果中有机链接起来,那就需要 SVO。
雷: svo一定要的,人工是不现实的,非要靠谱的svo。知识图谱一定超过关键词。问题就是知识图谱的造价高。目前的nlp或nlu的造知识图谱的质量不高,或还需要大量人工干预。
白: 不是和人工比,是和关键词直接激活知识图谱比。我是说,以SVO为中介到达知识图谱,和以关键词为中介到达知识图谱,都是可以的,但精准度有差异。
雷: 以关键词达到知识图谱好像基本不可能。ontologies的冷却就是关键词造成的。
白: 混淆了。预先定义的是模板,但全填充、半填充的实例是可以自动生成的。回过头来,检索这些实例,又可以用关键词了。
我: 举例说吧,公司和地点的关系,雇员与老板的关系,同事的关系,电影与出品商的关系,等等,这些都是预先定义的,抽取完了放在库里的。可是 一个 entity 毕业了,得病了,结婚了,丢了钱包了,找到小三了,这些事件就很难预先定义好,然后抽取,然后送到库里,因为那些是 open-ended 的。这时候 SVO 可以动态地把这些 entity 所 involved 的事件给有机呈现出来。你查 尼克,在结果的集合里面(譬如 top 一万的结果)发现尼克昨晚约会了冰冰。那么尼克与冰冰的约会事件,就会作为在线的关系被连接,就与从只是图谱的库里找关系一样,供给用户去顺藤摸瓜。所以说,SVO 不仅仅是藏在背后的技术,也可以上得厅堂,直接面对用户。
@雷 整个 IE 领域的90% 的知识图谱,或者关系抽取的系统都是关键词系统啊,一来他们总是拿关键词打天下,用熟了。二来他们根本就没有 parser 可用,自己也build不出来一个real life 的parser来,三来他们也玩不转parser 即便有的话。IE 领域与整个NLP领域一样,只是在开始的时候用到规则系统,后来的主流就一统天下了。关键词加上人工标注,可以做出图谱,尽管质量不高
雷: 检索一定还是要用关键词,下面就是要靠知识导航了。用户用关键词得心应手。
白: 就刚才的例子说,约会的模板是人工建立的,但尼克与冰冰约会的实例是根据网上文本自动生成的。检索的时候输入尼克,可以挖出萝卜带出泥,把尼克约会冰冰的实例拐出来。不需要人工生成尼克约会冰冰的实例。
雷: 知识导航是引导用户的好的方式,关键词可以有许多填充模板。
我: 当然不需要人工生成约会的事件,SVO 就是做这个的。约会的挖掘就是典型的 SVO search,没有问题的,除非没有任何报道。
关键词是个万金油,做什么都可以的,而且 parser 玩不好的人,还做不过关键词。keywords are hard to beat 是很多人的切身体验。因为关键词很 robust,而且统计上不迷失方向。parser 和规则则不同,需要经验才能玩,一般人随便这么一玩,根本就玩不过关键词。
【相关】
《知识图谱的先行:从 Julian Hill 说起 》 2015-10-24
【立委科普:信息抽取】
前知识图谱钩沉: 信息抽取引擎的架构
泥沙龙笔记: parsing vs. classification and IE
【置顶:立委科学网博客NLP博文一览(定期更新版)】
https://blog.sciencenet.cn/blog-362400-930249.html
上一篇:
《李白对话录:关于纯语义系统》下一篇:
《知识图谱的先行:从 Julian Hill 说起 》