Word2Vec介绍

前言

当今的大语言模型非常智能,但是你有没有想过这些事情:

  • 机器是怎么理解“国王”和“王后”之间的关系?

  • “猫”和“狗”是怎么在 AI 中“相似以及区分”的?

  • 文本又是怎么变成模型能读懂的数字?

这一切,都要和一个强大的工具有关系,词嵌入:Word2Vec!

先看一张图片,如下是一个tensflow实现的word2vec的密密麻麻的词图,是不是感觉很壮观,那么AI是如何做到的呢 ?
在这里插入图片描述

本篇就要说下, Word2Vec是如何让 AI “读懂”文字的,先看定义,如下

定义

Word2Vec 是 Google 在 2013 年提出的一个自然语言处理模型,它能把文字转换成向量(数字),而且这些向量还包含了语义信息!

用一句话总结它的核心价值:Word2Vec 把人类理解的词变成“计算机能理解的向量”,并且保留词与词之间的关系!

怎么这么神奇,这就需要去了解下输出增强

输出增强

在word2vec出来之前,传统做法是使用「独热编码 One-Hot Encoding」来表示单词,比如:

单词One-hot 向量(长度为5)
[1, 0, 0, 0, 0]
[0, 1, 0, 0, 0]
老鼠[0, 0, 1, 0, 0]

从表中看到,存在两个主要的问题:

  • 向量非常稀疏,占用内存

  • 单词之间没有任何语义关系

比如,“猫”和“狗”在独热向量中完全没有联系,而 Word2Vec 能让「相似意思」的词靠得更近!那么Word2Vec 输出的是什么样的向量?和独热向量比有啥优势?我们看下Word2Vec的输出向量

输出的向量

Word2Vec 会给每个词一个低维度的密集向量,比如:

单词向量(假设为3维)
[0.21, 0.54, -0.31]
[0.19, 0.50, -0.29]
老鼠[-0.42, 0.18, 0.33]

更神奇的是,它还能保留词之间的关系:具备了一种“类人思维”的意思。通过各个维度的数据相似度,来区分和相似猫狗老鼠,那么各个维度的数据又是怎么训练出来的呢?

训练方式

Word2Vec 有两种主要的训练方式:

  • CBOW训练
    CBOW(Continuous Bag of Words),是根据“上下文词”,预测“中心词”。

举例:

给定上下文:我 喜欢 __ 晚饭
模型要学会填空:“吃”

结构图:

上下文词 → 中间隐藏层 → 预测中心词

适合小数据集

  • Skip-Gram训练

根据“中心词”,预测“上下文词”。

举例:

中心词:“吃”,模型要学会预测“我”“喜欢”“晚饭”

结构图:

中心词 → 中间隐藏层 → 预测多个上下文词

适合大数据集

实战示例

我们用 Gensim 来实现 一个Word2Vec的示例如下

from gensim.models import Word2Vec

sentences = [["我", "喜欢", "吃", "晚饭"],
             ["猫", "喜欢", "鱼"],
             ["狗", "也", "喜欢", "鱼"]]

model = Word2Vec(sentences, vector_size=100, window=2, min_count=1, sg=1)  # sg=1表示用Skip-Gram

print(model.wv["猫"])  # 查看“猫”的词向量
print(model.wv.most_similar("猫"))  # 查找最相近的词

应用场景

场景示例
语义相似性推荐系统中:喜欢“披萨”的人可能也喜欢“汉堡”
文本聚类新闻分类、问答系统
情感分析正负面情绪词向量聚类
机器翻译词义对齐、多语言向量空间

局限性分析

虽然 Word2Vec 非常强大,但也有一些局限:

  • 静态词向量:一个词在不同语境下表示一样,比如“银行”在“金融银行”和“河岸”中的意思不同,但 Word2Vec 分不清

  • 对上下文敏感度弱:只靠邻近的词来训练

  • 冷启动问题:对新词不友好

但好在,这些问题在后来的 BERTELMo 等上下文嵌入模型中得到了改善。

总结

特点Word2Vec
优点简洁、高效、能捕捉词的语义关系
训练方式CBOW / Skip-Gram
输出结果低维度、密集的词向量
主要应用NLP 中的基础词嵌入层
局限不考虑上下文、不支持多义词
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

勤奋的知更鸟

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值