Elasticsearch:了解人工智能搜索算法

作者:来自 Elastic Jessica Taylor, Aditya Tripathi

人工智能工具无处不在,其原因并不神秘。 他们可以执行各种各样的任务并找到许多日常问题的解决方案。 但这些应用程序的好坏取决于它们的人工智能搜索算法。

简单来说,人工智能搜索算法是人工智能工具用来找到特定问题的最佳解决方案的决策公式。 搜索算法可能会在速度、相关性或其他加权因素之间进行权衡。 它考虑了查询的约束和目标,并返回了它计算出的最佳解决方案。

在这篇文章中,我们将介绍:

  • AI 搜索算法的重要性和应用
  • 人工智能搜索算法的要素
  • 不同类型的人工智能搜索算法
  • AI 搜索算法用例
  • 使用人工智能搜索算法时的挑战和限制

读完本文后,你将清楚地了解它们是什么以及如何在 AI 工具中使用它们。

人工智能中的搜索算法是什么?

人工智能搜索算法是一种通过评估索引数据和文档来理解自然语言查询并查找相关结果的方法。 它通过探索一组潜在的解决方案来实现这一点,以便找到针对所给出的查询的最佳答案或解决方案。

想象一下,你正在使用人工智能构建一个国际象棋应用程序,该应用程序可以预测下一步的最佳走法。 为了确定最佳动作,你的人工智能搜索算法必须评估不同的选项,以决定哪一个最好。 这意味着系统地评估每个棋子的位置,评估每种可能的走法组合,并计算你您带来最佳获胜机会的策略。

AI 搜索算法的重要性和应用

人工智能搜索算法在众多领域发挥着至关重要的作用。 其范围从计算机科学问题解决到复杂的物流决策。 它们的多功能性使它们对于应对各种挑战和解决重要问题不可或缺。

例如,NASA 能够使用 Elastic® 中的 AI 搜索算法分析来自火星任务的漫游器数据。 这使他们能够比手动分析这些数据更快地解锁关键见解并应对复杂的挑战。 在医疗保健领域,人工智能搜索算法被用来协助医疗诊断、治疗计划和药物发现。 这将带来更好的诊断准确性、更有效的治疗计划以及新疗法的开发。

这些例子强调了重要性和潜力,但这些算法的应用远远超出了这些用例。 金融、制造、法律服务等各个领域已经受益于这种处理大量数据并做出明智决策的新能力。 随着人工智能算法的不断发展,它将在各个行业发挥更加突出的作用,并对我们周围的世界产生巨大影响。

人工智能搜索算法的要素

每个人工智能搜索算法都可以分为四个要素:状态(states)、动作(actions)、目标(goals)和路径成本(path costs)。 这种元素框架是算法如何导航复杂问题空间以找到最佳解决方案的方式。

状态是特定时间点问题的快照。 它们封装了当时问题的所有相关信息,因此算法可以评估当前情况。 把它想象成一个迷宫 —— 每个转弯都代表迷宫中不同的 “状态”。 因此,通过查看状态,你就知道人工智能在算法中的位置。

动作是状态之间可能的转换。 继续使用迷宫的比喻,这些动作是你可以选择的可用方向。 通过组合这些操作,你可以确定穿过迷宫的不同潜在路径。

目标是搜索过程的最终目标。 在搜索中,这个目标将是初始查询的最佳且最相关的答案。 这为算法提供了明确的方向,因此其工作重点是寻找最佳结果。 在迷宫示例中,查询 “找到逃离迷宫的最佳路线” 将是目标。

路径成本是回答查询的路径中每个步骤或动作的精确度和召回率之间的权衡。 该成本代表进行每个特定动作所需的努力或资源。 然后,算法可以使用该成本来优先考虑高效且资源经济的路线。

AI 搜索算法的类型

自然语言处理 (NLP) 算法

NLP 算法是搜索的重要组成部分,因为它们弥合了人类交流和机器理解之间的差距。 这使得搜索人工智能能够理解所要求的内容,并提供与查询相关且上下文相关的结果。

使用 NLP,搜索结果将更加符合用户的意图,并且算法将能够通过理解更细微的请求来处理复杂的查询。 这是因为它可以识别情绪并理解上下文,并根据之前与用户的对话来个性化搜索体验。

词嵌入 - word embeddings

算法处理单词以查找相似性的方法之一是使用词嵌入,其中单词和资产表示为向量。 这是它分析文本和图像等非结构化数据并将其转换为数值的地方。

一个流行的例子是 Word2vec,这是一种从大量书面文本中学习词嵌入的算法。 然后,它分析周围的文本以确定含义并理解上下文。 另一个例子是 GloVe(Global Vectors for Word Representation - 单词表示的全局向量),它也被训练为通过根据语义相似性映射不同单词来建立不同单词之间的连接。

语言模型

还有一些语言模型可以分析大量数据,以便准确预测单词出现顺序的可能性。 或者更简单地说,它们是算法,使搜索人工智能不仅能够理解我们所说的内容,而且能够以与人类沟通方式相匹配的方式做出响应。

例如,BERT(来自 Transformers 的双向编码器表示)是一种流行的语言模型,能够理解复杂而细致的语言,然后可用于强大的语义搜索和问答。

近似最近邻(Aproximate nearest neighbors - ANN)

使用 kNN 查找最接近的匹配的另一种方法是查找足以满足你的特定需求的匹配。 这就是近似最近邻算法的优势所在。 这是因为 ANN 算法会查找与查询非常接近的数据,但不一定是最接近的数据。 因此,人工神经网络不会费力地分析每一个数据,这可能会耗费时间和资源,而是会满足于不太接近但相对而言仍然 “足够接近” 的东西。

这样做的好处是你可以创建更快、更高效的相似性搜索。 人工神经网络通过推断内容和数据之间的语义关系来实现这些 “足够接近” 的结果。

然而,要使这种方法有价值,你需要接受准确的权衡,因为它不能保证最接近的结果。 大多数时候,人工神经网络都是一个很好的解决方案,但如果你需要保证绝对准确性,这可能不是你的最佳选择。

无信息 (uninformed)或盲目的搜索算法

无信息搜索算法(也称为盲搜索算法)不知道有关搜索空间的信息。 他们系统地解决查询,没有指导或特定领域的知识。 他们完全依赖搜索空间的现有结构来寻找解决方案。

无信息搜索算法有多种不同类型,但最常见的三种是广度优先搜索 (breath-first search - BFS)、深度优先搜索 (depth-first search - DFS) 和统一成本搜索 (uniform cost search - UCS)。

知情(informed)或启发式搜索算法

知情搜索算法(也称为启发式搜索算法)是一种使用附加信息和特定领域知识来指导搜索的搜索类型。 与无信息的搜索不同,他们使用启发式方法,这是经验法则和估计,可以帮助他们确定路径的优先级并避免不必要的探索。

有几种不同类型的知情搜索算法,但最常见的是贪婪最佳优先搜索(best-first search)、A* 搜索和束搜索(beam search)。

AI 搜索算法的用例

正如我们已经提到的,人工智能搜索算法正在广泛的行业中用于完成各种任务。 这里只是一些现实世界的例子,它们产生了巨大的影响。

  • 信息检索:NLP 搜索算法可以通过理解查询的上下文和语气来增强搜索结果,以检索更多有用的信息。
  • 推荐:kNN 算法通常用于根据偏好和过去的行为推荐产品、电影或音乐。
  • 语音识别:人工神经网络算法通常用于识别语音模式。 这在语音转文本和语言识别等方面非常有用。
  • 医疗诊断:人工智能搜索算法可以帮助加快医疗诊断速度。 例如,它们可以接受海量医学图像数据集的训练,并使用图像识别来检测照片、X 射线、CT 扫描等中的异常情况。
  • 寻路:无信息搜索算法可以帮助找到地图或网络上两点之间的最短路径。 例如,确定司机的最短送货路线。

AI 搜索算法的挑战和局限性

人工智能搜索算法可能通过高效的问题解决和决策而彻底改变了各个行业,但它们也带来了挑战和限制。 首先,所涉及的计算复杂性可能使它们的运行成本极其昂贵。 这是因为它们需要大量的处理、计算和内存资源来执行搜索。 在有限制的情况下,这限制了它们的有效性。

另一个问题是,知情搜索算法的好坏取决于它所使用的启发式算法。 如果启发式函数不准确,它可能会导致算法走上错误的道路并导致次优甚至不正确的解决方案。

此外,人工智能搜索算法通常被设计用来解决特定类型的问题,例如寻路和约束满足。 这对于某些任务很有用,但解决问题的范围仍然存在限制,特别是在解决更多样化的问题时。

解码人工智能搜索未来

人工智能搜索算法是解决各个领域复杂的现代问题的重要工具。 它们的多样性和多功能性使它们对于寻路、规划和机器学习等任务不可或缺。

尽管它们正在彻底改变机器人、医疗保健和金融等行业,但仍然存在巨大的潜力。 当前的局限性和挑战也是未来进步的机遇。 随着研究不断提高性能,人工智能搜索算法将继续在解决现实问题和改变技术面貌方面发挥日益突出的作用。

接下来你应该做什么

只要你准备好...我们可以通过以下四种方式帮助你从业务数据中获取见解:

  • 开始免费试用,看看 Elastic 如何帮助你的业务。
  • 浏览我们的解决方案,了解 Elasticsearch 平台的工作原理以及我们的解决方案如何满足你的需求。
  • 了解如何在企业中提供生成式人工智能。
  • 通过电子邮件、LinkedIn、Twitter 或 Facebook 与你认识的愿意阅读本文的人分享本文。

更多关于人工智能的文章,请参阅 “NLP - 自然语言处理,向量搜索及人工智能” 专栏。

原文:Understanding AI search algorithms | Elastic Blog

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python基础综合案例 --- 数据可视化

1.折线图可视化 1.按照 json 格式封装的数据可以在各类编程语言中流通:比如说一个人说法语,一个人说德语,互相听不懂,但是它们可以将各自说的语言统一转化为英语说出,这样互相之间就听的懂了 1.在python中,符合 json 格式的数据有以下两种形式: 第一种是字典存在形式;…

基于springboot+vue的中小企业设备管理系统(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

Potions (Hard Version)

题目链接:Potions (Hard Version) - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题意: 就是一路上我一直吃药,但是要保证吃完药我的健康值是正的,不能小于0,贪心优先队列,我们想让自己健康值累加大&#…

【java面试系列】服务的限流

目录 一、常用的限流算法1.固定窗口计数器(计数器算法)2 滑动窗口计数器算法3. 漏桶算法4 令牌桶算法(`常用`)Google开源项目Guava中的RateLimiter使用的就是令牌桶控制算法二、 分布式限流1、网关层(Nginx、Openresty、Spring Cloud Gateway等)流量限制nginx限流Spring Cl…

Leetcode日记 889. 根据前序和后序遍历构造二叉树

Leetcode日记 889. 根据前序和后序遍历构造二叉树 给定两个整数数组,preorder 和 postorder ,其中 preorder 是一个具有 无重复 值的二叉树的前序遍历,postorder 是同一棵树的后序遍历,重构并返回二叉树。 如果存在多个答案&#…

NLP 使用Word2vec实现文本分类

🍨 本文为[🔗365天深度学习训练营学习记录博客 🍦 参考文章:365天深度学习训练营 🍖 原作者:[K同学啊 | 接辅导、项目定制]\n🚀 文章来源:[K同学的学习圈子](https://www.yuque.com/…

产品渲染3D效果图一张多少钱,哪个平台更有性价比?

产品渲染3D效果图的价格受到多方面因素的影响,包括但不限于产品类型、渲染难度以及输出尺寸等。如果效果图需要后期处理,还有可能增加其他费用。接下来,我们来了解一下产品渲染效果图的费用情况。 1.产品渲染3D效果图一张多少钱? …

数据结构2月19日

题目&#xff1a;顺序表作业 代码&#xff1a; 功能区&#xff1a; #include <stdio.h>#include <stdlib.h>#include "./d2191.h"SeqList* create_seqList(){SeqList* list (SeqList*)malloc(sizeof(SeqList));if(NULL list){return NULL;}list->p…

PULpy安装与使用

今天试一下安装PULpy GitHub - WatsonLab/PULpy: Open prediction of Polysaccharide Utilisation Loci (PUL) 下载下面这个文件 https://github.com/WatsonLab/PULpy/blob/master/envs/PULpy.yaml mkdir PULpy cd PULpy #将刚刚下的文件放到PULpy文件夹中 conda env crea…

微服务篇之限流

一、为什么要限流 1. 并发的确大&#xff08;突发流量&#xff09;。 2. 防止用户恶意刷接口。 二、限流的实现方式 1. Tomcat限流 可以设置最大连接数&#xff0c;但是每一个微服务都有一个tomcat&#xff0c;实现起来非常麻烦。 2. Nginx限流 &#xff08;1&#xff09;控…

Java的编程之旅24——private私有方法

1.private的介绍 在面向对象编程中&#xff0c;private是一种访问修饰符&#xff0c;用于限制成员的访问范围。私有成员只能在所属的类内部访问&#xff0c;对外部的类或对象是不可见的。 private的使用可以带来以下几个好处&#xff1a; 封装实现细节&#xff1a;私有成员可…

程序媛的mac修炼手册--小白入门Java篇

最近因为要用CiteSpace做文献综述&#xff0c;间接接触Java了。所以&#xff0c;继Python、C之后&#xff0c;又要涉猎Java了。刺激&#xff01;&#xff01; 由于CiteSpace与Java要求版本高度匹配&#xff0c;有个匹配详情明天为大家讲解。总之&#xff0c;我的Java之旅开始于…

2024年 前端JavaScript入门到精通 第四天 笔记

4.1 函数的基本使用以及封装练习 4.2 函数的参数以及默认参数 函数的灵魂&#xff01;&#xff01;&#xff01; 4.3 函数封装数组求和案例 4.4 函数返回值return 4.5 函数返回值细节以及上午总结 4.6 函数返回值案例-求最大值和最 4.7 函数复习以及断点进入函数 4.8 作用域 4…

5个精美的wordpress中文企业主题模板

元宇宙WordPress主题模板 简洁大气的元宇宙 Metaverse WordPress主题模板&#xff0c;适合元宇宙行业的企业官网使用。 https://www.jianzhanpress.com/?p3292 职业技术培训WordPress主题模板 简洁大气的职业技术培训WordPress主题&#xff0c;适合用于搭建教育培训公司官方…

政安晨:【示例演绎机器学习】(三)—— 神经网络的多分类问题示例 (新闻分类)

政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 收录专栏: 政安晨的机器学习笔记 希望政安晨的博客能够对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让小伙伴们一起学习、交流进步&#xff0c;不论是学业还是工…

简单几步通过DD工具把云服务器系统Linux改为windows

简单几部通过DD安装其他系统&#xff0c;当服务器的web控制台没有我们要装的系统&#xff0c;就需要通过DD&#xff08;Linux磁盘&#xff09;工具来更改系统&#xff0c;&#xff08;已知支持KVM系统&#xff09; 本文如何简单的更换系统&#xff0c;不通过web控制台来更换&a…

蓝桥 算法训练 粘木棍(C++)

问题描述 有N根木棍&#xff0c;需要将其粘贴成M个长木棍&#xff0c;使得最长的和最短的的差距最小。 输入格式 第一行两个整数N,M。   一行N个整数&#xff0c;表示木棍的长度。 输出格式 一行一个整数&#xff0c;表示最小的差距 样例输入 3 2 10 20 40 样例输出 10…

Excel面试题及答案(1)

1.辅助列添加,快速填充方式填充隔行的编号;定位条件定位到空值后,右击---插入整行 2.利用通配符计算A3:A9含有车间的单元格个数(保留计算公式)。 3.利用身份证号提取 “性别”、“年月日”、“年龄” 性别:利用mid()方法,添加了一列辅助列,根据提取身份证后面第2位…

十八、图像像素类型转换和归一化操作

项目功能实现&#xff1a;对一张图像进行类型转换和归一化操作 按照之前的博文结构来&#xff0c;这里就不在赘述了 一、头文件 norm.h #pragma once#include<opencv2/opencv.hpp>using namespace cv;class NORM { public:void norm(Mat& image); };#pragma once二…

大语言模型的开山之作—探秘GPT系列:GPT-1-GPT2-GPT-3的进化之路

模型模型参数创新点评价GPT1预训练微调&#xff0c; 创新点在于Task-specific input transformations。GPT215亿参数预训练PromptPredict&#xff0c; 创新点在于Zero-shotZero-shot新颖度拉满&#xff0c;但模型性能拉胯GPT31750亿参数预训练PromptPredict&#xff0c; 创新点…