词嵌入Word Embedding

1. 背景

词嵌入定义为NLP中语言建模和特征学习技术的总称,是一种将文本中的词汇转化成数值向量 的方法(将字典中的单词和词组映射成实向量)。

one-hot编码存在的一个主要问题是它无法表示出词汇间的相似度。

2. 分布式表示

分布式表示试图通过考虑上下文词汇间的关系来捕捉词汇语义。分布式表示的目标是找出一个通用的转换函数,把词汇转换成(与它关联的)向量,使它们之间的相似性符合词汇间语义的相性。

2.1 word2vec

word2vec 是一个模型组,这些模型是无监督的,它以大型文本语料作为输入,并生成词汇的向量空间。其向量空间的维度通常低于one-hot编码的字典大小的向量空间维度。

尽管word2vec创建了用于深度学习NLP模型的向量,但它却是浅层NN。

常见的两种结构如下:

2.1.1 skip-gram

skip-gram 模型训练的目标是通过给定的当前词 (中心词)来预测周围词。skip-gram 方法会对正样例可能性的结果池进行随机采样;对用于生成负样例的负样本取样处理,会包含从文本中随机组对的任意token。

2.2.2 CBOW连续词袋模型

CBOW(Continuous Bag Of Words)模型通过周围的词汇预测当前词,且上下文词汇的顺序不会影响预测结果(即词袋的假定)。

CBOW更快,但skip-gram在预测非常用词时比较出色。

2.2.3 从模型中提取word2vec向量

把字典中的词转换成稠密的低维的分布式表示时所用的权重矩阵。

Gensim库提供了一个word2vec的实现。

2.2 GloVe

GloVe是一种获取词的向量表示的 非监督学习算法 ,其训练基于语料中全局聚合的共现词的统计进行,结果表示展示了词向量空间中有趣的线性子结构。(字典表示中的全局向量叫GloVe向量。)

GloVe处理过程把共现矩阵转换成了一对(word, feature) 和 (feature, context)的矩阵。这个过程就是矩阵分解,它是通过随机梯度下降的方法完成的,SGD是一种数值迭代方法。当SGD收敛时矩阵(word, feature)就是GloVe向量,为了加快收敛,SGD通常采用并发模式。

基于预测NN的模型(如word2vec)和基于计数的模型(如GloVe)在思路上是相似的。它们都构造了一个向量空间,其中词的位置会被它的邻近词影响。NN模型以共现词的各个样例开始,而基于计数的模型通过语料中所有词的聚合共现统计开始。

尽管GloVe通常比word2vec有更高的准确率,而且使用并发时比word2vec训练的更快,但其相关python工具不如word2vec的那么成熟。

3. 使用预训练好的词向量

相关推荐
0566465 天前
agent学习Day23——文件上传与 Embedding 语义检索
python·学习·embedding
ShallWeL7 天前
【机器学习】(32)—— Embedding 串讲
人工智能·机器学习·embedding
ShallWeL8 天前
【机器学习】(31)—— 如何得到 Embedding
人工智能·机器学习·embedding
denggun123458 天前
大大模型 如何通过 本地排雷 远端GPU
python·embedding·pip
ShallWeL11 天前
【机器学习】(30)—— 嵌入空间
人工智能·神经网络·机器学习·embedding
孙启超11 天前
【AI应用开发】 RAG篇(四):Prompt 工程与进阶技术
人工智能·llm·embedding·rag·向量化·chunking·文档切分
Cachel wood12 天前
hands-on-modern-rl:动手学强化学习 贝尔曼方程
开发语言·网络·python·学习·embedding
ShallWeL12 天前
【机器学习】(29)—— Embedding
人工智能·神经网络·机器学习·embedding
sugar__salt14 天前
向量数据库从零到实战:用 Milvus + Zilliz 构建 AI 日记语义检索系统
数据库·人工智能·embedding·milvus·rag·zilliz
橙臣程14 天前
深度学习11——Tokenization、embedding、位置编码
人工智能·深度学习·embedding