前沿拓展:
搜索引擎的分类有哪些
可分为三种 搜索引擎分类 搜索引擎按其工作方式主要可分为三种,分别是全文搜索引擎(Full Text Search Engine)、目录索引类搜索引擎(Search Index/Directory)和元搜索引擎(Meta Search Engine)。 全文搜索引擎 全文搜索引擎是名副其实的搜索引擎,国外具代表性的有Google、Fast/AllTheWeb、AltaVista、Inktomi、Teoma、WiseNut等,国内著名的有百度(Baidu)。它们都是通过从互联网上提取的各个网站的信息(以网页文字为主)而建立的数据库中,检索与用户查询条件匹配的相关记录,然后按一定的排列顺序将结果返回给用户,因此他们是真正的搜索引擎。 从搜索结果来源的角度,全文搜索引擎又可细分为两种,一种是拥有自己的检索程序(Indexer),俗称“蜘蛛”(Spider)程序或“机器人”(Robot)程序,并自建网页数据库,搜索结果直接从自身的数据库中调用,如上面提到的7家引擎;另一种则是租用其他引擎的数据库,并按自定的格式排列搜索结果,如Lycos引擎。 目录索引 目录索引虽然有搜索功能,但在严格意义上算不上是真正的搜索引擎,仅仅是按目录分类的网站链接列表而已。用户完全可以不用进行关键词(Keywords)查询,仅靠分类目录也可找到需要的信息。目录索引中最具代表性的莫过于大名鼎鼎的Yahoo雅虎。其他著名的还有Open Directory Project(DMOZ)、LookSmart、About等。国内的搜狐、新浪、网易搜索也都属于这一类。 元搜索引擎(META Search Engine) 元搜索引擎在接受用户查询请求时,同时在其他多个引擎上进行搜索,并将结果返回给用户。著名的元搜索引擎有InfoSpace、Dogpile、Vivisimo等(元搜索引擎列表),中文元搜索引擎中具代表性的有搜星搜索引擎。
目前搜索引擎技术已经迭代很多年了,从纯字面的匹配、到统计特征的匹配,再到神经网络的匹配,虽然一直在小步快走,但仍然没有跳出现有的Pipeline框架:即先召回、再排序。
召回是指从海量数据中筛出一小批可能的候选,排序是从一小批候选中找出最终的答案并进行排序。现有的Pipeline大多是在召回侧用字面或者浅层网络,不然数据量太大了根本处理不过来,而排序侧因为数据量小,会上更多的特征和模型。
这种架构的一个关键问题是,召回代表着天花板,如果召回阶段没把对的文本选出来,那排序再怎么排都没用。而召回又不能上太大的在线模型,只能离线挖掘出更多的feature,比如能代表文档主题的内容标签,来提升召回的效果。但这样就意味着更多的人力成本。
目前比较优雅的方法,是用双塔模型,离线把海量数据压缩成一个个embedding,线上来一个query,双塔encoder只用把这一个query映射到相同的空间,就能通过浅层匹配或者cosine相似度的方式召回。但这个方法还有个问题,就是跟排序模型虽然目标差不多,但还是各做各的,排序模型在优化目标时没有把梯度传给召回模型。近几年也有学者提出联合训练的方法,比如ORQA[1]和REALM[2]。
但你懂的,最优雅的还是用一个模型把一切都端到端化。
同时输入query和候选肯定是不可能的,等检索完GPT100都出来了,那有没有可能让模型提前把候选记住,搜索时只输入一个query,模型直接输出所有结果?
一、死记硬背?
最直接的想法,就是输入query文本,输出答案文本。
在EMNLP20有一篇谷歌文章[3],直接在预训练后的T5上用问答数据精调,发现在不访问外部知识的情况下,预测结果可以接近当时的SOTA模型,证明T5本身在预训练就记住了很多知识。
然而这篇研究很快就被别打脸了[4],因为作者使用的数据集的train和test有很大一部分重合,很多答案在精调时都见过了,所以记得住。
接下来,浙大在ACL21的一篇工作[5]更严格地探索了模型的记忆能力,作者模拟老师教书的过程:
1. 让学生看书,用LM的目标对知识库进行训练
2. 让学生考察是否记住书上的知识点,把一些答案span遮盖掉,让模型去预测,强化知识点的记忆
3. 问学生一些问题,用训练数据进行生成式精调,输入问题,输出答案
4. 期末测验,问一些问题,评估预测结果
这个方式看起来还蛮科学的,但结果却惊掉了我的下巴。
在只有20条SQuAD知识的封闭域内,答案只能做到20%的Exact match,而当时榜单的SOTA有90% 。
二、Differentiable Search Index
直接生产答案的方法是行不通了,而且就算可以,生成模型的速度也太慢了,等生成完GPT200都出了。
那换另一个思路行不行呢?让模型自己把知识记住,并且编码成索引,输入query后生成候选索引?
这就是谷歌最近一篇文章的思路:Transformer Memory as a Differentiable Search Index[6]。
这篇文章让模型做了两件事情:
1. 建索引:训练时输入文本内容,输出docid,让模型记住该内容,并映射到索引ID上
2. 检索:训练时输入query,输出多个docid,相当于做了一个排序
不过实际做的时候,还有不少细节:
1. 把整个文档都输入也太慢了,最终发现只输入文档的前L个token就可以
2. DocId应该怎么表示?给每个文档都分配一个唯一id,这个值是离散的,最后需要一层softmax分类,有巨大的词表,而且不利于增删,最终发现把文档按照额外的语义向量进行聚类,再整理成一个层级结构的效果是最好的,如图
最终模型的效果非常惊喜,居然碾压了双塔的召回方式:
不过这个对比还有点不公平,既然是要做端到端的检索,应该跟双塔+排序去比较更有说服力。
三、总结
以上是我最近关注的一个小方向,可以看到,模型对离散知识的记忆能力真的太差了,但对于它自己编码的「连续」知识表现却还不错,感觉也是可以持续深入(shui)的一个topic。
融合外部知识是通用模型必须跨过的坎儿,而采用外挂还是记忆,目前为止还没有一个完美的答案。
参考文献
[1] Latent Retrieval for Weakly Supervised Open Domain Question Answering:
https://arxiv.org/abs/1906.00300
[2] REALM: Retrieval-Augmented Language Model Pre-Training:
https://link.zhihu.com/?target=https%3A//kentonl.com/pub/gltpc.2020.pdf
[3] How Much Knowledge Can You Pack Into the Parameters of a Language Model?:
https://aclanthology.org/2020.emnlp-main.437/
[4] Question and answer test-train overlap in open-domain question answering datasets:
https://arxiv.org/abs/2008.02637
[5] Can Generative Pre-trained Language Models Serve as Knowledge Bases for Closed-book QA?:
https://aclanthology.org/2021.acl-long.251.pdf
[6] Transformer Memory as a Differentiable Search Index
https://arxiv.org/abs/2202.06991
本文来自:公众号【李rumor】
作者:rumor
Illustration by Natasha Remarchuk from icons8
-The End-
3.19 周六上午10点
忌赖床,忌发呆
宜来B站-旷视直播间
看直播,听分享
👇👇
关于我“门”
▼
将门是一家以专注于发掘、加速及投资技术驱动型创业公司的新型创投机构,旗下涵盖将门创新服务、将门技术社群以及将门创投基金。
将门成立于2015年底,创始团队由微软创投在中国的创始团队原班人马构建而成,曾为微软优选和深度孵化了126家创新的技术型创业公司。
如果您是技术领域的初创企业,不仅想获得投资,还希望获得一系列持续性、有价值的投后服务,欢迎发送或者推荐项目给我“门”:
⤵一键送你进入TechBeat快乐星球
拓展知识:
搜索引擎的分类有哪些
可分为三种 搜索引擎分类 搜索引擎按其工作方式主要可分为三种,分别是全文搜索引擎(Full Text Search Engine)、目录索引类搜索引擎(Search Index/Directory)和元搜索引擎(Meta Search Engine)。 全文搜索引擎 全文搜索引擎是名副其实的搜索引擎,国外具代表性的有Google、Fast/AllTheWeb、AltaVista、Inktomi、Teoma、WiseNut等,国内著名的有百度(Baidu)。它们都是通过从互联网上提取的各个网站的信息(以网页文字为主)而建立的数据库中,检索与用户查询条件匹配的相关记录,然后按一定的排列顺序将结果返回给用户,因此他们是真正的搜索引擎。 从搜索结果来源的角度,全文搜索引擎又可细分为两种,一种是拥有自己的检索程序(Indexer),俗称“蜘蛛”(Spider)程序或“机器人”(Robot)程序,并自建网页数据库,搜索结果直接从自身的数据库中调用,如上面提到的7家引擎;另一种则是租用其他引擎的数据库,并按自定的格式排列搜索结果,如Lycos引擎。 目录索引 目录索引虽然有搜索功能,但在严格意义上算不上是真正的搜索引擎,仅仅是按目录分类的网站链接列表而已。用户完全可以不用进行关键词(Keywords)查询,仅靠分类目录也可找到需要的信息。目录索引中最具代表性的莫过于大名鼎鼎的Yahoo雅虎。其他著名的还有Open Directory Project(DMOZ)、LookSmart、About等。国内的搜狐、新浪、网易搜索也都属于这一类。 元搜索引擎(META Search Engine) 元搜索引擎在接受用户查询请求时,同时在其他多个引擎上进行搜索,并将结果返回给用户。著名的元搜索引擎有InfoSpace、Dogpile、Vivisimo等(元搜索引擎列表),中文元搜索引擎中具代表性的有搜星搜索引擎。
搜索引擎的分类有哪些
全文索引
全文搜索引擎是名副其实的搜索引擎,国外代表有Google,国内则有著名的百度搜索。它们从互联网提取各个网站的信息(以网页文字为主),建立起数据库,并能检索与用户查询条件相匹配的记录,按一定的排列顺序返回结果。
根据搜索结果来源的不同,全文搜索引擎可分为两类,一类拥有自己的检索程序(Indexer),俗称“蜘蛛”(Spider)程序或“机器人”(Robot)程序,能自建网页数据库,搜索结果直接从自身的数据库中调用,上面提到的Google和百度就属于此类;另一类则是租用其他搜索引擎的数据库,并按自定的格式排列搜索结果,如Lycos搜索引擎。
2.目录索引
目录索引虽然有搜索功能,但严格意义上不能称为真正的搜索引擎,只是按目录分类的网站链接列表而已。用户完全可以按照分类目录找到所需要的信息,不依靠关键词(Keywords)进行查询。目录索引中最具代表性的莫过于大名鼎鼎的Yahoo!、新浪分类目录搜索。
3.元搜索引擎
元搜索引擎(META Search Engine)接受用户查询请求后,同时在多个搜索引擎上搜索,并将结果返回给用户。著名的元搜索引擎有InfoSpace、Dogpile、Vivisimo等,中文元搜索引擎中具代表性的是搜星搜索引擎。在搜索结果排列方面,有的直接按来源排列搜索结果,如Dogpile;有的则按自定的规则将结果重新排列组合,如Vivisimo。
其他非主流搜索引擎形式
(1)集合式搜索引擎:该搜索引擎类似元搜索引擎,区别在于它并非同时调用多个搜索引擎进行搜索,而是由用户从提供的若干搜索引擎中选择,如HotBot在2002年底推出的搜索引擎。
(2)门户搜索引擎:AOL Search、MSN Search等虽然提供搜索服务,但自身既没有分类目录也没有网页数据库,其搜索结果完全来自其他搜索引擎。
(3)免费链接列表(Free For All Links,简称FFA):一般只简单地滚动链接条目,少部分有简单的分类目录,不过规模要比Yahoo!等目录索引小很多。
【工作原理】
1、抓取网页
每个独立的搜索引擎都有自己的网页抓取程序(spider)。Spider顺着网页中的超链接,连续地抓取网页。由于互联网中超链接的应用很普遍,理论上,从一定范围的网页出发,就能搜集到绝大多数的网页。
2、处理网页
搜索引擎抓到网页后,还要做大量的预处理工作,才能提供检索服务。其中,最重要的就是提取关键词,建立索引文件。其他还包括去除重复网页、分析超链接、计算网页的重要度。
3、提供检索服务
用户输入关键词进行检索,搜索引擎从索引数据库中找到匹配该关键词的网页;为了用户便于判断,除了网页标题和URL外,还会提供一段来自网页的摘要以及其他信息。
搜索引擎的分类有哪些
搜索引擎主要分类,及特点:
一、全文索引
全文搜索引擎是目前广泛应用的主流搜索引擎,国外代表搜索是Google,国内则有最大中文搜索百度。它们从互联网提取各个网站的信息(以网页文字为主),建立起数据库,并能检索与用户查询条件相匹配的记录,按一定的排列顺序返回结果。
根据搜索结果来源的不同,全文搜索引擎可分为两类,一类拥有自己的检索程序(Indexer),俗称“蜘蛛”(Spider)程序或“机器人”(Robot)程序,能自建网页数据库,搜索结果直接从自身的数据库中调用,上面提到的Google和360搜索就属于此类;另一类则是租用其他搜索引擎的数据库,并按自定的格式排列搜索结果,如Lycos搜索引擎。
二、目录索引
目录索引也称为:分类检索,是因特网上最早提供WWW资源查询的服务,主要通过搜集和整理因特网的资源,根据搜索到网页的内容,将其网址分配到相关分类主题目录的不同层次的类目之下,形成像图书馆目录一样的分类树形结构索引。目录索引无需输入任何文字,只要根据网站提供的主题分类目录,层层点击进入,便可查到所需的网络信息资源。
三、元搜索引擎
元搜索引擎(META Search Engine)接受用户查询请求后,同时在多个搜索引擎上搜索,并将结果返回给用户。著名的元搜索引擎有InfoSpace、Dogpile、Vivisimo等,中文元搜索引擎中具代表性的是搜星搜索引擎。在搜索结果排列方面,有的直接按来源排列搜索结果,如Dogpile;有的则按自定的规则将结果重新排列组合,如Vivisimo。
四、垂直搜索引擎
垂直搜索引擎为2006年后逐步兴起的一类搜索引擎。不同于通用的网页搜索引擎,垂直搜索专注于特定的搜索领域和搜索需求(例如:机票搜索、旅游搜索、生活搜索、小说搜索、视频搜索等等),在其特定的搜索领域有更好的用户体验。相比通用搜索动辄数千台检索服务器,垂直搜索需要的硬件成本低、用户需求特定、查询的方式多样。
五、集合式搜索引擎
集合式搜索引擎:该搜索引擎类似元搜索引擎,区别在于它并非同时调用多个搜索引擎进行搜索,而是由用户从提供的若干搜索引擎中选择,如HotBot在2002年底推出的搜索引擎。
六、门户搜索引擎
门户搜索引擎:AOLSearch、MSNSearch等虽然提供搜索服务,但自身既没有分类目录也没有网页数据库,其搜索结果完全来自其他搜索引擎。
七、免费链接列表
免费链接列表(Free For All Links简称FFA):一般只简单地滚动链接条目,少部分有简单的分类目录,不过规模要比Yahoo!等目录索引小很多。
希望可以帮助到你~望采纳哦~谢谢~ 看评论
本回答被提问者采纳