写给非机器学习人员的 embedding 入门

news2024/9/25 19:23:10

你好,我是 shengjk1,多年大厂经验,努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注!你会有如下收益:

  1. 了解大厂经验
  2. 拥有和大厂相匹配的技术等

希望看什么,评论或者私信告诉我!

文章目录

  • 一、背景
  • 二、什么是 embedding
  • 三、为什么需要 embedding
      • 3.1 降维处理
      • 3.2 捕捉语义关系
      • 3.3 更好的特征表示
      • 3.4 提高计算效率
      • 3.5 适应性强
  • 四、emdedding 原理
      • 4.1 向量空间模型
      • 4.2 训练方法
      • 4.3 常用算法
      • 4.4 相似性度量
      • 4.5 特征学习
      • 4.6 利用上下文
  • 五、embedding 应用场景
      • 1. **自然语言处理(NLP)**
      • 2. **推荐系统**
      • 3. **计算机视觉**
      • 4. **图结构数据**
      • 5. **生物信息学**
      • 6. **音频处理**
      • 7. **RAG**
  • 六、embedding 使用
  • 七、总结

一、背景

目前在实现 NL2SQL 就是将人的自然语言通过 LLMs 的一系列处理,在这个过程中,会把文本向量化后存储到向量数据库中,然后通过向量搜索,这个过程中发现文本 embedding 后,通过向量化搜索效果很是惊人,就跟程序能读懂人的语言一样。于是对 embedding 产生了兴趣

二、什么是 embedding

embedding 是自然语言处理 (NLP)中的一种变革性技术,它改进了机器理解和处理人类语言的方式。其将原始文本转换为数字向量,让计算机更好地理解它。

因为计算机只能用数字思考,无法独立理解人类的语言。借助文本嵌入,计算机可以更轻松地阅读、理解文本,并对查询提供更准确的响应。

下图可以更加形象的理解:
embedding 是一种将文本中的单词或短语转换为机器可以理解的数字数据的方法。可以将其视为将文本转换为数字列表,其中每个数字都表示文本的一部分含义。这种技术可以帮助机器掌握单词之间的上下文和关系。

三、为什么需要 embedding

embedding 在机器学习和自然语言处理中的重要性主要体现在以下几个方面:

3.1 降维处理

  • 高维数据问题:原始数据通常是高维的,处理高维数据会导致计算复杂性增加,且容易出现“维度灾难”。
  • 低维表示:通过 embedding,可以将高维数据映射到低维空间,减少计算负担并提高处理效率。

3.2 捕捉语义关系

  • 相似性表示:embedding 能够将语义相似的对象(如词语或图像)映射到相近的向量,使得相似性度量变得直接和有效。
  • 保留上下文信息:在自然语言处理中,embedding 可以反映词语的上下文关系,从而更好地理解词语的含义。

3.3 更好的特征表示

  • 稠密表示:与传统的独热编码(one-hot encoding)相比,embedding 提供了更稠密且具备语义信息的特征表示。
  • 泛化能力:通过将数据映射到语义空间,模型能够在新数据上具有更好的泛化能力。

3.4 提高计算效率

  • 向量运算:在低维空间中,可以快速进行向量之间的计算(如点积、余弦相似度等),提高模型的响应速度。
  • 简化算法:使用 embedding 的模型通常比传统方法更简单且易于训练。

3.5 适应性强

  • 多领域应用:embedding 可以广泛应用于文本、图像、音频等多个领域,具有很强的适应性。
  • 模型可扩展性:可以轻松地将新的数据嵌入现有的 embedding 空间。

四、emdedding 原理

embedding 的原理主要基于将高维数据映射到低维空间的技术,以下是其核心概念和原理:

4.1 向量空间模型

  • 基本思想:将每个对象(如词、句子或图像)表示为一个向量,在一个稠密的、低维的向量空间中,这些向量能够反映对象之间的相似性和关系。

4.2 训练方法

  • 无监督学习:embedding 通常通过无监督学习算法进行训练,这使得模型能够从大量数据中学习各个对象之间的隐含关系,而无需人工标注。

4.3 常用算法

  • Word2Vec
    • Skip-Gram:通过预测上下文中的词来学习词向量。
    • CBOW(Continuous Bag of Words):通过上下文词预测中心词。
  • GloVe(Global Vectors for Word Representation)
    • 基于词共现矩阵,通过优化目标函数,捕获全局统计信息。
  • FastText
    • 在词的基础上考虑了子词(n-grams),提高了对未登录词的处理能力。

4.4 相似性度量

  • 欧几里得距离余弦相似度:在 embedding 空间中,可以使用这些度量方法来计算对象之间的相似性。相似的对象在向量空间中距离较近。

4.5 特征学习

  • 隐含特征:通过 embedding,模型能够自动学习到数据的隐含特征,并将其压缩到一个低维度的表示中,提高了计算效率和模型性能。

4.6 利用上下文

  • 上下文信息:通过训练时考虑上下文,embedding 能够捕捉到词义的多义性和词与词之间的关系,从而获得更准确的表示。

五、embedding 应用场景

embedding 的应用场景非常广泛,主要包括以下几个领域:

1. 自然语言处理(NLP)

  • 词嵌入:使用像 Word2Vec、GloVe 或 FastText,将词转换为向量,捕捉词的语义关系。
  • 情感分析:通过文本的向量表示,分析文本情绪和态度。
  • 机器翻译:将源语言和目标语言的句子转化为向量,以提高翻译质量。

2. 推荐系统

  • 用户和物品嵌入:将用户和商品映射到同一向量空间,通过计算相似性进行个性化推荐。
  • 协同过滤:使用用户与物品之间的嵌入表示,挖掘潜在的推荐关系。

3. 计算机视觉

  • 图像嵌入:利用卷积神经网络(CNN)将图像转换为向量,进行相似图像检索、分类等。
  • 人脸识别:将人脸图像嵌入到向量空间,用于身份验证。

4. 图结构数据

  • 图嵌入:将节点的特征和结构信息嵌入到低维空间,处理社交网络、知识图谱等问题。
  • 社区检测和图分类:通过节点嵌入,识别社交网络中的社群结构。

5. 生物信息学

  • 基因和蛋白质嵌入:将生物序列转换为向量,进行基因功能预测、药物发现等。

6. 音频处理

  • 音频嵌入:将音频信号转换为向量表示,用于音频分类、语音识别和音乐推荐。

7. RAG

  • 向量化:基于大模型的向量化

embedding 技术能够在许多领域提供有效的数据表示,增强模型的性能,并提高计算效率。它在自然语言处理、计算机视觉、推荐系统以及生物信息学等多个领域都有重要应用。

六、embedding 使用

这里我们用 huggingface m3e-base 模型的例子

from sentence_transformers import SentenceTransformer

model = SentenceTransformer('moka-ai/m3e-base')

#Our sentences we like to encode
sentences = [
    '* Moka 此文本嵌入模型由 MokaAI 训练并开源,训练脚本使用 uniem',
    '* Massive 此文本嵌入模型通过**千万级**的中文句对数据集进行训练',
    '* Mixed 此文本嵌入模型支持中英双语的同质文本相似度计算,异质文本检索等功能,未来还会支持代码检索,ALL in one'
]

#Sentences are encoded by calling model.encode()
embeddings = model.encode(sentences)

#Print the embeddings
for sentence, embedding in zip(sentences, embeddings):
    print("Sentence:", sentence)
    print("Embedding:", embedding)
    print("")

七、总结

Embedding技术显著改善了机器对自然语言的理解能力,通过将高维文本数据转换为低维向量,计算机能够更有效地处理和响应人类语言。它的多领域适应性和强大的特征表示能力,使其在现代AI应用中扮演了至关重要的角色。

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

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

相关文章

合并两个有序数组(LeetCode)

题目 给你两个按 非递减顺序 排列的整数数组 和 ,另有两个整数 和 ,分别表示 和 中的元素数目。请你 合并 到 中,使合并后的数组同样按 非递减顺序 排列。 注意:最终,合并后数组不应由函数返回,而是…

Word中加载Mathtype后粘贴复制快捷键(Ctrl+C/V)不能使用

操作环境 windows 11操作系统 word版本2021 mathtype版本7.4 这个问题只出现在word中,在excel和ppt中都不存在这个问题,而且之前在另一台电脑中使用word2016版本并没有这种问题的,然后网上搜了一下有不少人有这种问题,word直接取…

nodejs/node-sass/sass-loader三者版本对应关系(已解决)

基本前提:了解版本对应关系 示例: 我的nodejs:v14.21.3, 则package.json: "node-sass": "^4.14.1", "sass-loader": "^8.0.0",扩展: 查看node历史版本: Node.js…

【数据结构-前缀哈希】力扣525. 连续数组

给定一个二进制数组 nums , 找到含有相同数量的 0 和 1 的最长连续子数组,并返回该子数组的长度。 示例 1: 输入: nums [0,1] 输出: 2 说明: [0, 1] 是具有相同数量 0 和 1 的最长连续子数组。 示例 2: 输入: nums [0,1,0] 输出: 2 说明: [0, 1] (或 [1, 0]) 是…

摸着石头过河的具身智能公司,正在寻求“确定性”

在种种不确定因素之下,对于具身智能,唯一可以确定的是,其未来巨大的市场空间。从纷纷入局的科技巨头、创业公司的市场现状即可窥见一二。而类比到自动驾驶,其也是抛开层层迷雾后才得以在今天看见曙光。 相信,于具身智…

高效报销管理:领先软件的综合评测

本文主要介绍了以下10款报销管理软件:合思、明道云、汇联易、畅捷通、慧算账、云之家、Ramp、Nexonia by Emburse、Rydoo、Expensify。 在处理财务报销时,你是否经常感到手续繁琐、效率低下?选择合适的软件系统,能够显著优化整个报…

亚信安全以安全守护的“星座”正闪耀太空

近日来,一个Made in China的“星座”闪耀太空,受到世界瞩目。“千帆星座”计划,首批18颗商业组网卫星成功发射升空,目前已顺利进入停泊轨道,见证了我国卫星互联网发展的重要时刻,未来将开启面相全球用户的低…

模块化叙事的演变:DeFi借贷开发的模块化转型

随着区块链技术的不断发展,去中心化金融(DeFi)正经历一场深刻的变革。模块化借贷作为这一变革的重要部分,正逐渐成为加密金融领域的焦点。本文将探讨模块化借贷的起源、演变及其未来发展方向。 一、模块化的起源 模块化区块链的概…

5.2二叉树的概念

5.2.1二叉树的定义 二叉树特点: ①每个节点最多只有两颗子树 ②二叉树的子树有左右之分,不能随意颠倒 ③二叉树为有序树 几种特殊的二叉树 满二叉树 除叶节点之外的每个节点度数均为2 对于编号i的节点,若有双亲,则双亲为i/2-向下取整 若有左孩子,则为2i;若有右孩子则为…

云计算实训24——python基本环境搭建、变量和数据类型、数据集合、py脚本

一、python环境搭建 确保拥有阿里云镜像 查看python环境 [rootpython ~]# yum list installed | grep python 查看epel是否安装 [rootpython ~]# yum list installed | grep epel 安装epel [rootpython ~]# yum -y install epel-release.noarch 查看是否安装python3 [rootpyt…

AI 点燃体育热情!使用 PAI-Artlab 定制专属海报

PAI ArtLab 是人工智能平台 PAI 为设计专业人士打造的 AIGC 智能设计工具,支持云端Stable Diffusion、Kohya 等主流文生图与模型训练应用,提供 AIGC 全场景能力。为了向在赛场上的奥运健儿传递最真挚的鼓舞与喝彩,我们特此发起一场别开生面的…

远程终端 XShell 下载安装配置使用(超详细)

今天给伙伴们分享一下VMware Workstation17 安装 Windows 10 操作系统,希望看了有所收获。 我是公众号「想吃西红柿」「云原生运维实战派」作者,对云原生运维感兴趣,也保持时刻学习,后续会分享工作中用到的运维技术,在…

【数学建模】简单的优化模型-5 不买贵的只买对的

背景 在琳琅满目的市场里选购商品,我们往往遵循 “不买贵的,只买对的” 的准则。然而哪些商品、买多少才是“对的”?这时候,我们需要用到,消费者追求最大效用(经济学的最优化原理),…

java学习笔记 VSCode

2.管理员身份打开cmd,切换存文件的路径 2.输入下面命令创建文件 npm create vitelatest 将项目命名为easyb选择vue--->JavaScript 3,用管理员身份打开VSCode,打开刚刚创建的easyb 4.下载包 npm install npm install vue-router npm install axios npm install element-plus…

数据可视化入门:使用 Matplotlib、Numpy 和 SciPy 绘图

数据可视化是数据分析不可或缺的工具,它通过图形化手段帮助我们更直观地理解数据。Python拥有多种库来实现数据可视化,其中matplotlib、numpy和scipy是最常用的几个。本文将详细介绍如何使用这些库来创建各种图表和曲面。 环境搭建 在开始之前&#xf…

SPSS、Python员工满意度问卷调查激励保健理论研究:决策树、随机森林和AdaBoost|附代码数据

全文链接:https://tecdat.cn/?p37293 原文出处:拓端数据部落公众号 在深入了解公司当前的实际情况和员工内心真实想法的基础上,我们旨在从专业视角出发,为企业在组织管理方面的不足进行诊断,并进行全面审视。 为了…

激发创意:十大设计灵感网站推荐

在设计的世界里,灵感是推动创意发想和项目实现的关键因素。设计师们常常需要寻找新的灵感来源,以保持作品的新鲜感和创新性。幸运的是,互联网上有许多优秀的设计灵感网站,它们提供了丰富的资源和启发,帮助设计师们打破…

leetcode-二叉树oj题1(共三道 965,100,144)--c语言

目录 a. 二叉树的概念以及实现参照博客: 一、三道题的oj链接 二、每题讲解 1.单值二叉树 a. 题目: b. 题目所给代码 c. 思路 d. 代码: 2. 相同的树 a. 题目 b. 题目所给代码 c. 思路 d. 代码 3. 二叉树的前序遍历 a. 题目 b.…

软考:软件设计师 — 11.UML 建模

十一. UML 建模 UML 建模部分是下午场考试中第三个题目,分值 15 分。先介绍一下这类题目的考查形式。 1. 考察形式 (1)类图与对象图 填类名,方法名,属性名填关系填多重度 UML 中四种基本关系: 依赖关…

【IO模型】select、poll、epoll的区别

文章目录 五种IO模型阻塞IO非阻塞IO信号驱动IOIO复用异步IO IO复用的原理selectselect原理及缺点 pollpoll的原理及其缺点 epollepoll_createepoll_ctlepoll_waitepoll的原理水平触发和边缘触发epoll的优点 五种IO模型 I/O模型是操作系统中用于管理输入输出操作的机制。不同的…