【小白学AI系列】NLP 核心知识点(七)Embedding概念介绍
Embedding(嵌入) 是自然语言处理(NLP)中非常重要的概念。简单来说,embedding 是一种将离散的、稀疏的、不可直接计算的对象(比如词、字符或句子)转换为 密集的、连续的向量表示 的技术。
这个向量通常是低维的,并且在向量空间中能够捕捉到该对象的某些语义或结构特征。可以通过这种方式将我们通常理解为 文本 的信息转化为模型可以处理的数字形式。
1. 为什么需要Embedding?
传统的计算机处理文本的方式往往是将每个词表示为 独热编码(One-Hot Encoding),即通过一个 非常长的向量 来表示词汇表中每个单词。每个词都被表示成一个 高维的稀疏向量,其中只有一个元素是 1,其他元素是 0。例如:
- 假设词汇表包含 10000 个单词,那么 “apple” 可能就表示为一个长度为 10000 的向量,其中只有 “apple” 这个位置是 1,其他全是 0。
但是这种表示方法有两个主要问题:
- 维度高:如果词汇表很大,向量维度会非常高,计算开销也会增加。
- 缺乏语义联系:独热编码无法捕捉到词与词之间的关系。例如,“猫”和“狗”是相似的词,但它们在独热编码下完全不相同,无法体现它们的语义关系。
因此,我们需要一种能够 压缩 表示并 捕捉语义关系 的方法。这时,词嵌入(Embedding) 就应运而生。
2. 词嵌入(Word Embedding)
词嵌入(Word Embedding)是将每个单词映射到一个 低维的实数向量空间,这样不仅能减少存储空间,还能有效地捕捉词与词之间的语义关系。
例如,词嵌入将 “apple”、“banana” 和 “fruit” 映射到一个低维向量空间,其中 “apple” 和 “banana” 会比它们与 “dog” 之间的距离要近,从而反映出它们在语义上的相似性。
3. 常见的词嵌入模型
最常见的词嵌入模型包括:
- Word2Vec(Skip-gram 和 CBOW)
- GloVe(Global Vectors for Word Representation)
- FastText
- ELMo 和 BERT(基于上下文的词嵌入)
(1) Word2Vec
Word2Vec 是一个基于 神经网络 的模型,可以通过两种方法来训练:
- Skip-gram:通过给定上下文(周围的词)来预测目标词。
- CBOW(Continuous Bag of Words):通过给定目标词来预测上下文中的词。
Word2Vec 通过将词嵌入到一个连续的向量空间中,并通过训练使得语义相似的词在向量空间中彼此接近。
(2) GloVe
GloVe 是一种基于 矩阵分解 的词嵌入方法,它通过捕捉全局词汇统计信息来学习词向量,尤其关注词与词之间的共现关系。与 Word2Vec 不同,GloVe 不依赖于局部上下文,而是通过计算词与词之间在大规模语料库中的统计关系来生成词嵌入。
(3) FastText
FastText 是 Facebook 提出的模型,它的一个主要优点是能够 处理词汇表之外的词,通过将词分解成子词(subwords),因此可以更好地处理未知词(Out of Vocabulary, OOV)。比如,“apple” 这个词可以被拆分成 “ap”、“ple” 等子词,这样可以更好地处理未出现的词汇。
(4) BERT 和 ELMo
BERT 和 ELMo 则是基于上下文的词嵌入模型,它们不仅根据词汇本身,还利用 上下文信息 来生成词向量。BERT 在训练时通过 双向 Transformer 来捕捉上下文信息,因此它的词嵌入不仅仅是一个固定的词向量,而是根据该词在具体上下文中的含义来动态生成向量。
4. 如何使用词嵌入(Word Embedding)?
词嵌入模型的输出是每个单词对应的一个向量。你可以将这些向量作为特征输入到其他机器学习模型中进行训练,例如:
- 分类任务:如情感分析、垃圾邮件分类。
- 生成任务:如机器翻译、文本生成。
- 相似度计算:通过计算词嵌入的 余弦相似度,可以度量两个词的相似性。
5. 示例:如何通过 Word2Vec 生成嵌入
假设我们有一个训练好的 Word2Vec 模型,我们想查看词 “apple” 和 “banana” 的词嵌入向量,计算它们的 相似度。
- 输入词 “apple” 和 “banana” 通过 Word2Vec 模型,获取它们的词嵌入向量 v a p p l e \mathbf{v_{apple}} vapple和 v b a n a n a \mathbf{v_{banana}} vbanana
- 计算它们的 余弦相似度(Cosine Similarity):
cosine_similarity = v a p p l e ⋅ v b a n a n a ∥ v a p p l e ∥ ∥ v b a n a n a ∥ \text{cosine\_similarity} = \frac{\mathbf{v_{apple}} \cdot \mathbf{v_{banana}}}{\| \mathbf{v_{apple}} \| \| \mathbf{v_{banana}} \|} cosine_similarity=∥vapple∥∥vbanana∥vapple⋅vbanana
如果 “apple” 和 “banana” 在语义上相似,余弦相似度会接近 1;如果不相似,余弦相似度会接近 0。
相关文章:
【小白学AI系列】NLP 核心知识点(七)Embedding概念介绍
Embedding(嵌入) 是自然语言处理(NLP)中非常重要的概念。简单来说,embedding 是一种将离散的、稀疏的、不可直接计算的对象(比如词、字符或句子)转换为 密集的、连续的向量表示 的技术。 这个向…...
Android adb测试常用命令大全
目录 一、查看最上层成activity名字: 二、查看Activity的任务栈: 三、获取安装包信息 四、性能相关 1、显示CPU信息 : 2、查看CPU使用信息 3、内存信息(meminfo package_name or pid 使用程序的包名或者进程id显示内存信息) 4、电量信…...
FRRouting配置与OSPF介绍,配置,命令,bfd算法:
文章目录 1、frrouting的配置:2、ospf2.1、检测和维护邻居关系2.2、ospfDR和BDR2.3、odpf邻居表2.4、ospf常用命令2.5、bfd配置 1、frrouting的配置: sudo service zebra start sudo service ospfd start telnet localhost 2604 en configure termina…...
【MyBatis】预编译SQL与即时SQL
目录 1. 以基本类型参数为例测试#{ }与${ }传递参数的区别 1.1 参数为Integer类型 1.2 参数为String类型 2. 使用#{ }传参存在的问题 2.1 参数为排序方式 2.2 模糊查询 3. 使用${ }传参存在的问题 3.1 SQL注入 3.2 对比#{ } 与 ${ }在SQL注入方面存在的问题 3.3 预编译…...
prometheus、grafana、windows、node exporter 安装包
开发过程中应用到的安装包软件: prometheus-2.20.0.windows-amd64.tar.gz windows_exporter-0.13.0-amd64.exe grafanawindows-x64.zip influxdb-1.7.0_windows_amd64.zip 我用夸克网盘分享了「prometheus、grafana、windows、node exporter 安装包」ÿ…...
Python数据可视化 - Matplotlib教程
文章目录 前言一、Matplotlib简介及安装1. Matplotlib简介2. 安装Matplotlib 二、Matplotlib Pyplot1. Pyplot介绍2. Pyplot中方法介绍2.1 创建和管理图形2.2 绘制图形2.3 设置图形属性2.4 保存和展示 三、Matplotlib绘图标记1. 介绍2. 基本用法3. 标记大小与颜色4. 标记样式列…...
DeepSeek R1 与 OpenAI O1:机器学习模型的巅峰对决
我的个人主页 我的专栏:人工智能领域、java-数据结构、Javase、C语言,希望能帮助到大家!!!点赞👍收藏❤ 一、引言 在机器学习的广袤天地中,大型语言模型(LLM)无疑是最…...
内容中台重构企业内容管理流程驱动智能协作升级
内容概要 内容中台作为企业数字化转型的核心基础设施,通过技术架构革新与功能模块整合,重构了传统内容管理流程的底层逻辑。其核心价值在于构建动态化、智能化的内容生产与流转体系,将分散的创作、存储、审核及分发环节纳入统一平台管理。基…...
STM32 Flash详解教程文章
目录 Flash基本概念理解 Flash编程接口FPEC Flash擦除/写入流程图 Flash选项字节基本概念理解 Flash电子签名 函数读取地址下存放的数据 Flash的数据处理限制部分 编写不易,请勿搬运,感谢理解!!! Flash基本概念…...
小米 R3G 路由器刷机教程(Pandavan)
小米 R3G 路由器刷机教程(Pandavan) 一、前言 小米 R3G 路由器以其高性价比和稳定的性能备受用户青睐。然而,原厂固件的功能相对有限,难以满足高级用户的个性化需求。刷机不仅可以解锁路由器的潜能,还能通过第三方固…...
红队视角出发的k8s敏感信息收集——Kubernetes API 扩展与未授权访问
针对 Kubernetes API 扩展与未授权访问 的详细攻击视角分析,聚焦 Custom Resource Definitions (CRD) 和 Aggregated API Servers 的潜在攻击面及利用方法: 攻击链示例 1. 攻击者通过 ServiceAccount Token 访问集群 → 2. 枚举 CRD 发现数据库配…...
11. Docker 微服务实战(将项目打包生成镜像,在 Docker 当中作为容器实例运行)
11. Docker 微服务实战(将项目打包生成镜像,在 Docker 当中作为容器实例运行) 文章目录 11. Docker 微服务实战(将项目打包生成镜像,在 Docker 当中作为容器实例运行)2. 最后: 建 Module - docker_boot 编辑 pom <?xml version"1.0&…...
mysql和minio
在现代应用架构中,Word 文档、PPT 等文件通常存储在对象存储服务(如 MinIO)中,而不是直接存储在关系型数据库(如 MySQL)中。以下是具体的分工和原因: 为什么选择对象存储(如 MinIO&a…...
计算机视觉:卷积神经网络(CNN)基本概念(二)
第一章:计算机视觉中图像的基础认知 第二章:计算机视觉:卷积神经网络(CNN)基本概念(一) 第三章:计算机视觉:卷积神经网络(CNN)基本概念(二) 第四章:搭建一个经典的LeNet5神经网络 接上一篇《计算机视觉&am…...
【数据结构-红黑树】
文章目录 红黑树红黑树介绍红黑树的五个基本性质红黑树的平衡原理红黑树的操作红黑树的操作 代码实现节点实现插入和查询操作 红黑树 红黑树介绍 红黑树(Red-Black Tree)是一种自平衡的二叉查找树(Binary Search Tree, BST)&…...
dify.ai 配置链接到阿里云百练等云厂商的 DeepSeek 模型
要将 dify.ai 配置链接到阿里云百练等云厂商的 DeepSeek 模型. 申请阿里云百练的KEY 添加模型 测试模型...
手机ROM是什么
本篇将以我自己的手机——小米13为例 手机 ROM 详解 在手机领域,ROM(Read-Only Memory) 通常指的是 手机的操作系统和固件,包括 Android 设备的 系统镜像(system.img)、引导程序(boot.img&…...
应用分层、三层架构和MVC架构
前言 在前面中,我们已经学习了Spring MVC 的一些基础操作,那么后面就用一些简单的案例来巩固一下。 在开始学习做案例之前,我们先来了解一下在软件开发中常见的设计模式和架构。 应用分层 含义 应用分层是一种软件开发设计思想࿰…...
Apache Struts2 - 任意文件上传漏洞 - CVE-2024-53677
0x01:漏洞简介 Apache Struts 是美国 Apache 基金会的一个开源项目,是一套用于创建企业级 Java Web 应用的开源 MVC 框架(将软件分为模型(Model)、视图(View)和控制器(Controller&a…...
传统混合专家模型MoE架构详解以及python示例(DeepSeek-V3之基础)
我们已经了解到DeepSeek-V3的框架结构基于三大核心技术构建:多头潜在注意力(MLA)、DeepSeekMoE架构和多token预测(MTP)。而DeepSeekMoE架构的底层模型采用了混合专家模型(Mixture of Experts,MoE)架构。所以我们先了解一下传统混合专家模型MoE架构。 一、传统混合专家模…...
Tomcat如何处理Http请求
Tomcat处理HTTP请求的流程是一个复杂但有序的过程,涉及多个组件的协同工作。以下是对Tomcat处理HTTP请求流程的详细讲解: 一、接收请求 监听端口:Tomcat通过配置的Connector组件监听特定的端口(默认是8080)ÿ…...
安全筑基,智能赋能:BeeWorks IM引领企业协同新纪元
在数字经济高速发展的今天,企业通讯系统已从单纯的信息传递工具演变为支撑业务创新的核心平台。传统通讯工具在安全性、智能化、协同性等方面的不足,严重制约着企业的数字化转型进程。BeeWorks IM系统以其创新的技术架构和智能化功能,正在重新…...
AlmaLinux使用Ansible自动部署k8s集群
一、环境准备 节点规划(最低要求) 1台Master节点(4核/8GB内存)2台Worker节点(2核/4GB内存)1台Ansible控制机(可复用Master节点) 系统配置 # 所有节点执行 sudo hostnamectl set-hos…...
solidworks零件的绘制学习
1、拉伸凸台拉伸切除可以在一个零件中打孔,如下图: 2、旋转凸台配合旋转切除; 3、薄壁特征:在拉伸凸台,旋转凸台中都有;在一个面中画完草图,然后选择拉伸凸台或旋转凸台,里面就会出…...
DeepSeek-V3模型底层架构的核心技术一(多Token预测(MTP)技术)
一、DeepSeek-V3的框架结构 DeepSeek-V3的框架结构基于三大核心技术构建:多头潜在注意力(MLA)、DeepSeekMoE架构和多token预测(MTP)。这些创新使得模型在处理长序列、平衡计算负载以及生成连贯文本方面表现出色。 1. 基础架构 DeepSeek-V3的基础架构仍然基于Transformer框…...
llama.cpp部署 DeepSeek-R1 模型
一、llama.cpp 介绍 使用纯 C/C推理 Meta 的LLaMA模型(及其他模型)。主要目标llama.cpp是在各种硬件(本地和云端)上以最少的设置和最先进的性能实现 LLM 推理。纯 C/C 实现,无任何依赖项Apple 芯片是一流的——通过 A…...
Spring源码分析のBean创建流程(上)
文章目录 前言一、preInstantiateSingletons1.1、getMergedLocalBeanDefinition1.2、isFactoryBean 二、getBean 前言 原生Spring在refresh方法中,会在finishBeanFactoryInitialization:preInstantiateSingletons方法中直接创建所有非懒加载的单例Bean。…...
Ubuntu 下 nginx-1.24.0 源码分析 - ngx_time_update函数
定义在 src\core\ngx_times.c 中 ngx_time_init 函数后面 void ngx_time_update(void) {u_char *p0, *p1, *p2, *p3, *p4;ngx_tm_t tm, gmt;time_t sec;ngx_uint_t msec;ngx_time_t *tp;struct timeval tv;if (!ngx_trylock(&ngx…...
DeepSeek笔记(二):DeepSeek局域网访问
如果有多台电脑,可以通过远程访问,实现在局域网环境下多台电脑共享使用DeepSeek模型。在本笔记中,首先介绍设置局域网多台电脑访问DeepSeek-R1模型。 一、启动Ollama局域网访问 1.配置环境变量 此处本人的操作系统是Windows11,…...
基于大数据的全国热门旅游景点数据分析系统的设计与实现
【大数据】基于大数据的全国热门旅游景点数据分析系统的设计与实现(完整系统源码开发笔记详细部署教程)✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 该系统主要包括登录注册、系统首页、图表分析、数据管理和个人信息五大功能模…...
