[智能体-268]:Word2Vec 通俗详解(大白话版,无复杂公式)
一句话本质用 “猜邻居词语” 的游戏自动给每个单词生成一串数字词向量意思相近的词数字也挨得近。举例苹果、香蕉向量接近汽车、轿车向量接近。一、先明白为啥不用原始编码单词原始编码One-hot苹果 [1,0,0,0]、香蕉 [0,1,0,0] 缺点词多了向量巨长所有词互相垂直看不出苹果和香蕉有关系。Word2Vec 目标压缩成短短一串数字自带语义比如苹果[0.2,0.5,-0.1...]。二、两个训练模式CBOW、Skip-Gram1. CBOW看周边词猜中间词填空句子我 爱吃 苹果 水果 窗口 1中间词苹果上下文爱吃、水果 任务已知【爱吃、水果】猜中间是苹果优点训练快、适合海量高频词输入多个词→求和→预测一个词2. Skip-Gram看中间词猜周边词最常用同样例句中间词 苹果去猜前后爱吃、水果 任务拿着苹果猜旁边会出现什么词优点低频词效果好工业首选gensim 默认常用记住sg1 是 Skip-Gramsg0 是 CBOW三、难点怎么提速负采样大白话如果词典有 10000 个词正常猜词要挨个比对 1 万次太慢。负采样思路正样本真实配对苹果↔水果标记正确随机瞎抽 520 个不相关词苹果↔桌子、云朵当作错误样本 只训练这几十个词做二分类判断搭配对不对。 原本算 10000 次→现在只算 6~21 次速度暴涨。另一种优化分层霍夫曼树用树分叉查找日常基本不用四、训练全过程生活化比喻把文章切成一个个词语滑动小窗口拆成大量「中心词 上下文」练习题模型随机给每个单词一组初始乱码数字反复做题猜词猜错就微调所有单词的数字循环几万轮猜词越来越准最终每个单词的那串数字 Word2Vec 词向量。五、词向量能干啥查近义词输入 “轿车”返回汽车、越野车、SUV词语推理国王−男人 女人 ≈ 王后作为数字特征喂给分类、NLP 模型。六、致命缺点重点静态词向量一个词永远只有一组数字分不清多义词例bank 银行 / 河岸两个含义共用同一个向量解决靠后续 ELMo、BERT 动态词向量。七、极简代码gensim 上手python运行from gensim.models import Word2Vec # 分词好的句子 corpus [[我,爱吃,苹果],[苹果,很甜],[香蕉,是,水果]] # 训练Skip-Gram向量维度50 model Word2Vec(corpus,sg1,vector_size50,window2,min_count1) # 查向量 print(model.wv[苹果]) # 找相似 print(model.wv.most_similar(苹果))速记口诀CBOW 选词填中间Skip 猜邻是首选负采抽样省算力一词一向量难多变。