做AI搜索的55条建议,务必收藏

目前大模型产品落地真正形成共识的只有AI搜索,自从Perplexity发起了对搜索霸主谷歌的强势挑战,国内外大大小小做搜索的厂商,都推出了内置于原搜索结果的AI总结功能,譬如谷歌的AI Overviews、微软的new bing、百度的AI伙伴、360的AI搜索等等,除此之外,还有类似于Perplexity做AI Native搜索产品的秘塔AI搜索、天工AI搜索,一时间AI搜索成了本次GenAI落地的“当红炸子鸡”。

AI搜索标准流程

那么,怎么做好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算力,预装了主流的大模型和环境的镜像,开箱即用,非常方便。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/362003.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu 18.04 server源码编译安装freeswitch 1.10.7支持音视频通话、收发短信——筑梦之路

软件版本说明 ubuntu版本18.04:https://releases.ubuntu.com/18.04.6/ubuntu-18.04.6-live-server-amd64.iso freeswitch 版本1.10.7:https://files.freeswitch.org/freeswitch-releases/freeswitch-1.10.7.-release.tar.gz spandsp包:https:…

C++初学者指南第一步---14.函数调用机制

C初学者指南第一步—14.函数调用机制 文章目录 C初学者指南第一步---14.函数调用机制1.记住:内存的结构2.函数调用是如何工作的3. 不要引用局部变量4. 常见编译器优化5. Inlining内联 1.记住:内存的结构 堆(自由存储) 用于动态存…

Qt 学习(一) addressbook

Qt Demo: addressbook (1)创建项目:选择不创建界面,即UI,此时会自动生成的文件如图所示: QApplication: MainWindow 继承自 QMainWindow,根据需要设计的界面样式。 (2)确定MainWindow 的成员变量 首先&…

告别模糊时代,扫描全能王带来清晰世界

模糊碑文引发的思考 上个月中旬去洛阳拜访了著名的龙门石窟,本就对碑文和文字图画感兴趣的我们,准备好好欣赏一下龙门石窟的历史文化古迹。到了地方之后,我发现石窟的高度和宽度远远超出了想象,正因如此,拍出来的文字…

计算机网络之数据通信原理

1.通信系统的基本组成 信源:信息的发出者; 信宿:信息的接收者; 载体:信息的传送通道; 变换器:将信息变换成载体上可传输的信号; 反变换器:将载体上传输的信号变换成信…

【启明智显技术分享】MOEDL3芯片通用接口如CAN、I2S、I2C、SPI、UART、USB、emac的介绍和比较

启明智显MODEL3芯片提供的通用接口包括CAN、I2S、I2C、SPI、UART、USB和emac,每种接口都有其独特的功能和应用场景。 以下是这些接口的介绍和比较: CAN接口 功能: 支持CAN2.0A和CAN2.0B协议。支持11位标识符(标准格式&#xf…

已解决javax.security.auth.DestroyFailedException:在尝试销毁某个对象时失败的正确解决方法,亲测有效!!!

已解决javax.security.auth.DestroyFailedException:在尝试销毁某个对象时失败的正确解决方法,亲测有效!!! 目录 问题分析 报错原因 解决思路 解决方法 检查对象状态 确认权限设置 检查资源锁定情况 修正实现…

栈,ASCII编码

栈 LinkedList stack new LinkedList<>(); int i 0; while (i < s.length()) { char c s.charAt(i); if (c <) {if (stack.isEmpty()) {i;continue;}stack.removeLast(); //从栈的末尾移除一个元素} else {stack.addLast(c); //压入栈的末尾栈是只允许在一端…

批量邮件推送的最佳策略?如何个性化营销?

批量邮件推送有哪些高效工具&#xff1f;怎么评估邮件推送效果&#xff1f; 通过有效的批量邮件推送&#xff0c;可以提升品牌知名度、增加客户参与度&#xff0c;并最终促进销售。AoKSend将探讨批量邮件推送的最佳策略&#xff0c;帮助您在复杂的邮件营销环境中脱颖而出。 批…

5个顶级开源Agent框架,你必须知道!

进入2024年&#xff0c;人工智能的发展已经达到了前所未有的高度&#xff0c;尤其是在Agent框架这一领域&#xff0c;出现了几个引人注目的技术成果。这些框架在智能规划、用户体验增强、记忆处理、以及大型模型调用等方面有着卓越表现&#xff0c;对AI界的未来发展提供了值得期…

【分布式文件系统HDFS】文件操作基本命令的使用

目录 一、按照下述要求写出相应的文件操作命令&#xff0c;执行并观察结果 1. 新建目录 1.1 在本地文件系统按要求创建如下的文件夹 1.2 在HDFS文件系统按要求创建如下的文件夹 2. 编辑文件test1.txt&#xff0c;放入本地文件夹 /opt/user/myfile 3. 使用moveFromLocal命令…

IT入门知识第八部分《云计算》(8/10)

目录 云计算&#xff1a;现代技术的新篇章 1. 云计算基础 1.1 云计算的起源和发展 云计算的早期概念 云计算的发展历程 1.2 云计算的核心特点 按需自助服务 广泛的网络访问 资源池化 快速弹性 按使用量付费 1.3 云计算的优势和挑战 成本效益 灵活性和可扩展性 维…

【AIGC】用 AI 绘画 诠释印象派!关键词、安装包分享!

前言 印象派艺术运动是19世纪60年代法国的一场艺术革命&#xff0c;它不仅革新了绘画技法&#xff0c;更重新诠释了光与色彩、自然与美。印象派艺术家&#xff0c;如莫奈、雷诺阿和德加&#xff0c;通过捕捉自然光线的瞬息变化&#xff0c;用色彩和笔触表达对现实世界的独特感…

每个 Node.js 开发人员都应该知道的13个库(上)

1. Sequelize Sequelize是一个基于promise的Node.js对象关系映射器&#xff08;ORM&#xff09;&#xff0c;它使开发人员更容易使用关系数据库。 支持PostgreSQL&#xff0c;MySQL&#xff0c;MariaDB&#xff0c;SQLite和更多数据库。 Sequelize使用JavaScript对象对数据库…

入门JavaWeb之 Response 验证码和重定向

Response 写验证码&#xff1a; package com.demo.response;import javax.imageio.ImageIO; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse…

人工神经网络是什么,其应用有哪些?

人工神经网络是什么&#xff0c;其应用有哪些&#xff1f; 当你阅读这篇文章时&#xff0c;你身体的哪个器官正在考虑它&#xff1f;当然是大脑&#xff01;但是你知道大脑是如何工作的吗&#xff1f;嗯&#xff0c;它有神经元或神经细胞&#xff0c;它们是大脑和神经系统的主要…

Python笔记 json数据格式的转换

一、json数据格式 1.什么是json json是一种轻量级的数据交互格式。可以按照json指定的格式去组织和封装数据 json本质上是一个带有特定格式的字符串 主要功能&#xff1a;json就是一种在各个编程语言中流通的数据格式&#xff0c;负责不同编程语言中的数据传递和交互。类似…

基于SpringBoot音乐网站与分享平台详细设计和实现(源码+LW+调试文档+讲解等)

&#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者&#xff0c;博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; Java精品实战案例《600套》 2023-2025年最值得选择的Java毕业设计选题大全&#xff1…

Xilinx FPGA:vivado实现串口的接收端

补充一些串口里用到的数值的相关知识点 接收端串口时序图&#xff1a; 程序设计&#xff1a; timescale 1ns / 1ps /串口接收端 串行转并行 module uart_rx(input sys_clk ,input rst_n ,input rx_data , //输入…

JDBC以及事务

1、JDBC是什么&#xff1f; JDBC是Java DataBase Connectivity&#xff08;Java语言链接数据库&#xff09; 2、JDBC的本质 JDBC是一套接口&#xff0c;有调用者&#xff08;java工程师&#xff09;和实现者&#xff08;SUN公司&#xff09;&#xff08;实现类被称为驱动&…