词嵌入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. 使用预训练好的词向量

相关推荐
墨绿色的摆渡人9 天前
用 pytorch 从零开始创建大语言模型(六):对分类进行微调
人工智能·pytorch·python·深度学习·语言模型·embedding
花千树-01012 天前
Dify - 架构、部署、扩展与二次开发指南
gpt·架构·prompt·aigc·embedding·llama·agi
花千树-01016 天前
LangChain教程 - Agent -之 REACT_DOCSTORE
python·机器学习·langchain·pdf·prompt·aigc·embedding
Sirius Wu21 天前
三级缓存架构
容器·kubernetes·embedding
花千树-0101 个月前
微调训练方法概述:Fine-tuning、Prompt-tuning、P-tuning 及其他高效技术
人工智能·机器学习·chatgpt·prompt·aigc·embedding
花千树-0101 个月前
LangChain教程 - RAG - PDF问答
人工智能·python·langchain·pdf·nlp·aigc·embedding
CSBLOG1 个月前
LLM(大语言模型)、Chat 大模型和 Embedding 大模型
人工智能·语言模型·embedding
大霸王龙1 个月前
不同Embedding模型与大语言模型(LLM)的交互主要通过语义向量传递实现
人工智能·python·深度学习·机器学习·语言模型·embedding
m0_748252381 个月前
GraphRAG如何使用ollama提供的llm model 和Embedding model服务构建本地知识库
python·flask·embedding
大龄码农有梦想2 个月前
Springboot集成Milvus和Embedding服务,实现向量化检索
spring boot·embedding·milvus·向量检索·spring ai