深度学习|词嵌入的演变

文本嵌入,也称为词嵌入,是文本数据的高维、密集向量表示,可以测量不同文本之间的语义和句法相似性。它们通常是通过在大量文本数据上训练 Word2Vec、GloVe 或 BERT 等机器学习模型来创建的。这些模型能够捕获单词和短语之间的复杂关系,包括语义、上下文,甚至语法的某些方面。这些嵌入可用于语义搜索等任务,其中文本片段根据含义或上下文的相似性进行排名,以及其他自然语言处理任务,如情感分析、文本分类和机器翻译。

嵌入 API 的演变和出现

在自然语言处理(NLP)领域,文本嵌入从根本上改变了我们理解和处理语言数据的方式。通过将文本信息转换为数字数据,文本嵌入促进了复杂的机器学习算法的开发,该算法能够进行语义理解、上下文识别和更多基于语言的任务。在本文[1]中,我们探讨了文本嵌入的进展并讨论了嵌入 API 的出现。

文本嵌入的起源

在NLP的早期阶段,使用了one-hot编码和词袋(BoW)等简单技术。然而,这些方法未能捕捉语言的上下文和语义的复杂性。每个单词都被视为一个孤立的单元,不了解它与其他单词的关系或其在不同上下文中的用法。

Word2Vec

alt

2013 年 Google 推出的 Word2Vec 标志着 NLP 领域的重大飞跃。 Word2Vec 是一种使用神经网络从大型文本语料库中学习单词关联的算法。因此,它生成单词的密集向量表示或嵌入,捕获大量语义和句法信息。单词的上下文含义可以通过高维空间中向量的接近程度来确定。

GloVe:用于单词表示的全局向量

alt

斯坦福大学的研究人员在 2014 年推出了 GloVe,进一步推进了词嵌入的概念。GloVe 通过在整个语料库中更全面地检查统计信息来创建词向量,从而在 Word2Vec 的基础上进行了改进。通过考虑本地上下文窗口和全局语料库统计数据,它可以实现更细致的语义理解。

基于 Transformer 的嵌入:BERT 及其变体

alt

2017 年推出的 Transformer 架构通过引入注意力机制的概念,彻底改变了 NLP。随后,谷歌于 2018 年发布的 BERT(来自 Transformers 的双向编码器表示)提供了上下文相关的词嵌入。 BERT 通过查看单词前后的单词来考虑单词的完整上下文,这与上下文无关模型的 Word2Vec 和 GloVe 不同。自 BERT 发布以来,已经开发了多种变体和改进,例如 RoBERTa、GPT(生成式预训练变压器)等。

嵌入 API 的出现

最近,机器学习应用程序的增长推动了提供预训练词嵌入的 API(应用程序编程接口)的开发。这些 API 简化了获取词嵌入的任务,让开发人员能够专注于构建应用程序。

例如 Google 的 TensorFlow Hub,它提供可以生成嵌入的预训练模型。这些模型包括多种选项,从 Word2Vec 和 GloVe 到基于转换器的模型(如 BERT)。同样,Hugging Face 的 Transformers 库提供了一种获取预训练 Transformer 嵌入的简单方法。

此类 API 极大地民主化了最先进的 NLP 技术的获取。开发人员可以将这些 API 集成到他们的应用程序中,以执行语义搜索、情感分析、文本分类等任务,而不需要广泛的机器学习专业知识或训练此类模型的资源。

因此,我们可以总结说 Embedding API 是一种机器学习 API,提供对预先训练的词嵌入的访问。词嵌入是词的向量表示,捕获词的含义以及与其他词的关系。它们允许实现 (NLP) 任务,例如语义搜索、情感分析和文本分类。

嵌入 API 很重要,因为它们使开发人员可以轻松访问最先进的 NLP 技术。过去,想要使用词嵌入的开发人员必须训练自己的模型。这是一个耗时且资源密集的过程。嵌入 API 使开发人员能够快速轻松地开始 NLP 任务,而无需拥有丰富的机器学习专业知识。

有许多可用的嵌入 API,包括:

  • Google’s PaLM 2, textembedding-gecko@latest
  • Google’s TensorFlow Hub
  • Hugging Face’s Transformers library
  • Stanford’s GloVe library
  • CoVe (Contextual Vectors)
  • FastText
  • ELMo

这些 API 提供各种预先训练的词嵌入,包括 Word2Vec、GloVe 和基于 Transformer 的模型(如 BERT)。

当开发人员使用嵌入 API 时,他们首先需要选择他们想要使用的预训练模型。然后,API 将返回输入文本中每个单词的向量表示。然后可以使用向量表示来执行 NLP 任务。

使用嵌入 API 的好处

  • 易于使用:嵌入 API 使开发人员可以轻松开始 NLP 任务。他们不需要任何机器学习方面的专业知识或资源来训练自己的模型。
  • 准确性:嵌入 API 为各种 NLP 任务提供高精度。这是因为他们接受了大型文本和代码数据集的训练。
  • 可扩展性:嵌入 API 是可扩展的,因此它们可用于处理大量文本。

嵌入 API 是 NLP 任务的强大工具。它们使开发人员可以轻松访问最先进的 NLP 技术并执行语义搜索、情感分析和文本分类等任务。随着 NLP 领域的不断发展,嵌入 API 将变得更加重要。

总结

自 NLP 出现以来,文本嵌入经历了重大演变,每一次进步都让我们更接近于有效模仿人类对语言的理解。随着嵌入 API 的出现,这些强大的工具可供广大开发人员使用,进一步加速了 NLP 应用程序的进步。

Reference

[1]

Source: https://dr-arsanjani.medium.com/the-evolution-of-text-embeddings-75431139133d

本文由 mdnice 多平台发布

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

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

相关文章

要求CHATGPT高质量回答的艺术:提示工程技术的完整指南—第 27 章:如何避开和绕过所有人工智能内容检测器

要求CHATGPT高质量回答的艺术:提示工程技术的完整指南—第 27 章:如何避开和绕过所有人工智能内容检测器 使用高易错性和突发性方法 与人工智能生成的文本相比,人类写作往往具有更多的突发性,这是由于人类往往比人工智能生成的文…

【开源】基于Vue+SpringBoot的陕西非物质文化遗产网站

文末获取源码,项目编号: S 065 。 \color{red}{文末获取源码,项目编号:S065。} 文末获取源码,项目编号:S065。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 设计目标2.2 研究内容2.3 研究方法与…

GEE中Landsat中大改变——Landsat Collection 1 到 Collection 2 影像集合迁移

Landsat Collection 1 到 Collection 2 迁移 本指南提供了从Landsat Collection 1 数据切换 到 Collection 2 数据的说明。自 2022 年以来,集合 2 已在 Earth Engine 中完全可用, 自 2021 年 12 月 31 日以来,美国地质调查局 (USGS) 未生成集合 1 数据。Landsat Collection …

3D点云:平面模型上提取凸(凹)多边形方法

目录 一、实现原理 二、实现代码 三、运行结果 一、实现原理 首先要在点云中提取出潜在平面,对原始点云数据进行滤波,根据提取出的平面模型系数从滤波后的点云进行投影,然后根据投影后的点云计算其对应的二维凹(凸)多边形。 二、实现代码 #in

webrtc 设置不获取鼠标 启用回声消除

数 getDisplayMedia()(属于 navigator.mediaDevices 的一部分)与 getUserMedia() 类似,用于打开显示内容(或部分内容,如窗口)。返回的 MediaStream 与使用 getUserMedia() 时相同。 显示鼠标与否 getDisp…

案例064:基于微信小程序的考研论坛设计

文末获取源码 开发语言:Java 框架:SSM JDK版本:JDK1.8 数据库:mysql 5.7 开发软件:eclipse/myeclipse/idea Maven包:Maven3.5.4 小程序框架:uniapp 小程序开发软件:HBuilder X 小程序…

正则表达式(7):转义符

正则表达式(7):正则表达式(5):转义符 本博文转载自 此处,我们来认识一个常用符号,它就是反斜杠 “\” 反斜杠有什么作用呢?先不着急解释,先来看个小例子。 …

【游戏引擎 - C#脚本系统】6、C#端调用C++函数

强烈建议阅读Mono官方文档 有mono库提供的API&#xff0c;这个过程非常简单&#xff0c;通过mono在C中注册函数&#xff0c;然后在C#中声明和调用这些函数 1、在C中注册Internal Call&#xff1a; C代码中定义一个函数 static void CppFunc() {std::cout << "这…

24 递归求解二叉树打家劫舍

问题描述&#xff1a;在上次大街万一条街道之后和一圈房屋后&#xff0c;小偷又发现了一个新的可行窃的地区。这个地区只有一个入口&#xff0c;我们称之为根。除了根之外&#xff0c;每栋房子有且只有一个父房子与之项链&#xff0c;一番侦查之后&#xff0c;聪明的小偷意识到…

CGAL的3D简单网格数据结构

由具有多个曲面面片的多面体曲面生成的多域四面体网格。将显示完整的三角剖分&#xff0c;包括属于或不属于网格复合体、曲面面片和特征边的单元。 1、网格复合体、 此软件包致力于三维单纯形网格数据结构的表示。 一个3D单纯形复杂体由点、线段、三角形、四面体及其相应的组合…

从零开始搭建链上dex自动化价差套利程序(13)

优化 优化触发条件&#xff1a; 之前的触发条件有问题&#xff0c;导致迟迟不能触发&#xff0c;优化后触发条件如下&#xff1a; dydx_take 0.0002apex_make 0.0005​float(b_first_price_apex)-float(s_first_price_dydx) > float(b_first_price_apex)*apex_makefloat…

华为数通---配置Smart Link主备备份示例

定义 Smart Link&#xff0c;又叫做备份链路。一个Smart Link由两个接口组成&#xff0c;其中一个接口作为另一个的备份。Smart Link常用于双上行组网&#xff0c;提供可靠高效的备份和快速的切换机制。 目的 下游设备连接到上游设备&#xff0c;当使用单上行方式时&…

Microsoft 365 Copilot正式上线,如何稳定访问体验?

如果将微软对人工智能的投资看成一场豪赌&#xff0c;Microsoft Copilot无疑是现阶段最受瞩目的赌注。2023年9月正式发布的Microsoft Copilot是一种基于大型语言模型&#xff08;LLM&#xff09;和微软图形&#xff08;Microsoft Graph&#xff09;的数据和人工智能&#xff08…

贝锐花生壳3大安全能力,保障网络服务安全远程连接

在没有公网IP的情况下&#xff0c;使用内网穿透工具&#xff0c;将本地局域网服务映射至外网&#xff0c;虽然高效快捷&#xff0c;但信息安全也是不可忽略的方面。 对此&#xff0c;贝锐花生壳提供了多维度的安全防护能力&#xff0c;满足不同场景下用户安全远程访问内网服务的…

svn log | less

svn log | less 是一个命令行指令&#xff0c;用于查看 Subversion (SVN) 仓库的提交日志&#xff0c;并通过分页方式进行浏览。 具体而言&#xff0c;svn log 命令用于获取 SVN 仓库的提交历史记录。而 less 命令则是一个分页器&#xff0c;它可以将输出内容逐页显示在终端窗…

阿里巴巴通义实验室周畅:让大模型率先在PC上“跑起来”

12月7日&#xff0c;以“AI新生态 智启新元年”为主题的首届AI PC产业创新论坛在北京联想集团总部举办。阿里巴巴-通义实验室、通义千问大模型负责人周畅受邀出席分享关于端侧大模型的技术进展&#xff0c;以及终端设备与AI结合的发展前景。 周畅表示&#xff0c;大模型技术的…

【Python百宝箱】Python与移动应用开发:框架对比与交互全指南

一站式指南&#xff1a;如何用Python打造移动应用的完美体验 前言 随着移动应用市场的不断扩大&#xff0c;开发者们寻求更便捷、灵活的方式来构建跨平台的应用。本文将带领读者深入探讨Python在移动应用开发中的应用&#xff0c;聚焦于几个主要框架&#xff0c;并详细介绍它…

Python django-xadmin:构建强大的 Django 后台管理系统

概要 Django作为一款强大的Web框架&#xff0c;其后台管理系统提供了便捷的数据管理和操作方式。而 django-xadmin 则为Django的后台管理系统提供了更加强大的功能和灵活的定制选项。在本文中&#xff0c;我们将深入研究如何使用django-xadmin&#xff0c;并通过详细的示例代码…

企业博客SEO:优化SOP,助您提升搜索引擎可见性

企业博客是互联网时代企业与用户沟通的重要渠道之一&#xff0c;引流成本也比较低。然而&#xff0c;依然有企业会处在3种状态&#xff1a; 1. 有博客&#xff0c;但内容更新不积极或搁置 2. 有博客&#xff0c;但内容散乱 3. 根本就没有博客 如果是这几种状态&#xff0c;…

Java网络编程-深入理解BIO、NIO

深入理解BIO与NIO BIO BIO 为 Blocked-IO&#xff08;阻塞 IO&#xff09;&#xff0c;在 JDK1.4 之前建立网络连接时&#xff0c;只能使用 BIO 使用 BIO 时&#xff0c;服务端会对客户端的每个请求都建立一个线程进行处理&#xff0c;客户端向服务端发送请求后&#xff0c;…