AIGC系列之一-一文理解什么是Embedding嵌入技术

摘要:嵌入技术(Embedding)是一种将高维数据映射到低维空间的技术,在人工智能与图形学研究中被广泛应用。本文将介绍嵌入技术的基本概念、原理以及在 AIGC(Artificial Intelligence and Graphics Computing)和实际应用场景中的应用。

什么是‍‍Embedding

原理是什么‍

有哪些应用场景‍‍‍‍‍‍‍‍‍

01

什么是Embedding‍‍

Embedding模型是一种在机器学习和自然语言处理中广泛应用的技术,它旨在将高维度的数据(如文字、图片、视频等)映射到低维度的空间。Embedding向量是一个N维的实值向量,它将输入的数据表示成一个连续的数值空间中的点。这种嵌入可以是一个词、一个类别特征(如商品、电影、物品等)或时间序列特征等。通过学习,Embedding向量可以更准确地表示对应特征的内在含义,使几何距离相近的向量对应的物体有相近的含义。Embedding层往往是神经网络的第一层,它可以训练,可以学习到对应特征的内在关系。一个模型学习到的Embedding,也可以被其他模型重用。Embedding的目标是在大数据中体现相关性的主体,通过Embedding向量表征学习到主体的向量信息,使用向量度量公式也能体现出主体间的相关性。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

使用通俗易懂的语言来表达embedding技术,是使用一种模型生成方法,将非结构化的数据,例如文本、图片、视频等数据映射成向量数据,向量都是由数值表达的向量,向量可以被计算机直接处理。同时,生成的向量还可以表达事物本身的关联性和特征,例如图片的相关性,语意相关性等。

图片

图片

如上图所示,目前生成embeding方法的模型有如下几类:‍‍‍‍‍‍‍‍

1、Word2Vec:

Word2Vec 是一种词嵌入(Word Embedding)模型,是嵌入技术在自然语言处理中的一个典型应用。这个模型通过学习将单词转化为连续的向量表示,以便计算机更好地理解和处理文本。

Word2Vec 模型基于两种主要算法:CBOW(Continuous Bag of Words)和 Skip-gram。CBOW 模型根据上下文单词预测目标单词,而 Skip-gram 模型则根据目标单词预测上下文单词。通过训练模型,可以得到每个单词的向量表示,这些向量具有一定的语义信息,能够反映单词之间的相似性和差异性。

2、GloVe:

GloVe(Global Vectors for Word Representation)是一种用于自然语言处理的词嵌入模型,它与其他常见的词嵌入模型(如Word2Vec和FastText)类似,可以将单词转化为连续的向量表示。

GloVe模型的原理是通过观察单词在语料库中的共现关系,学习得到单词之间的语义关系。具体来说,GloVe模型将共现概率矩阵表示为两个词向量之间的点积和偏差的关系,然后通过迭代优化来训练得到最佳的词向量表示。

GloVe模型的优点是它能够在大规模语料库上进行有损压缩,得到较小维度的词向量,同时保持了单词之间的语义关系。这些词向量可以被用于多种自然语言处理任务,如词义相似度计算、情感分析、文本分类等。

3、FastText:

FastText是一种基于词袋模型的词嵌入技术,与其他常见的词嵌入模型(如Word2Vec和GloVe)不同之处在于,FastText考虑了单词的子词信息。

FastText的核心思想是将单词视为字符的n-grams的集合,在训练过程中,模型会同时学习单词级别和n-gram级别的表示。这样可以捕捉到单词内部的细粒度信息,从而更好地处理各种形态和变体的单词。

与其他模型相比,FastText的优势在于它能够处理未登录词(Out-of-Vocabulary)和稀疏词,因为它可以通过子词信息对这些词进行建模。另外,FastText还能够处理各种语言的文本数据,并且具有快速训练和推断速度的优势。

4、大模型的 Embeddings:如OpenAI官方发布的 第二代模型:text-embedding-ada-002。它最长的输入是8191个tokens,输出的维度是1536。

1、降维: 在许多实际问题中,原始数据的维度往往非常高。例如,在自然语言处理中,如果使用One-hot编码来表示词汇,其维度等于词汇表的大小,可能达到数十万甚至更高。通过Embedding,我们可以将这些高维数据映射到一个低维空间,大大减少了模型的复杂度。

2、捕捉语义信息: Embedding不仅仅是降维,更重要的是,它能够捕捉到数据的语义信息。例如,在词嵌入中,语义上相近的词在向量空间中也会相近。这意味着Embedding可以保留并利用原始数据的一些重要信息。

3、适应性: 与一些传统的特征提取方法相比,Embedding是通过数据驱动的方式学习的。这意味着它能够自动适应数据的特性,而无需人工设计特征。

4、泛化能力: 在实际问题中,我们经常需要处理一些在训练数据中没有出现过的数据。由于Embedding能够捕捉到数据的一些内在规律,因此对于这些未见过的数据,Embedding仍然能够给出合理的表示。

5、可解释性: 尽管Embedding是高维的,但我们可以通过一些可视化工具(如t-SNE)来观察和理解Embedding的结构。这对于理解模型的行为,以及发现数据的一些潜在规律是非常有用的。

图片

02

原理是什么‍‍‍

为了更好理解embedding的原理我们来以GloVe 来说明详细过程

1、这是一个单词“king”的词嵌入(在维基百科上训练的GloVe向量)得到的结果是:‍

[ 0.50451 , 0.68607 , -0.59517 , -0.022801, 0.60046 , -0.13498 , -0.08813 , 0.47377 , -0.61798 , -0.31012 , -0.076666, 1.493 , -0.034189, -0.98173 , 0.68229 , 0.81722 , -0.51874 , -0.31503 , -0.55809 , 0.66421 , 0.1961 , -0.13495 , -0.11476 , -0.30344 , 0.41177 , -2.223 , -1.0756 , -1.0783 , -0.34354 , 0.33505 , 1.9927 , -0.04234 , -0.64319 , 0.71125 , 0.49159 , 0.16754 , 0.34344 , -0.25663 , -0.8523 , 0.1661 , 0.40102 , 1.1685 , -1.0137 , -0.21585 , -0.15155 , 0.78321 , -0.91241 , -1.6106 , -0.64426 , -0.51042 ]

2、这是一个包含50个数字的列表。通过观察数值我们看不出什么,但是让我们稍微给它可视化,以便比较其它词向量。我们把所有这些数字放在一行:

图片

图片

3、让我们根据它们的值对单元格进行颜色编码(如果它们接近2则为红色,接近0则为白色,接近-2则为蓝色):

图片

图片

4、我们将忽略数字并仅查看颜色以指示单元格的值。现在让我们将“king”与其它单词进行比较:

图片

图片

5、看看“Man”和“Woman”彼此之间是如何比它们任一一个单词与“King”相比更相似的?这暗示你一些事情。这些向量图示很好的展现了这些单词的信息/含义/关联。

6、这是另一个示例列表(通过垂直扫描列来查找具有相似颜色的列):

图片

图片

有几个要点需要指出:

1.所有这些不同的单词都有一条直的红色列。它们在这个维度上是相似的(虽然我们不知道每个维度是什么)

2.你可以看到“woman”和“girl”在很多地方是相似的,“man”和“boy”也是一样

3.“boy”和“girl”也有彼此相似的地方,但这些地方却与“woman”或“man”不同。这些是否可以总结出一个模糊的“youth”概念?可能吧。

4.除了最后一个单词,所有单词都是代表人。我添加了一个对象“water”来显示类别之间的差异。你可以看到蓝色列一直向下并在 “water”的词嵌入之前停下了。

5.“king”和“queen”彼此之间相似,但它们与其它单词都不同。这些是否可以总结出一个模糊的“royalty”概念?

以上内容来源:

https://mp.weixin.qq.com/s?__biz=MzU0MDQ1NjAzNg==&mid=2247511995&idx=3&sn=303fcab878857a60bdba6c99aae2d60e&chksm=fb3a0ab0cc4d83a673b909035cd0534f97101303e02f744bb776890f3af8d8472b953e4b56ea&scene=27

通过上面可视化分析,embedding技术将非结构化的数据表达成向量数据,并保留事物之间的关联性等特征。

03

有哪些应用场景

图片

图片

常见的应用

嵌入(embedding)在文本分类和推荐系统中的应用非常常见。嵌入技术可以将文本数据转化为连续的向量表示,从而使计算机能够更好地理解和处理文本数据。

在文本分类任务中,嵌入可以用来提取文本的特征表示。通过将单词或句子转化为嵌入向量,可以将文本表示为固定长度的向量,然后可以将这些向量输入到分类模型中进行训练和预测。嵌入向量能够捕捉到单词或句子之间的语义相似性,从而提高文本分类的准确性和效果。

在推荐系统中,嵌入也可以用来表示物品或用户的特征。通过将商品或用户转化为嵌入向量,可以计算出它们之间的相似度,然后根据相似度进行商品推荐或用户个性化推荐。嵌入向量可以将物品或用户的特征表示为连续的向量,使得推荐系统能够更好地理解和匹配不同的物品或用户。

图片

图片

embedding 在AIGC中的应用

在AIGC的使用中有2个问题困扰着用户‍‍

1、AIGC的训练内容是历史数据,最新数据不包含,如果用户想输入新的内容给AIGC存在隐私风险‍‍‍

2、AIGC对于输入长文本例如PDF内容有困难

基于以上两点,使用embedding技术可以解决这两项问题。

1、使用内容向量化存储在向量数据库,输入给AIGC为向量数据,从而避免了隐私风险。‍

2、通过向量化,将内容切片存储到向量数据库中,当需要使用的时候,AIGC从向量数据库搜索使用。

具体步骤如下:

1.文档切分

2.建立子文档embedding与索引表

3.将LLM任务与子文档embedding做相似度匹配

4.基于LLM产出最终结果

【书籍问答任务】

假设我们有一本讲述人类历史的书籍,我们希望从中提取关于某个重要历史人物的信息,但不想阅读整个文件。为了实现这个任务,我们可以使用嵌入(embedding)和语言模型(LLM)来进行文档构建和内容匹配。

在文档构建阶段,我们可以将PDF文件的文本内容切分成若干子块。然后,使用嵌入模型将每个子文本块转换为向量数组,每个向量表示一个子文本块的语义信息。这些向量数组可以被存储在向量数据库中,并与原始文本块建立索引,以便后续的内容匹配阶段使用。

在内容匹配阶段,当我们需要回答关于该PDF文件的问题时,我们首先使用嵌入模型将问题转换为向量数组。然后,使用相似性度量函数(如余弦相似度)将问题向量与PDF文件的向量进行比较,找到语义上最相关的若干个文本块。接下来,将找到的最相关文本块与问题一起输入到LLM(如GPT-3)中,以得到准确的回答。

通过将嵌入和LLM结合,我们可以实现特定的长文本任务。当前一些类似chatPDF和文档问答产品都采用了类似的技术流程。

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

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

相关文章

基于STM32的智能农业灌溉系统

目录 引言环境准备智能农业灌溉系统基础代码实现:实现智能农业灌溉系统 4.1 数据采集模块4.2 数据处理与分析4.3 控制系统实现4.4 用户界面与数据可视化应用场景:智能农业管理与优化问题解决方案与优化收尾与总结 1. 引言 智能农业灌溉系统通过使用ST…

FPGA学习网站推荐

FPGA学习网站推荐 本文首发于公众号:FPGA开源工坊 引言 FPGA的学习主要分为以下两部分 语法领域内知识 做FPGA开发肯定要首先去学习相应的编程语言,FPGA开发目前在国内采用最多的就是使用Verilog做开发,其次还有一些遗留下来的项目会采用…

智慧校园综合门户有哪些特点?

智慧校园的门户系统,作为整个智慧校园架构的门户窗口,扮演着至关重要的角色。它如同一座桥梁,将校园内的各种信息资源、应用服务以及管理功能紧密相连,为师生、家长及管理人员提供了一个集中访问的便捷通道。智慧校园门户的设计理…

【Java】Java基础语法

一、注释详解 1.1 注释的语法: // 单行注释/*多行注释 *//**文档注释 */ 1.2 注释的特点: 注释不影响程序的执行,在Javac命令进行编译后会将注释去掉 1.3 注释的快捷键 二、字面量详解 2.1 字面量的概念: 计算机是用来处理…

DS:二叉树的链式存储及遍历

​ 欢迎来到Harper.Lee的学习世界! 博主主页传送门:Harper.Lee的博客主页 想要一起进步的uu可以来后台找我哦! ​ 一、引入 1.1 二叉树的存储方式 在之前接触到的满二叉树和完全二叉树使用的是数组的存储方式(DS:树与…

thrift接口调用工具

写了一个thrift接口调用工具 导入thrift文件就可以直接调用相应接口 工具会根据thrift文件中接口的参数名,参数类型,返回值等等,自动生成接口参数,和结果json化显示。 https://github.com/HuaGouFdog/Fdog-Kit

实际项目开发:Spring集成Redis,并实现短信登录功能

redis新手,学了几种基本数据类型,却不知道怎么使用? 总是一边学一边忘? 学会了Redis的大多数使用命令,却不知道如何在项目中使用? 本文将从实际出发,为大家解决这些问题。 我是蚊子码农&#xf…

折线统计图 初级

此为折线统计图的初级题目。 本次的题目较难,菜鸡请退出。 4. 下图显示了甲、乙两台电脑的价格以及它们已使用的年数,从图中可以知道( )。 15. 妈妈去菜市场买菜,走到半路遇到一位熟人聊了一会儿,突然发现忘了带钱。于是马上回…

【Sklearn驯化-环境配置】一文搞懂sklearn建模的最优环境搭建用法

【Sklearn驯化-环境配置】一文搞懂sklearn建模的最优环境搭建用法 本次修炼方法请往下查看 🌈 欢迎莅临我的个人主页 👈这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合,智慧小天地! 🎇 相关内容文档获取 微信…

Kafka中的数据本身就是倾斜的,使用FlinkSQL该如何处理

又是经历了一段不太平的变动,最近算是稳定了点,工作内容又从后端开发转换成了sql boy,又要开始搞大数据这一套了。不同的是之前写实时任务的时候都是用的java代码,新环境却更加偏向与使用flink sql 解决,所以记录下使用…

机器人学习和研究的物质基础包含哪些内容?

为啥写这个? 在很多博客里面提及物质基础,没想到询问的也非常多,写一篇详细一点的。 之前的故事 不合格且失败机器人讲师个人理解的自身课程成本情况-CSDN博客 迷失自我无缘多彩世界-2024--CSDN博客 物质基础与情绪稳定的关系-CSDN博客 …

6.S081的Lab学习——Lab8: locks

文章目录 前言一、Memory allocator(moderate)提示:解析 二、Buffer cache(hard)解析: 三、Barrier (moderate)解析: 总结 前言 一个本硕双非的小菜鸡,备战24年秋招。打算尝试6.S081,将它的Lab逐一实现,并…

Git代码管理的常用操作

在VS022中,Git的管理要先建立本地或远程仓库,然后commit到本地,最后push到远程代码库。 或者不建立本地的情况,直接拉取已有的远程代码。 Git是一个分布式版本控制系统,用于跟踪和管理文件的变化。它可以记录文件的修…

收银系统源码-千呼新零售2.0【线下促销】

千呼新零售2.0系统是零售行业连锁店一体化收银系统,包括线下收银线上商城连锁店管理ERP管理商品管理供应商管理会员营销等功能为一体,线上线下数据全部打通。 适用于商超、便利店、水果、生鲜、母婴、服装、零食、百货等连锁店使用。 详细介绍请查看下…

活用变量,让Postman的使用飞起来

在 Postman 中使用变量是一种非常强大的功能,它可以极大地增强 API 测试和开发的灵活性和效率。 Postman变量的类型 变量在 Postman 中可以在多个层次设置和使用,包括 全局变量环境变量集合变量局部变量(如在脚本中暂时创建的变量&#xf…

【C语言】解决C语言报错:Stack Overflow

文章目录 简介什么是Stack OverflowStack Overflow的常见原因如何检测和调试Stack Overflow解决Stack Overflow的最佳实践详细实例解析示例1:递归调用过深示例2:分配过大的局部变量示例3:嵌套函数调用过多 进一步阅读和参考资料总结 简介 St…

初学者应该掌握的MySQL数据库的基本组成部分及概念

MySQL数据库作为一种开源的关系型数据库管理系统,被广泛应用于Web应用开发和数据存储。它具有高性能、易用性和可靠性等特点,是开发者们的首选之一。在本篇文章中,我们将详细介绍MySQL数据库的核心组成部分,帮助你深入理解这个强大…

详解 Macvlan 创建不同容器独立跑仿真(持续更新中)

一、概念介绍 1.1 什么是macvlan macvlan是一种网卡虚拟化技术,能够将一张网卡(Network Interface Card, NIC)虚拟出多张网卡,这意味着每个虚拟网卡都能拥有独立的MAC地址和IP地址,从而在系统层面表现为完全独立的网络…

winmail添加gmail和QQ邮箱(现已更新为outlook mail)

想在windows自带的邮件桌面应用里,不仅能访问outlook邮件,也能访问gmail邮件和QQ邮件的方法。 参考文章: Windows 10 的邮件怎么添加并同步 Gmail?​www.zhihu.com/question/53079836/answer/147669935?utm_psn178781450843941…