人工智能NLP--特征提取之词嵌入(Word Embedding)

2024-08-22 12:36

本文主要是介绍人工智能NLP--特征提取之词嵌入(Word Embedding),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、前言

在上篇文章中,笔者详细讲解介绍了人工智能自然语言处理特征提取中的TD-IDF型文本处理方法,那么接下来,笔者将为大家揭晓,目前阶段,在特征提取,也就是文本数据转成数字数据领域内最常用也是最好用的方法–词嵌入(Word Embedding)。

二、定义,组成和基本介绍

在自然语言处理(NLP)领域,词嵌入(Word Embedding)是一种将词汇映射到向量空间的技术。通过词嵌入,词汇可以被表示为实数值向量,这些向量捕捉了词汇之间的语义关系。顺带提一嘴的是,词嵌入是NLP的一个核心技术,广泛应用于各种任务,如文本分类、情感分析、机器翻译等。

1. 词嵌入的基本概念

词嵌入的目标是将离散的词汇映射到一个连续的、低维的向量空间中,使得语义相似的词在向量空间中彼此接近。换句话说,词嵌入将词汇表示为实数值向量,这些向量捕捉了词汇之间的语义关系。

2. 词嵌入的动机

传统的词汇表示方法(如独热编码)存在一些问题:

  • 高维稀疏性:词汇表中的每个词都被表示为一个高维向量,其中只有一个维度为1,其余维度为0。
  • 缺乏语义信息:独热编码无法捕捉词汇之间的语义关系,如“cat”和“dog”在独热编码中是完全不同的向量。

词嵌入通过将词汇映射到一个低维的、密集的向量空间中,解决了上述问题,并能够捕捉词汇之间的语义关系。简单来说,词嵌入不仅可以减少数据向量的维度从而方便计算,还可以帮助提取增加词与词之间的语义关系等等。

3. 词嵌入的应用

词嵌入在NLP中有广泛的应用,包括但不限于:

  • 文本分类:将文本表示为词嵌入向量的组合,然后输入到分类模型中。
  • 情感分析:通过词嵌入捕捉文本中的情感信息。
  • 机器翻译:将源语言和目标语言的词汇映射到相同的向量空间中。
  • 信息检索:通过词嵌入计算查询和文档之间的相似度。

4. 词嵌入的局限性

尽管词嵌入在NLP中取得了显著的成功,但它们也有一些局限性:

  • 静态表示:传统的词嵌入(如Word2Vec、GloVe)为每个词生成一个固定的向量,无法捕捉词义的多义性。
  • 上下文独立:传统的词嵌入方法无法根据上下文动态调整词的表示。

5. 上下文嵌入

为了克服传统词嵌入的局限性,近年来提出了一些上下文嵌入方法,如BERT、GPT等。这些方法通过预训练语言模型,能够根据上下文动态生成词的表示,捕捉词义的多义性和上下文依赖性。

5.1 BERT

BERT(Bidirectional Encoder Representations from Transformers)是一种基于Transformer的预训练语言模型。BERT通过双向训练,能够捕捉词汇的上下文信息,并生成上下文相关的词嵌入。

5.2 GPT

GPT(Generative Pre-trained Transformer)也是一种基于Transformer的预训练语言模型,但与BERT不同,GPT是单向训练的,即从左到右生成词嵌入。

6. 词嵌入的方法

6.1 Word2Vec

Word2Vec是一种基于神经网络的词嵌入方法,它通过训练一个两层的神经网络,将每个词汇映射到一个固定长度的向量空间中。Word2Vec包括两种模型:CBOW(Continuous Bag-of-Words)和Skip-gram。CBOW模型是根据上下文预测中心词汇,Skip-gram模型是根据中心词汇预测上下文词汇。

两种主要的训练架构:

  • CBOW(Continuous Bag of Words) :预测上下文中的中心词。
  • Skip-gram:预测中心词的上下文词。

听不懂 ? 没关系,上例子 !

例如,对于句子“the cat sat on the mat”,CBOW模型会尝试根据上下文词“the”, “sat”, “on”, “the”来预测中心词“cat”,而Skip-gram模型会尝试根据中心词“cat”来预测上下文词“the”, “sat”, “on”, “the”。

6.2 GloVe(了解即可)

GloVe(Global Vectors for Word Representation)是一种基于全局词汇统计信息的词嵌入方法,它通过最小化词汇之间的共现矩阵的加权平方误差,学习每个词汇的向量表示。GloVe的优点是能够捕捉到词汇之间的语义关系和语法关系。GloVe的目标是使词汇对之间的向量差异能够反映它们的共现概率。

6.3 FastText(了解即可)

FastText 是由Facebook的研究人员提出的一种词嵌入方法,它扩展了Word2Vec模型,是一种基于子词(subword)的词嵌入方法,它将每个词汇表示为其子词的向量和一个特殊的词汇向量的加权和。FastText的优点是能够处理未登录词汇和词汇拼写错误的情况。这使得FastText能够处理未登录词(OOV)和拼写错误的词汇。

相比较后两种词嵌入方法而言,目前市场上主流的,用的最多的还是Word2Vec方法,因此,笔者下面将着重讲解这一词嵌入的方法。

三、Word2Vec

定义

Word2Vec是一种流行的词嵌入模型,由Tomas Mikolov等人在2013年提出。它是一个浅层神经网络,能够将词语转换为向量形式,这些向量能够捕捉词语之间的语义和语法关系。Word2Vec有两种主要的模型架构:连续词袋(CBOW)和跳跃式(Skip-Gram)模型。

1. 连续词袋(Continuous Bag of Words, CBOW)

CBOW模型的目标是根据上下文的词来预测目标词。给定一个目标词w和它的上下文词c1, c2, …, cn,模型会尝试预测w的概率分布。CBOW模型的输入是上下文词的向量表示,输出是目标词的向量表示。

工作原理:
  • 将上下文词的向量求和,得到一个向量表示。
  • 使用这个向量表示作为输入,通过一个softmax层来预测目标词的概率。

2. 跳跃式(Skip-Gram)模型

与CBOW相反,Skip-Gram模型的目标是根据目标词来预测它的上下文词。对于每个目标词w,模型会尝试预测它周围每个上下文词c的概率分布。

工作原理:
  • 使用目标词的向量表示作为输入。
  • 对于每个上下文词,使用一个softmax层来预测它的概率。

3. 训练过程

无论是CBOW还是Skip-Gram模型,训练过程都包括以下步骤(其实也就是一个基础完整的神经网络的过程):

  1. 初始化:随机初始化词向量和(如果是CBOW模型的话)上下文向量。
  2. 前向传播:根据模型架构,计算目标词或上下文词的概率分布。
  3. 计算损失:使用负采样或层次softmax技术来计算损失函数。
  4. 反向传播:根据损失函数,更新词向量。
  5. 迭代:重复上述步骤,直到模型收敛。

4. 负采样

由于softmax层的计算复杂度很高,Word2Vec使用负采样来加速训练。负采样是一种随机梯度下降变体,它只更新一小部分错误的类别,而不是所有类别。

5. 层次softmax

层次softmax是另一种加速技术,它通过构建一个二叉树来减少计算量。每个词都被放置在树中的某个位置,树的每个内部节点都对应于一个中间向量表示。

6. 应用

  • 语义相似度:使用词向量计算词语之间的相似度。
  • 文本分类:作为特征输入到分类模型中。
  • 机器翻译:帮助理解源语言和目标语言的语义。
  • 命名实体识别(NER):帮助模型识别和分类文本中的实体。

7. 限制和挑战

尽管Word2Vec非常流行且有效,但它也有一些限制:

  • 上下文窗口大小:固定的上下文窗口大小可能无法捕捉长距离依赖关系。
  • 一词多义:模型可能难以区分多义词的不同含义。
  • 训练数据:需要大量的高质量文本数据进行训练。

Word2Vec是NLP领域的一个重要里程碑,它为词语的向量化表示提供了一种有效的方法。尽管存在一些挑战,但它仍然是许多NLP任务中常用的基础技术之一。

OK , 前面抽象和生硬的内容也看得够呛了吧,老规矩,上例子!!

四、Word2Vec文本具体案例演示

让俺们通过一个具体的例子来说明Word2Vec是如何工作的,以及它如何生成词向量的。

假设文本数据

假设我们有以下简单的文本数据作为我们的语料库:

The quick brown fox jumps over the lazy dog.

预处理

首先,我们将文本进行预处理,包括分词(Tokenization)、去除停用词等步骤。在这个例子中,我们将忽略停用词,并简单地将句子分割成单词列表:

['The', 'quick', 'brown', 'fox', 'jumps', 'over', 'the', 'lazy', 'dog']

训练Word2Vec模型

接下来,我们使用Word2Vec模型来训练词向量。我们可以选择CBOW或Skip-Gram模型。为了简单起见,我们这里使用CBOW模型。

定义上下文窗口

我们定义一个大小为2的上下文窗口。这意味着对于每个目标词,我们将使用它左右两侧各一个词作为上下文。

训练过程
  1. 对于每个词,我们创建一个由其上下文词组成的窗口。
  2. 我们将这些词作为输入,目标是预测中心词。

例如,如果我们考虑中心词“fox”,它的上下文窗口将是:

  • 上下文词:[‘quick’, ‘brown’, ‘jumps’, ‘over’]
  1. 我们将这些上下文词的词向量与训练数据中的词向量进行比较,并通过反向传播调整我们的词向量,以最小化预测误差。

词向量的生成

经过训练后,每个词将被表示为一个向量。例如,我们可能得到以下词向量:

  • The → [0.1, 0.3, 0.2, …]
  • quick → [0.8, -0.4, 0.5, …]
  • brown → [0.3, 0.6, -0.1, …]
  • fox → [0.4, 0.2, 0.9, …]
  • jumps → [-0.5, 0.8, 0.3, …]
  • over → [-0.2, 0.1, 0.7, …]
  • lazy → [0.2, -0.3, 0.1, …]
  • dog → [0.7, -0.6, 0.2, …]

例子:语义相似性

如果我们想要找到与“fox”语义上相似的词,我们可以计算“fox”的词向量与其他词向量之间的距离(例如,使用余弦相似度),然后选择距离最近的词。假设我们得到以下结果:

  • dog 的余弦相似度最高,这意味着在训练数据的上下文中,“fox”和“dog”经常一起出现,因此它们在语义上是相似的。

例子:向量运算

Word2Vec的一个有趣特性是它可以执行向量运算来捕捉语义关系。例如,如果我们想要找到“king”和“man”之间的性别转换,我们可以执行以下向量运算:

  • king - man + woman 的结果可能会接近于“queen”的词向量,因为这种运算捕捉了性别的语义差异。

这个例子展示了Word2Vec如何通过上下文学习词的向量表示,并捕捉词与词之间的语义和句法关系。在实际应用中,Word2Vec模型会在更大的语料库上训练,生成更复杂的词向量,以用于各种复杂的NLP任务。

五、Word2Vec示例代码演示

下面是笔者使用Gensim库训练Word2Vec模型的代码:

from gensim.models import Word2Vec# 示例句子
sentences = [["the", "cat", "sat", "on", "the", "mat"],["the", "dog", "barked", "at", "the", "cat"]
]# 训练Word2Vec模型
model = Word2Vec(sentences, vector_size=100, window=5, min_count=1, workers=4)# 获取词汇的向量表示
vector = model.wv['cat']
print(vector)# 查找与“cat”最相似的词汇
similar_words = model.wv.most_similar('cat')
print(similar_words)

六、总结

词嵌入是NLP中一种重要的技术,通过将词汇映射到向量空间中,能够捕捉词汇之间的语义关系。传统的词嵌入方法(如Word2Vec、GloVe、FastText)已经在各种NLP任务中取得了显著的成功,而上下文嵌入方法(如BERT、GPT)进一步提升了词嵌入的表现,能够更好地捕捉词义的多义性和上下文依赖性。理解和掌握词嵌入技术是从事NLP研究和应用的重要基础。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

这篇关于人工智能NLP--特征提取之词嵌入(Word Embedding)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1096293

相关文章

基于人工智能的图像分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像分类是计算机视觉中的一个重要任务,目标是自动识别图像中的对象类别。通过卷积神经网络(CNN)等深度学习技术,我们可以构建高效的图像分类系统,广泛应用于自动驾驶、医疗影像诊断、监控分析等领域。本文将介绍如何构建一个基于人工智能的图像分类系统,包括环境

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

C - Word Ladder题解

C - Word Ladder 题解 解题思路: 先输入两个字符串S 和t 然后在S和T中寻找有多少个字符不同的个数(也就是需要变换多少次) 开始替换时: tips: 字符串下标以0开始 我们定义两个变量a和b,用于记录当前遍历到的字符 首先是判断:如果这时a已经==b了,那么就跳过,不用管; 如果a大于b的话:那么我们就让s中的第i项替换成b,接着就直接输出S就行了。 这样

基于人工智能的智能家居语音控制系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 随着物联网(IoT)和人工智能技术的发展,智能家居语音控制系统已经成为现代家庭的一部分。通过语音控制设备,用户可以轻松实现对灯光、空调、门锁等家电的控制,提升生活的便捷性和舒适性。本文将介绍如何构建一个基于人工智能的智能家居语音控制系统,包括环境准备

解决Office Word不能切换中文输入

我们在使用WORD的时可能会经常碰到WORD中无法输入中文的情况。因为,虽然我们安装了搜狗输入法,但是到我们在WORD中使用搜狗的输入法的切换中英文的按键的时候会发现根本没有效果,无法将输入法切换成中文的。下面我就介绍一下如何在WORD中把搜狗输入法切换到中文。

从希腊神话到好莱坞大片,人工智能的七大历史时期值得铭记

本文选自historyextra,机器之心编译出品,参与成员:Angulia、小樱、柒柒、孟婷 你可能听过「技术奇点」,即本世纪某个阶段将出现超级智能,那时,技术将会以人类难以想象的速度飞速发展。同样,黑洞也是一个奇点,在其上任何物理定律都不适用;因此,技术奇点也是超越未来理解范围的一点。 然而,在我们到达那个奇点之前(假设我们能到达),还存在另一个极大的不连续问题,我将它称之

[Day 73] 區塊鏈與人工智能的聯動應用:理論、技術與實踐

AI在健康管理中的應用實例 1. 引言 隨著健康管理需求的提升,人工智能(AI)在該領域的應用越來越普遍。AI可以幫助醫療機構提升效率、精準診斷疾病、個性化治療方案,以及進行健康數據分析,從而改善病患的健康狀況。這篇文章將探討AI如何應用於健康管理,並通過具體代碼示例說明其技術實現。 2. AI在健康管理中的主要應用場景 個性化健康建議:通過分析用戶的健康數據,如飲食、運動、睡眠等,AI可

Excel和Word日常使用记录:

Excel使用总结 表格颜色填充: 合并单元格: 选中你要合并的单元格区域。按下快捷键 Alt + H,然后松开这些键。再按下 M,接着按 C。这个组合键执行的操作是:Alt + H:打开“主页”选项卡。M:选择“合并单元格”选项。C:执行“合并并居中”操作。 插入行: 在Excel中,插入一行的快捷键是:Windows:选择整行(可以点击行号)。按下 Ctrl + Sh

word转PDF后mathtype公式乱码以及图片分辨率降低等一系列问题|完美解决

word转PDF后mathtype公式乱码以及图片分辨率降低等一系列问题|完美解决 问题描述 最近在投一篇期刊论文,直接提交word文档,当时没有查看提交预览,一审审稿意见全是:公式乱码、公式乱码、乱码啊!!!是我大意了,第二次提交,我就决定将word文档转成PDF后再提交,避免再次出现公式乱码的问题。接着问题又来了,我利用‘文件/导出’或‘文件/另存为’的方式将word转成PDF后,发现公式

【信创建设】信息系统信创建设整体技方案(word原件完整版)

信创,即“信息技术应用创新”。我国自主信息产业聚焦信息技术应用创新,旨在通过对IT硬件、软件等各个环节的重构,基于我国自有IT底层架构和标准,形成自有开放生态,从根本上解决本质安全问题,实现信息技术可掌控、可研究、可发展、可生产。信创发展是一项国家战略,也是当今形势下国家经济发展的新功能。信创产业发展已经成为各行各业数字化转型、提升产业链发展的关键。 软件全套资料部分文档清单: 工作安排任