词嵌入方法(Word Embedding)

词嵌入方法(Word Embedding)

Word Embedding是NLP中的一种技术,通过将单词映射到一个空间向量来表示每个单词

✨️常见的词嵌入方法:

  • 🌟Word2Vec:由谷歌提出的方法,分为CBOW(continuous Bag of Words)和Skip-gram两种模型。

  • 🌟Glove:斯坦福大学提出的基于统计的词嵌入方法。

  • 🌟FastText:由Facebook提出的方法,不仅考虑了单词,还考虑了字符。

  • 🌟ELMo(Embeddings from Language Models):基于双向LSTM。

  • 🌟BERT:谷歌提出的基于transformers的词嵌入方法。

Word2Vec

  • CBOW:通过预测上下文(周围的单词)来训练模型。

  • Skip-gram:通过给定一个词,来预测这个单词的上下文。

  • 优点:简单高效,能够捕捉语义关系和特征。

  • 缺点:无法处理多义词,每个单词只有一个向量表示。

 

# 训练Word2Vec模型	
model = Word2Vec(sentences=data, vector_size=100, window=5, min_count=1, workers=4, sg=1)
# 保存模型
model.save("word2vec.model")
  • vector_size=100:指定词向量的维度为 100。这意味着每个词将被表示为一个 100 维的向量。

  • window=5:指定上下文窗口的大小为 5。这意味着在训练过程中,每个词会考虑其前后各 5 个词作为上下文。

  • min_count=1:指定词的最小出现次数。只有出现次数大于或等于 min_count 的词才会被包含在模型中。这里设置为 1,表示所有词都会被包含。

  • workers=4:指定用于训练的并行工作线程数。这里设置为 4,表示使用 4 个线程进行训练。

  • sg=1:指定训练算法。sg=1 表示使用 Skip-gram 算法,sg=0 表示使用 CBOW(Continuous Bag of Words)算法。

♨️执行完上面的代码后,本地生成了 3 个文件:

  1. word2vec.model:主模型文件,包含了模型的参数、词汇表等信息。不仅存储了模型的架构信息,还包括了词汇频率、模型训练状态等。

  2. word2vec.model.wv.vectors.npy:这个文件存储了模型中所有词汇的词向量。

  3. word2vec.model.syn1neg.npy:这个文件存储的是训练过程中使用的负采样权重。

Glove

  • 基于全局统计的模型,通过矩阵分解的方法训练词向量,在Word2Vec的基础上进一步优化,以更好地捕捉词语之间的语义关系

  • 优点:利用全局实现矩阵,更好地捕捉全局统计信息

  • 缺点:离线训练,无法动态更新词向量。

✨️FastText

  • 扩展了Word2Vec的思路,考虑了词内的字符n-gram(“apple” 和“apples”)。

  • 优点:能处理未登录词问题(训练时未出现,测试时出现了的单词),对拼写错误和变形更加友好。

  • 缺点:训练时间和存储压力大。

  • 未登录词的嵌入向量是通过对其所有子词 n-gram 的嵌入向量进行平均或求和得到的

import fasttext
model1 = fasttext.train_unsupervised('data/fil9') 
model = fasttext.load_model("data/fil9.bin")
# 获取对应词向量
model.get_word_vector("the")

✨️ELMo

  • ELMo在传统静态word embedding方法(Word2Vec, GloVe)的基础上提升了很多, 但是依然存在缺陷, 有很大的改进余地

  • 缺点在于特征提取器的选择上, ELMo使用了双向双层LSTM, 而不是现在横扫千军的Transformer, 在特征提取能力上是要弱一些

  • ELMo选用双向拼接的方式进行特征融合, 这种方法不如BERT一体化的双向提取特征好

 

🔎ELMo分三个主要模块:

  • 最底层黄色标记的Embedding模块.

  • 中间层蓝色标记的两部分双层LSTM模块.

  • 最上层绿色标记的词向量表征模块.

ELMo最底层的词嵌入采用CNN对字符级进行编码, 本质就是获得一个静态的词嵌入向量作为网络的底层输入

ELMo模型是个根据当前上下文对word embedding动态调整的语言模型

🫧BERT

  • 基于Transformer架构,通过Mask任务和双向编码器实现词嵌入。

  • 性能先进,捕捉了丰富的上下文信息。

通过预训练, 加上Fine-tunning, 在11项NLP任务上取得最优结果,BERT的根基源于Transformer, 相比传统RNN更加高效, 可以并行化处理同时能捕捉长距离的语义和结构依赖,BERT采用了Transformer架构中的Encoder模块, 不仅仅获得了真正意义上的bidirectional context, 而且为后续微调任务留出了足够的调整空间。

🫧BERT的MLM任务中为什么采用了80%, 10%, 10%的策略?

  • 首先, 如果所有参与训练的token被100%的[MASK], 那么在fine-tunning的时候所有单词都是已知的, 不存在[MASK], 那么模型就只能根据其他token的信息和语序结构来预测当前词, 而无法利用到这个词本身的信息, 因为它们从未出现在训练过程中, 等于模型从未接触到它们的信息, 等于整个语义空间损失了部分信息. 采用80%的概率下应用[MASK], 既可以让模型去学着预测这些单词, 又以20%的概率保留了语义信息展示给模型.

  • 保留下来的信息如果全部使用原始token, 那么模型在预训练的时候可能会偷懒, 直接照抄当前token信息. 采用10%概率下random token来随机替换当前token, 会让模型不能去死记硬背当前的token, 而去尽力学习单词周边的语义表达和远距离的信息依赖, 尝试建模完整的语言信息.

  • 最后再以10%的概率保留原始的token, 意义就是保留语言本来的面貌, 让信息不至于完全被遮掩, 使得模型可以"看清"真实的语言面貌

🥇BERT预训练模型所接收的最大sequence长度是512,对于长文本(文本长度超过512的句子), 就需要特殊的方式来构造训练样本. 核心就是如何进行截断:

  • head-only方式: 只保留长文本头部信息的截断方式, 具体为保存前510个token (要留两个位置给[CLS]和[SEP]).

  • tail-only方式: 只保留长文本尾部信息的截断方式, 具体为保存最后510个token (要留两个位置给[CLS]和[SEP]).

  • head+only方式: 选择前128个token和最后382个token (文本总长度在800以内), 或者前256个token和最后254个token (文本总长度大于800)

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

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

相关文章

【go从零单排】实现枚举类型(Enum)

🌈Don’t worry , just coding! 内耗与overthinking只会削弱你的精力,虚度你的光阴,每天迈出一小步,回头时发现已经走了很远。 📗概念 在Go语言中,并没有内置的枚举类型(Enum)&…

Python爬虫如何处理验证码与登录

Python爬虫如何处理验证码与登录 Python 爬虫在抓取需要登录的网站数据时,通常会遇到两个主要问题:登录验证和验证码处理。这些机制是网站用来防止自动化程序过度抓取数据的主要手段。本文将详细讲解如何使用 Python 处理登录与验证码,以便进…

MOS管损坏原因

MOS管是什么? MOS管,全程就是MOSFET(Metal-Oxide-Semiconductor Field-Effect Transistor),是一种场效应晶体管。‌ MOS管控制原理 MOS管的工作原理是通过栅极电压(G)来控制源极&#xff08…

「QT」QT5程序设计专栏目录

✨博客主页何曾参静谧的博客📌文章专栏「QT」QT5程序设计📚全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasolid…

论文阅读《机器人状态估计中的李群》

目录 摘要1 介绍2 微李理论2.1 李群 摘要 李群是一个古老的数学抽象对象,可以追溯到19世纪,当时数学家 Sophus Lie奠定了连续变换群理论的基础。多年后,它的影响已经蔓延到科学和技术的各个领域。在机器人领域,我们最近正在经历一…

EHOME视频平台EasyCVR视频融合平台使用OBS进行RTMP推流,WebRTC播放出现抖动、卡顿如何解决?

在现代视频监控领域,跨区域的网络化视频监控管理平台成为了大中型项目的首选。EHOME视频平台EasyCVR以其强大的功能和兼容性,成为了众多项目的核心组件。它不仅能够管理视频资源、设备、用户、运维和安全,还支持多种行业标准协议,…

go语言使用总结(持续更新)

整理后的内容如下: 1. 先了解函数签名,再了解传入参数以及调用 函数签名是函数的声明部分,包括函数名、参数列表和返回值列表。理解函数签名是理解函数行为的第一步,尤其是在了解参数类型、参数数量和返回值类型等方面。通过了解…

浮动路由:实现出口线路的负载均衡冗余备份。

浮动路由 Tip:浮动路由指在多条默认路由基础上加入优先级参数,实现出口线路冗余备份。 ip routing-table //查看路由表命令 路由优先级参数:越小越优 本次实验测试两条默认路由,其中一条默认路由添加优先级参数,设置…

Android CCodec Codec2 (十九)C2LinearBlock

在上一篇文章的结尾,我们看到fetchLinearBlock方法最终创建了一个C2LinearBlock对象。这一节,我们将深入了解C2LinearBlock是什么,它的作用是什么,以及它是如何被创建的。 1、_C2BlockFactory 先对上一篇文章的结尾内容做简单回顾…

Axure PR 9 多级下拉选择器 设计交互

​ 大家好,我是大明同学。 Axure选择器是一种在交互设计中常用的组件,这期内容,我们来探讨Axure中多级下拉选择器设计与交互技巧。 下拉列表选择输入框元件 创建选择输入框所需的元件 1.在元件库中拖出一个矩形元件。 2.选中矩形元件&…

SparkSql读取数据的方式

一、读取普通文件 方式一:给定读取数据源的类型和地址 spark.read.format("json").load(path) spark.read.format("csv").load(path) spark.read.format("parquet").load(path) 方式二:直接调用对应数据源类型的方法 …

使用特征构建进行连续变量的特征提取

特征构建(Feature Engineering)是机器学习过程中至关重要的一步,它直接影响模型的性能和准确性。通过对原始数据进行转换、处理和扩展,可以为模型提供更加丰富的信息,提升预测效果。特征构建的核心思想是利用现有的数据来生成新的特征,以便模型可以更好地捕捉潜在的规律和…

使用Python实现图像的手绘风格效果

使用Python实现图像的手绘风格效果 一、引言二、代码详细解释与示例三、完整框架流程四、运行五、结论附:完整代码 一、引言 在数字图像处理领域,模拟手绘风格是一项有趣且具有挑战性的任务。手绘风格图像通常具有独特的纹理和深浅变化,给人…

Oracle Select语句

SELECT语句使用方法 在Oracle中,表是由列和行组成。 例如,示例数据库中的customers表具有以下列:customer_id,name,address,website和credit_limit。customers表中这些列中也有对应的数据。 要从表的一个或…

Scala的集合。

定义:set表示没有重复元素的集合 特点:唯一,无序 Set有可变mutable和不可变immutable 两种类型。不可变set创建后元素不能修改,可变set可对元素进行添加,删除等操作,这两种类型能满足不同场景需求。 pack…

w~大模型~合集21

我自己的原文哦~ https://blog.51cto.com/whaosoft/12459590 #大模型~微调~用带反馈的自训练 面对当前微调大模型主要依赖人类生成数据的普遍做法,谷歌 DeepMind 探索出了一种减少这种依赖的更高效方法。大模型微调非得依赖人类数据吗?用带反馈的自训…

opencv 中 threshold 函数作用

在 OpenCV 中,threshold 函数用于将图像转换为二值图像,它通过设置一个阈值来将像素值分类为两类:低于阈值的像素设置为 0(或黑色),高于阈值的像素设置为最大值(通常是 255 或白色)。…

ctfshow(316,317,318)--XSS漏洞--反射性XSS

反射型XSS相关知识 Web316 进入界面: 审计 显示是关于反射性XSS的题目。 思路 首先想到利用XSS平台解题,看其他师傅的wp提示flag是在cookie中。 当前页面的cookie是flagyou%20are%20not%20admin%20no%20flag。 但是这里我使用XSS平台,…

java 容器的快速失败(fast-fail)机制

Java容器的快速失败(fail-fast)机制是Java集合框架中的一种重要特性,它主要用于在迭代过程中检测并处理集合的并发修改。以下是对该机制的详细解释: 一、定义与原理 快速失败机制的核心思想是在迭代过程中,一旦检测到…

【案例】Excel使用宏来批量插入图片

一、场景介绍 我有一个excel文件,需要通过一列的文件名称,按照规则给批量上传图片附件。 原始文件: 成功后文件: 二、实现方法 1. 使用【wps】工具打开Excel文件,将其保存为启用宏的文件。 2.找到编辑宏的【VB编辑器…