深度学习|词嵌入的演变

news2024/11/22 21:03:13

文本嵌入,也称为词嵌入,是文本数据的高维、密集向量表示,可以测量不同文本之间的语义和句法相似性。它们通常是通过在大量文本数据上训练 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.coloradmin.cn/o/1307170.html

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

相关文章

利用poi实现将数据库表字段信息导出到word中

研发文档对于开发人员来说都不陌生了,而研发文档里重要的一部分就是表结构设计,需要我们在word建个表格把我们数据库中的表字段信息填进去,表多的话靠我们手动去填非常累人!!! 因此作为开发人员可不可以写…

HarmonyOS—实现UserDataAbility

UserDataAbility接收其他应用发送的请求,提供外部程序访问的入口,从而实现应用间的数据访问。Data提供了文件存储和数据库存储两组接口供用户使用。 文件存储 开发者需要在Data中重写FileDescriptoropenFile(Uriuri,Stringmode)方法来操作文件&#xf…

记账本选择标签选择时间,计算器---记录一下

html部分 <template><view class"pages-main"><!-- 标题栏 --><!-- #ifndef MP-TOUTIAO --><view class"" :style"height:barHeight px;"></view><!-- #endif --><!-- #ifdef MP-TOUTIAO -->&…

zookeeper1==zookeeper源码阅读,源码启动ZK集群

下载源码 Tags apache/zookeeper GitHub https://codeload.github.com/apache/zookeeper/zip/refs/tags/release-3.9.1 JDK8 MAVEN3.8.6 mvn -DskipTeststrue package 配置ZK1 zkServer.cmd中指出了启动类是 QuorumPeerMain QuorumPeer翻译成集群成员比较合理&#xf…

Nacos配置Mysql数据库

目录 前言1. 配置2. 测试前言 关于Nacos的基本知识可看我之前的文章: Nacos基础版 从入门到精通云服务器 通过docker安装配置Nacos 图文操作以下Nacos的版本为1.1.3 1. 配置 对应的配置文件路径如下: 对应的application.properties为配置文件 需配置端口号 以及 mysql中的…

Mysql的事务日志

Mysql的事务具有四个特性&#xff1a;原子性、一致性、隔离性、持久性。那么事务的四种特性分别是靠什么机制实现的呢&#xff1f; 事务的隔离性由锁机制来保证 事务的原子性、一致性、持久性则由redo log和Undo log来保证。 - redo log是重做日志&#xff0c;提供再写入操作&…

docker-compose安装nacos和msql

docker-compose安装nacos和msql 前言前提已经安装docker-compose&#xff0c;如果没有安装&#xff0c;则可以查看上面系列文章中的安装教程。并且文章中使用的是mobaxterm连接虚拟机。 1、下载2、创建并运行 前言 前提已经安装docker-compose&#xff0c;如果没有安装&#x…

BugKu-Web-Flask_FileUpload(模板注入与文件上传)

Flask Flask是一个使用Python编写的轻量级Web应用框架。它是一个微型框架&#xff0c;因为它的核心非常简单&#xff0c;但可以通过扩展来增加其他功能。Flask的核心组件包括Werkzeug&#xff0c;一个WSGI工具箱&#xff0c;以及Jinja2&#xff0c;一个模板引擎。 Flask使用BSD…

Windows提权方法

简介 内网提权&#xff0c;本意为通过某些服务的漏洞&#xff0c;从而获取到该服务器的shell&#xff0c;进而内网渗透&#xff0c;最终从普通用户变成超级管理员的一个过程 以下是一些常见的内网提权原理和方法&#xff1a; 横向移动&#xff1a;攻击者通过在内网中的一台受感…

fuxploide,一款针对文件上传的Fuzz检测工具

fuxploide,一款针对文件上传的Fuzz检测工具 1.工具概述2.安装3.参数解析4.使用案例1.工具概述 Fuxploider 是一种开源渗透测试工具,可自动检测和利用文件上传表单缺陷。该工具能够检测允许上传的文件类型,并能够检测哪种技术最适合在所需的 Web 服务器上上传 Web Shell 或任…

【同步FIFO_2023.12.13】

同步fifo&#xff0c;写时钟和读时钟为同一个时钟&#xff0c;用于交互数据缓冲 fifo的深度&#xff1a;同一块数据内存的大小 reg [2:0] Mem [8];//宽度3&#xff0c;深度8典型同步fifo的三部分 fifo写控制逻辑&#xff1a;写地址、写有效信号&#xff0c;fifo写满、写错等状…

Linux中的权限问题【详解】

shell命令以及运行原理 Windows以图形化界面为主要交互方式&#xff0c;简单高效&#xff0c;易于日常使用。Linux以命令行界面为主要交互方式&#xff0c;操作相较windows&#xff0c;mac来说比较困难一些&#xff0c;但linux也有向着图形化界面努力的桌面系统&#xff0c;例…

遥感深度学习:如何读取TIFF文件和切片成256*256?

博客已同步微信公众号&#xff1a;GIS不要炒茄子 01 前言 最近打算认真从头开始学习深度学习和遥感结合的相关内容&#xff0c;主要通过Python进行处理。此前用深度学习进行遥感相关的学习一直都是用 tensorflow3.0 框架&#xff0c;但是考虑很多因素我后面打算换用 Pytorch…

JetBrains2023年度报告,编程领域的风向标

前言 JetBrains是一家位于捷克的软件开发公司&#xff0c;有很多知名的开发IDE都是他们家的&#xff0c;比如IntelliJ IDEA、CLion、PyCharm、WebStorm等等&#xff0c;还有Kotlin编程语言也是JetBrains开发的&#xff0c;后来成为Android官方开发语言。 自2017年JetBrains发…

HNU-算法设计与分析-讨论课2

第二次小班讨论 &#xff08;以组为单位&#xff0c;每组一题&#xff0c;每组人人参与、合理分工&#xff0c;ppt中标记分工&#xff0c;尽量都有代码演示&#xff09; 算法分析题 3-4、4-1(要求:有 ppt和代码演示讲解 算法实现题 3-23、4-1(要求:有ppt 和代码演示讲解 数学之…

使用HTTP协议在Linux上进行API调用

在Linux系统上使用HTTP协议进行API调用是一种常见的操作&#xff0c;有时候我们需要调用一些外部API来获取数据或者进行自动化操作。下面是一个使用HTTP协议在Linux上进行API调用的代码示例&#xff0c;希望能够帮助你更好地理解这个过程。 首先&#xff0c;我们需要使用curl命…

【Docker】swarm stack部署多service应用

前面我们已经学习过了Docker Compose&#xff0c;它可以用来进行一个完整的应用程序相互依赖的多个容器的编排的&#xff0c;但是缺点是只能在单机模式使用&#xff0c;不能在分布式多机器上使用&#xff1b;前面我们也学习了Docker swarm&#xff0c;它可以将单个服务部署为多…

SOLIDWORKS CSWE认证考试报名

​ SOLIDWORKS CSWE是高级别的SOLIDWORKS认证&#xff0c;是一项充满挑战性的艰巨任务。CSWE测试不是简单注册就可以的&#xff0c;是要有一定资格才能参加考试&#xff0c;您首先需要获得CSWP证书&#xff0c;然后还得通过5个CSWPA系列主题考试中的至少4个主题&#xff08;钣金…

基于UDP的套接字通信

基于UDP的套接字通信 1、通信流程1.1 服务端1.2 客户端 2、通信函数3、通信代码3.1 服务端代码3.2 客户端代码 原文链接 udp是一个面向无连接的&#xff0c;不安全的&#xff0c;报式传输层协议&#xff0c;udp的通信过程默认也是阻塞的。 UDP通信不需要建立连接 &#xff0c;…