目前大模型产品落地真正形成共识的只有AI搜索,自从Perplexity发起了对搜索霸主谷歌的强势挑战,国内外大大小小做搜索的厂商,都推出了内置于原搜索结果的AI总结功能,譬如谷歌的AI Overviews、微软的new bing、百度的AI伙伴、360的AI搜索等等,除此之外,还有类似于Perplexity做AI Native搜索产品的秘塔AI搜索、天工AI搜索,一时间AI搜索成了本次GenAI落地的“当红炸子鸡”。
那么,怎么做好AI搜索这个产品呢?What AI Engineers Should Know about Search这篇文章给我们提供了55个建议,希望对大家有帮助。
1、选择向量数据库的重要性不如人们想象的那么高。相比之下,将检索解决方案的各个部分 (如词汇、向量、重排、查询理解等) 有机整合更为关键。越来越多的人已经意识到这一点,我们可能已经度过了盲目追捧向量数据库的热潮。
2、与那些看似花哨的解决方案相比,建立一个科学的评估框架来衡量搜索结果的质量,才是真正重要的。
3、标记搜索结果的相关性有多种方法,包括众包人工标注、分析点击流数据、利用大语言模型 (LLM) 通过提示评估搜索结果等。每种方法都有其优缺点。
4、在搜索领域,这些标记通常被称为「judgment 评判」。历史上,在TREC等早期信息检索竞赛中,「评判员」会对某个查询的搜索结果进行打分,判断其相关性。
5、不同的评估方法都存在各自的偏见。例如,在人工评估中,我们可能会遇到非专业人士的判断、评估者疲劳、以及人们倾向于认为靠前的结果比靠后的结果更相关等问题。
6、基于点击流的评判也有其局限性。我们只能为搜索系统返回的前 N 个结果 (即可点击的内容) 提供标签。同时,我们还需要应对用户出于本能点击不相关但吸引眼球的图片等情况。
7、搜索用户界面中的呈现偏差是一个不容忽视的问题。简而言之,用户只会点击他们看到的内容。
8、要克服呈现偏差,需要采取主动学习或强化学习的思路 - 我们既要「利用」当前对搜索相关性的理解,也要寻找「探索」新结果的方法。《AI Powered Search (AI驱动的搜索)》这本书第12章是解决这一问题的宝贵资源。
9、点击模型可以将点击流数据转化为评判结果。《Click Models for Web Search》这本书能帮你深入理解用户对搜索结果的点击和转化行为。
10、有许多指标可用于衡量查询的质量。例如,如果对「zoolander」进行查询并返回了一些搜索结果,我们可以参考这些评判来判断所提供的结果是否相关。(n) DCG、ERR、MAP、精确率、召回率、F1分数等统计指标在搜索行业中被广泛使用。
11、搜索总是伴随着精确率和召回率之间的权衡。如果你进行广泛搜索,可能会获得更多相关结果,但同时也可能向用户展示大量不相关的内容。
12、搜索专家经常谈到「信息需求」 - 这是对用户所需信息的一种非正式描述。用户通常通过多个查询来表达这种信息需求。
13、信息需求可能非常多样化 - 从通过 ID 查找特定商品,到比较/对比产品,再到对某一主题进行深入研究并整理笔记。每种需求都可能需要在排名和用户体验上进行特别处理。
14、用户的搜索方式正变得越来越复杂。他们对问答系统、社交媒体、电子商务、RAG 等有着不同的期望。
15、你可能听说过 BM25 算法。它本质上是对 TF*IDF 进行了大量调整和优化的算法。
16、BM25 对 TF*IDF 中的词频部分进行了饱和处理。其背后的直觉是,相关性和词频并非线性关系,但在一个词被提及足够多次后,它并不会突然变得更加相关。
17、IDF (1/文档频率) 用于衡量一个词的特异性。词越罕见,对用户意图的重要性就越高。例如,在搜索 [luke] 或 [skywalker] 时,「skywalker」更为罕见和具体,因此得分更高。
18、实际上,IDF 并非原始的 IDF,每个相似度系统都有自己的非线性饱和 IDF 曲线。
19、BM25还倾向于偏好较短的字段。因为在一条简短的推文中提到「Luke Skywalker」的可能性,远小于它在一本厚重的教科书中偶尔出现一次。
20、可以通过参数 k1 和 b 来调整 BM25。参数 k1 控制词频的饱和度 - 对于短文本片段可以很快达到饱和,而对于长文本片段则可以慢慢饱和。
21、参数 b 调整字段长度对得分的影响。如果将b设置得很高,那么超过平均长度的字段会受到更大的惩罚,而低于平均长度的字段受到的惩罚则较小。
22、BM25 只是众多词汇相似性评分方法中的一种。例如,Elasticsearch提供了多种选项,甚至包括相似度的脚本编写功能。
23、BM25F 是 BM25 的一个变种,它考虑了不同字段 (每个字段都有其独立的词项统计数据) 中的匹配情况。这里的「字段」指的是不同的文本属性,比如标题、摘要或标签等。
24、在许多词汇搜索引擎中,你可能会惊讶地发现,一个字段中的常见词在另一个字段中实际上非常罕见。这可能会干扰 BM25 的计算,导致一个看似不相关的文档意外地排在前面。
25、存在一些工具可以计算词项的「真正」特异性,这超出了直接的 IDF 计算范畴。例如,在不同字段间混合 IDF,或者将所有文本合并为一个大型字段。
26、合理组合和权衡不同字段非常重要。搜索中的字段扮演着不同的角色,需要分别进行分词和打分。例如,标题匹配的优先级应该高于正文中较难发现的内容。
27、搜索是一个生态系统的一部分。有些字段可能容易被用户滥用 (如关键词堆砌)。而有些字段由于其重要性,用户有强烈的动机保持其内容的真实性和相关性 (例如标题)。我们对每个字段的评分方式,很大程度上取决于我们对该内容的信任程度。
28、在搜索生态系统中,最有效的搜索策略之一是鼓励用户对他们的内容进行搜索引擎优化 (SEO)。这样,他们会主动调整内容以更好地适应我们的搜索算法,而不是我们去调整算法以适应他们的低质量内容。
29、搜索是生态系统的一部分 - 最糟糕的情况是用户意识到他们可以通过 SEO 来操纵我们的搜索结果,然后他们可能会滥用或调整内容,使其变成垃圾信息,甚至接近恶意行为。
30、分词不仅在词汇搜索中至关重要,在嵌入技术中也同样重要。分词 (如 n-gram、word-piece、整词分词) 以及相关的处理,如词干提取、标点符号处理等,可能会显著影响搜索的性能。
31、词汇分词流程实际上是一种图结构 - 在任何位置,等效的分词 (如同义词或不同的表达方式) 只是这个图上的一个分支,而且不同的分支可能长度不同 (例如,USA与United States of America)。
32、搜索不仅仅关乎词项匹配 - 短语也同样重要。短语对应于用户经常搜索的重要实体,或是人们标记在事物上的标签,或是我们预期的其他许多内容。在科学、工程或法律研究等专业领域,这一点尤其重要,因为那里的短语可能有非常特定的含义。
33、短语需要编码词项的位置 - 构建一个包含所有词项组合的庞大词汇表是不现实的。因此,词汇搜索系统必须在如 roaring bitmap 这样的数据结构中编码词项的位置。
34、由于短语需要分词,并且在给定位置可能产生等效的词项,它们本质上也是图结构!如果你希望 USA 被视为 United States of America 的同义词,那就是一个图结构。一个优秀的查询解析器必须将对「USA」的搜索视为对「USA」或「United States of America」的搜索。
35、某些词对在统计上经常一起出现,如「Palo Alto」或「Nacho Cheese」。这些被称为搭配,可以被视为一种「简单实体」。
36、词汇搜索不仅仅是关于BM25,更重要的是以一种尊重分词流程图结构本质的方式构建短语搜索。
37、通常,搜索系统由一系列的预处理 (如查询/意图理解) 和后处理 (如重排/后过滤) 阶段组成,在这些阶段之间有一个或多个检索引擎。
38、查询理解有多种形式。从广泛的、粗粒度的类别分类 (比如这是对一张图片的搜索),到从查询中提取实体 (比如这是关于「San Francisco」的搜索),再到将查询映射到向量以进行向量检索。
39、将机器学习应用于优化排名通常被称为「学习排序」。由于它涉及将相关结果在列表中优先于不相关结果,这可能与分类或回归等类型的机器学习有所不同。
40、学习排序功能有着悠久的研究历史。SVMRank 是一个简单的支持向量机,它使用二元分类器 SVM 对相关与不相关的对进行分类。LambdaMART 尝试使用梯度提升来优化列表式相关性度量,如 NDCG。
41、LambdaMART 就像 BM25 那样,是一种传统算法。虽然看起来有些老派,但它确实非常有效,值得学习。这里有一个附带笔记本的高质量博客文章,从零开始介绍了这个算法。
42、当存在大量词汇表特征时,LambdaMART 特别有用,比如你想要用于排名的各种统计数据。
43、LambdaMART 非常适合对成百上千的搜索结果进行相对低成本的重排。
44、相关性与特征之间的关系往往非常非线性。有些因素,比如时效性,在搜索新闻时可能至关重要。而其他因素在搜索规范信息时可能更为重要。甚至在电影搜索中,相关性与标题/概述BM25之间的简单关系也是复杂的。
45、在学习排序的训练数据中,一个常用技巧是将其他查询的正面结果作为当前查询的负面例子进行采样 - 这类似于对比学习的思想。
46、拥有多个重排阶段是相当普遍的做法。从针对前 1000 个结果优化的简单重排器开始,到重排少量搜索结果的复杂交叉编码器。
47、流行的搜索系统 (如Solr、Elasticsearch、Vespa、OpenSearch) 在收集学习排序特征、存储和对排名模型进行推理方面的功能水平各不相同。
48、学习排序系统中的优质特征应该既与现有特征正交,又能增加价值。正交意味着它们测量不同的维度,可能来自不同的系统 (比如BM25与嵌入 vs ??),这几乎保证了没有一种通用的搜索解决方案。
49、排名和相似度是两个截然不同的概念!两段文本可能在相似度上很接近 (通过嵌入、BM25或其他方式测量),但仍然可能是垃圾信息、过时或价值低的内容。
50、有时候你并不需要一个复杂的重排器!很多人通过使用遗传算法或贝叶斯优化等技术,仅仅通过优化首次通过的评分就能取得不错的效果。
51、在搜索中,「取巧」是可以接受的!一个常见的技巧是构建一个集合,比如一个信号集合,它记住了对某个查询特别有吸引力的结果。然后当用户搜索时,你可以提升那些高度吸引人的内容 (或者降低那些已经有足够曝光机会的内容)。
52、可以将查询结果反馈给你的系统!通过跟踪交互的内容类型,你可以对你的查询了解很多。比如它们倾向于与哪一类内容相关联,或者哪种图像的嵌入倾向于被点击。了解关于相关性反馈的知识。
53、有许多工具可以为你的原型设计服务。从 SearchArray 到 BM25S,你可以试用不同的词汇解决方案来解决你的问题!
54、阅读 Manning 等人的《Introduction to Information Retrieval (信息检索导论)》。它是搜索领域的圣经,涵盖了搜索和检索的基本概念。
55、一定要查看关于搜索和信息检索的众多资源,一个很棒的资源列表在Awesome Search Github 仓库中。
【推广时间】
AI的三大基石是算法、数据和算力,其中数据和算法都可以直接从国内外最优秀的开源模型如Llama 3、Qwen 2获得,但是算力(或者叫做GPU)由于某些众所周知的原因,限制了大部分独立开发者或者中小型企业自建基座模型,因此可以说AI发展最大的阻碍在于算力。
给大家推荐一个性价比超高的GPU算力平台:UCloud云计算旗下的Compshare算力共享平台,目前注册送20元测试金,可以畅享7小时4090算力,预装了主流的大模型和环境的镜像,开箱即用,非常方便。