Elasticsearch:什么是余弦相似度?

这篇具有很好参考价值的文章主要介绍了Elasticsearch:什么是余弦相似度?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

elasticsearch 余弦相似度,Elasticsearch,AI,Elastic,elasticsearch,大数据,搜索引擎,全文检索,人工智能

余弦相似度是数据科学、文本分析和机器学习领域的基本概念。 如果你想知道什么是余弦相似度或者它如何在现实世界的应用程序中使用,那么你来对地方了。

本指南旨在让你深入了解相似性是什么、其数学基础、优点及其在不同领域的各种应用。读完本指南后,你将能够充分理解、实施并充分利用你的项目或研究中的相似性。

Cosine similarity 是在我们在 Elasticsearch 向量搜索配置 dense vector 相似性其中的一个选项。具体可以详细参阅 dense vector。

余弦相似度的意义

余弦相似度是一种衡量两组信息相似程度的数学方法。 用最简单的术语来说,它可以帮助我们通过查看两个元素所指向的 “方向” 来理解它们之间的关系,而不是仅仅根据它们各自的值进行比较。

想象一下,你是一名书籍爱好者,并且你对三本书进行了评分:《月球之谜》、《海洋的秘密》和《凤凰飞翔》。 你已按照 1 到 5 的等级对它们进行评分。你的朋友也按照相同的等级对这些相同的书进行了评分:

elasticsearch 余弦相似度,Elasticsearch,AI,Elastic,elasticsearch,大数据,搜索引擎,全文检索,人工智能

你们两个评分都可以表示为列表,或者用数学术语表示为 “向量”,表示为 [5, 3, 4] 和 [4, 2, 4]。

你和你的朋友有类似的评分吗? 你可以查看列表并得出定性的 “是的,它们非常接近”,或者你可以使用余弦相似度来达到定量测量! 我们将回到这个例子,但余弦相似度是一个在搜索引擎、自然语言处理和推荐系统等领域有着深远应用的概念。

余弦相似度提供了一种理解数据如何相互关联的方法,而不会陷入每个数据点所代表的具体细节的困境。 它还允许我们快速将信息与数十、数百甚至数千个元素进行比较。

余弦相似度广泛应用于自然语言处理 (NLP)、搜索算法和推荐系统等应用中。 它提供了一种强大的方法来理解文档、数据集或图像之间的语义相似性。 例如,向量搜索引擎中经常使用相似度来查找与给定查询最相关的记录,从而使搜索过程更加高效和精确。 (有关向量搜索的更多信息,你可以参考这篇文章!)

余弦相似度的定义

余弦相似度是衡量多维空间中两个非零向量之间角度余弦的度量。 稍后我们将了解其确切含义,但现在只需理解该值越接近 1,向量就越相似。 余弦相似度是有效的,因为它捕获向量的方向(或“方向”)而不是它们的大小,这使得它对数据模式的相似性敏感,而对向量的大小不敏感。

在数学上,它计算余弦相似度。 请注意,执行余弦相似度的最有效方法是将所有向量标准化为单位长度,并改为使用 dot_product。 仅当需要保留原始向量且无法提前对其进行标准化时,才应使用余弦。 文档 _score 的计算方式为 (1 + cosine(query, vector)) / 2。余弦相似度不允许向量具有零幅度,因为在这种情况下未定义余弦。

elasticsearch 余弦相似度,Elasticsearch,AI,Elastic,elasticsearch,大数据,搜索引擎,全文检索,人工智能

从余弦的曲线我们可以看到,当向量的角度为 0 时,余弦的值为最大 1。但凡有一些偏差,那么它的值就会变小 (0-1)。

一个例子

让我们回顾一下我们的图书评级示例。 我们有两个向量:

你的评分:[5, 3, 4]

你朋友的评分:[4, 2, 4]

使用余弦相似度,我们可以量化这些向量的相似程度。 余弦相似度将返回 -1 到 1 之间的值; 值越接近 1 表示相似度越高。 在我们的示例中,计算余弦相似度得到的值为 0.9899,这表明你和你的朋友对书籍的品味非常相似。 如果你有另一个朋友的评分为 [1, 5, 2],则余弦相似度将为 0.7230,表明品味不太相似。

math3d.org 网站可以提供一种可视化二维和三维向量的有用方法。 通过我们简单的示例向量,我们可以看到 [5, 3, 4] 和 [4, 2, 4] 之间的角度小于 [5, 3, 4] 和 [1, 5, 2] 之间的角度:

elasticsearch 余弦相似度,Elasticsearch,AI,Elastic,elasticsearch,大数据,搜索引擎,全文检索,人工智能

如果你想知道 “如果较小的角度意味着两个向量更相似,为什么我们不只使用角度 - 为什么所有这些复杂的数学?”,我们稍后会回答!

数据分析和 NLP 的重要性

余弦相似度在数据分析和自然语言处理等领域非常宝贵。 在 NLP 中,它经常用于文本挖掘、情感分析和文档聚类等任务。 该指标有助于比较两段文本以了解它们的语义相似性,这对于做出准确的推荐或分类至关重要。

余弦相似度与其他相似度度量有何不同

有多种方法可以测量数据集之间的相似性,欧几里得距离是另一种常用的度量标准。 欧几里德距离关注的是空间中两点之间的直线距离,而余弦相似度关注的是两个向量之间的角度。 这使得余弦相似性在捕获两组数据之间的模式相似性方面更加稳健,即使它们的大小不同。

如果我们想得到欧几里得的直线距离,我们可以在 dense vector 数据类型里设置 similarity: l2_norm。

例如,如果两个文档具有相同的单词但频率不同,则欧几里得距离可能会由于幅度(频率)的差异而认为它们完全不同。 然而,余弦相似度会更有效地捕获它们的相似度,因为它对单词的频率不太敏感,而更关注它们在文档中的存在或不存在。

余弦相似度的 “近亲” 是点积相似度。 它通常在矢量已经归一化(其大小为 1)时使用,从而避免除以其大小的乘积(始终为 1!)的计算步骤。 许多向量嵌入模型输出归一化向量,使点积相似度计算更快。

如果我们想得到点击 (dot product) 相似度,我们可以在 dense vector 里设置 simliarity: dot_product

通过 Elasticsearch 上的向量搜索将余弦相似度付诸实践

综上所述,余弦相似度提供了一种稳健、有效的相似度测量方法,具有广泛的应用,特别是在 NLP 和数据分析领域。 它关注向量的方向而不是大小,这使其与欧几里得距离等其他相似性度量区分开来。 无论你是在分析文本数据、提出建议还是进行复杂的数据分析,了解余弦相似度的细微差别都会非常有益。

准备好将余弦相似度付诸实践了吗? 请详细阅读文章 “Elasticsearch:如何部署 NLP:文本嵌入和向量搜索”。对于之前的评分向量例子,我们可以参考文章 “Elasticsearch:基于 Vector 的打分”。

余弦相似度的优点

余弦相似度是一种广泛使用的度量,在各种应用中具有多种优势,例如文本分析、推荐系统等。 以下是一些使其成为测量向量之间相似性的首选的主要优点。

不依赖于规模而变化

余弦相似度是不依赖于规模而变化,这意味着它不受向量大小的影响。 这在你只想关注向量的方向性而不是它们的长度的情况下特别有用。 无论向量中的值是数千万还是数百万,余弦相似度都将保持不变,从而使其在不同尺度上具有通用性。

降维

使用余弦相似度的另一个优点是它与主成分分析 (PCA) 和 t 分布随机邻域嵌入 (t-SNE) 等技术的兼容性。 由于它以角度而不是距离来衡量相似性,因此你可以减少向量的维度,而不会显着影响余弦相似性度量。

简单高效

计算余弦相似度的公式很简单,只需要向量及其大小的点积。 这种简单性带来了高效的计算,使其适合实时应用程序和大型数据集。

角度测量

与其他基于距离的相似性度量不同,余弦相似性考虑了向量之间的角度,提供了更直观的相似性感觉。 角度越小表示相似度越高,并且度量范围在 -1 和 1 之间,使解释更容易。

广泛应用于文本分析

余弦相似度在文本分析领域特别流行。 当文档转换为嵌入向量时,余弦相似度有效地捕获了不同文档之间的 “角度”,突出了内容的相关程度。

通过考虑这些优势,就可以清楚为什么余弦相似度是各种机器学习和数据科学应用中的流行选择。

揭示余弦相似度的力量

在结束时,让我们花点时间总结一下我们在这篇关于相似性的广泛指南中讨论的内容。 我们深入研究了这个令人着迷的指标的核心原理,向你展示了它的数学基础。 不要忘记它的众多优点,包括其规模不变性以及与降维技术的兼容性,这使其成为机器学习和数据科学领域的重要工具。

如果你想了解更关于 Elasticsearch 在向量搜索领域里的应用,请详细阅读 “Elastic:开发者上手指南” 中的 “NLP - 自然语言处理及向量搜索” 章节。\

更多阅读:Elasticsearch:如何使用 Elasticsearch 和 Python 构建面部识别系统文章来源地址https://www.toymoban.com/news/detail-774047.html

到了这里,关于Elasticsearch:什么是余弦相似度?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ChatGPT 和 Elasticsearch:使用 ChatGPT 处理 Elastic 数据的插件

    作者:Baha Azarmi 你可能已经阅读过这篇关于我们将 Elasticsearch 的相关性功能与 OpenAI 问答功能相结合的博文。 该帖子的主要思想是说明如何将 Elastic 与 OpenAI 的 GPT 模型结合使用来构建响应并向用户返回上下文相关的内容。 我们构建的应用程序可以公开一个搜索端点并被任何

    2024年02月06日
    浏览(44)
  • Elasticsearch:如何通过 3 个简单步骤从 Elastic 数据中删除个人身份信息

    作者:Peter Titov 对于任何组织来说,个人身份信息 (Personally Identifiable information, PII) 合规性都是一个日益严峻的挑战。 无论你是在电子商务、银行、医疗保健还是其他数据敏感的领域,PII 都可能会在无意中被捕获和存储。 拥有结构化日志,可以轻松快速识别、删除和保护敏

    2024年02月13日
    浏览(50)
  • 【向量数据库】相似向量检索Faiss数据库的安装及余弦相似度计算(C++)

    Faiss 是一个强大的向量相似度搜索库,具有以下优点: 高效的搜索性能:Faiss 在处理大规模向量数据时表现出色。它利用了高度优化的索引结构和近似搜索算法,可以快速地执行最近邻搜索和相似度匹配,具有很低的查询延迟。 高度可扩展:Faiss 提供了多种索引结构和算法

    2024年02月07日
    浏览(55)
  • Observability:如何把 Elastic Agent 采集的数据输入到 Logstash 并最终写入到 Elasticsearch

    在之前的文章 “安装独立的 Elastic Agents 并采集数据 - Elastic Stack 8.0”,我们详述了如何使用 No Fleet Server 来把数据写入到 Elasticsearch 中。在今天的文章中,我们来详述如下使用 Elastic Agents 在独立(standalone)模式下来采集数据并把数据最终通过 Logstash 来写入到 Elasticsearch 中去

    2024年02月11日
    浏览(53)
  • 基于Pandas+余弦相似度+大数据智能护肤品推荐系统——机器学习算法应用(含Python工程源码)+数据集

    本项目结合了Pandas数据处理工具和机器学习技术,旨在构建一个智能的护肤品推荐系统。该系统不仅会考虑用户的肤质特征,还会考虑过敏反应等因素,并筛选出相互禁忌的产品,以便为不确定如何选择护肤品的用户提供个性化的推荐。 首先,项目会收集用户的肤质信息,包

    2024年02月07日
    浏览(36)
  • Elasticsearch:NLP 和 Elastic:入门

    自然语言处理 ( N atural L anguage P rocessing - NLP) 是人工智能 (AI) 的一个分支,专注于尽可能接近人类解释的理解人类语言,将计算语言学与统计、机器学习和深度学习模型相结合。 AI - Artificial Inteligence 人工智能 ML - Machine Learning 机器学习 DL - Deep Learning  深度学习 NLP - Naturual L

    2024年02月05日
    浏览(48)
  • java文本相似度【余弦相似度】

    为了实现文本相似度对比,我们可以使用余弦相似度算法。首先,我们需要将文本转换为向量,然后计算两个向量之间的余弦相似度。以下是一个简单的Java实现: 这个代码示例首先定义了一个 TextSimilarity 类,其中包含一个 main 方法用于测试文本相似度计算。 calculateCosineSi

    2024年02月10日
    浏览(42)
  • Elasticsearch8重置elastic用户密码

    elastic可以说是es中预留的一个用户名,在按照官网yum安装方法安装启动后通过下面的方式测试是否正确运行 因为安装完成后自动开启了安全访问,所以必须要加 --cacert参数指定安装自动生成的认证文件,协议必须是https,但是结果返回了: 很纳闷,不知道为啥,既然是无法认

    2024年02月12日
    浏览(41)
  • Elasticsearch:在 Elastic 中访问机器学习模型

    作者:Bernhard Suhm, Josh Devins Elastic® 让你可以应用适合你的用例和 ML 专业水平的机器学习 (ML)。 你有多种选择: 利用内置的模型。 除了我们的可观察性和安全解决方案中针对特定安全威胁和系统问题类型的模型外,你还可以开箱即用地使用我们专有的 Elastic Learned Sparse Encod

    2024年02月14日
    浏览(44)
  • Elasticsearch 向量相似搜索

    Elasticsearch 向量相似搜索的原理涉及使用密集向量(dense vector)来表示文档,并通过余弦相似性度量来计算文档之间的相似性。以下是 Elasticsearch 向量相似搜索的基本原理: 向量表示文档 : 文档的文本内容经过嵌入模型(如BERT、Word2Vec等)处理,得到一个密集向量(dense v

    2024年02月04日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包