word2vec模型原理及实现词向量训练案例(一)

简介: word2vec模型原理及实现词向量训练案例

一、博主学习卷积神经网络CNN主要参考下面的五篇文章和视频(需要掌握“两个语言模型”指的是“CBOW”和“Skip-gram”和“两个降低计算复杂度的近似方法”“Hierarchical Softmax”和“Negative Sampling”,两个模型乘以两种方法,共有四种实现):

二、在看完上面的文章内容,大家对于原理还有疑问可以参考博主自己学习后思考总结的重要内容。

  • Skip-gram是输入为中心词,输出为上下文;CBOW是输入为上下文,输出为中心词。
  • Hierarchical Softmax:翻译成中文是多层Softmax其实就是将神经网络原本设计的最后一层改为哈夫曼树,语料库根据词汇种类构造单词库,根据单词库中的词频进行编码,那么树所有的叶子节点就表示单词库的各个词汇,并且词频越高编码越短,计算效率越快。怎么根据损失函数更新参数的逻辑是(博主以CBOW为例):树中的每个非叶子节点是一个感知机,且是二分类计算,我们根据语料库可以知道对应的输出词汇结果的哈夫曼编码,然后我们根据0和1的不同的概率值(概率之和为1),再分别根据对应词汇的哈夫曼编码结果依次取出代入下面的计算公式可以得出一个值,当然这个L值(下面第二个公式计算后累加)是越大越好,则损失函数值(J=1-L)越小越好,举个例子,设置真实的输出的词汇的编码是1011,那么中间要经历四个感知机也就是四个非叶子节点,假如模型经历的是1001,那么计算的L肯定较小,则损失函数值较大,因为模型在实际运算中第三个感知机既然选择0,那么其选择1的概率小于50%,原本选择1的概率要大于50%,所以如果还是按照1011路线走,那么概率代入公式计算起来肯定L值较小,损失函数值较大,则需要反向传播更新参数,减小损失函数值。

  • Negative Sampling:负采样,相较于Hierarchical Softmax(正样本是正确二叉树路径,负样本是二叉树的其他路径),没有使用哈夫曼树,而是进行部分负采样,将输入上下文(词汇)和其正确输出词汇(上下文)看作正样本,再用根据词汇表中选NEG个上下文(词汇(文本高频词汇))且非输出上下文(词汇)作为负样本,然后怎么根据损失函数更新参数的逻辑是(下面的公式以CBOW为例):一组正样本,NEG组负样本代入下面最后的公式L,正样本概率越大,负样本概率(1-正样本概率)越小,则L数值计算结果越大,则损失函数J=1-L的值越小。相较于用Hierarchical Softmax计算词汇表中所有的词汇概率,负采样只需要计算1+NEG个样本的计算值,效果更好。

  • Skip-gram词向量生成前期数学原理逻辑设置(博主以Skip-gram为例):
  • 引入神经网络模型多层感知机(MTP)来生成输入词的词向量,为满足上式输出概率P之和等于1且范围属于(0,1],通过引入Softmax进行实现。注意:输入词向量决定Z的结果,因为是one hot编码只有一个1,其余都是0

  • Skip-gram模式下语料库词汇概率转换得出损失函数的计算公式(context是指上下文;conditional likelihood叫做条件概率,因常量在后续的计算中不影响计算过程可以选择忽略;Average conditional log likelihood平均条件对数概率,选择此处变换是在不影响整体结果的前提下为后续损失函数计算方便考虑):


  • 下图说明一下,设置的窗口是4,也就是上面的m=2,神经网络模型运行2m也就是4次,但是2m次输入的语料库词汇是一样的是Bt。
  • 神经网络模型输入的词汇是语料库的词汇Bt的one hot编码向量,输出的结果是词汇表中的各个词汇作为Bt上下文的概率。注意:单词库是指所有词汇都包含类似新华字典,语料库是指文档类似小说文本,当然语料库的词汇种类<=单词库,当从语料库中新建单词库就能够相等,最后运算得到的语料库各词的词向量仅满足适用于该语料库。
  • 神经网络模型运行2m次期间每次通过模型计算出单词库各个词汇的概率都不变也就是Wo不变,因为运算参数没变化(后面每反向传播一次后会变,因为运算参数每次会发生改变)。
  • 神经网络模型2m次运行期间每次将输入的词汇Bt(语料库)的上下文2m个词汇中的一个如Bt+m(非重复)对应模型输出的词汇如Wo=Bt+m(单词库)的概率值代入损失函数公式进行计算,然后为实现最小化损失函数值选择梯度下降法等进行反向传播,训练多次最后得到输入词汇Bt的词向量Q,其他语料库的词汇同Bt一样求出其词向量

word2vec实现词向量训练案例

一、打开语料库官网

搜狗实验室的搜狗新闻语料库官方链接:点击打开官方链接

二、下载语料库数据,首先下拉找到迷你版(样例数据, 110KB),然后点击第一个红色箭头指向的红色框内容(tar.gz格式),自己选择好保存文件的途径之后点击第二个红色箭头指向的红色框内容(保存)。注意:下载来的文件名是“news_sohusite_xml.smarty.tar.gz”。

三、首先按键盘“windows键+r”打开资源管理器 ,在打开栏输入“cmd”然后点击“确定”。然后通过转盘和cd转文件夹到之前下载的数据文件所在的文件夹为止。

四、复制下面代码到cmd平台执行命令,对之前下载的数据文件进行解压并取出内容(成功与否见下面第二章图,若原下载保存文件夹中出现则表示解压成功)。

tar -zvxf news_sohusite_xml.smarty.tar.gz

注意:为Windows系统顺利执行后面用到的命令,需要下载libiconv和grep文件和解压安装及配置。

五、首先点击打开下方链接,然后点击红色箭头指向的红色框内容(Setup)。

libiconv下载官方链接:点击打开官方链接

六、正常安装解压后进行环境配置,将你bin文件夹的具体位置(博主举例是C:\Program Files (x86)\GnuWin32\bin)复制,然后粘贴加到环境变量中path里面去。


相关文章
|
人工智能 Java Serverless
【MCP教程系列】搭建基于 Spring AI 的 SSE 模式 MCP 服务并自定义部署至阿里云百炼
本文详细介绍了如何基于Spring AI搭建支持SSE模式的MCP服务,并成功集成至阿里云百炼大模型平台。通过四个步骤实现从零到Agent的构建,包括项目创建、工具开发、服务测试与部署。文章还提供了具体代码示例和操作截图,帮助读者快速上手。最终,将自定义SSE MCP服务集成到百炼平台,完成智能体应用的创建与测试。适合希望了解SSE实时交互及大模型集成的开发者参考。
11655 60
|
11月前
|
数据采集 前端开发 物联网
【项目实战】通过LLaMaFactory+Qwen2-VL-2B微调一个多模态医疗大模型
本文介绍了一个基于多模态大模型的医疗图像诊断项目。项目旨在通过训练一个医疗领域的多模态大模型,提高医生处理医学图像的效率,辅助诊断和治疗。作者以家中老人的脑部CT为例,展示了如何利用MedTrinity-25M数据集训练模型,经过数据准备、环境搭建、模型训练及微调、最终验证等步骤,成功使模型能够识别CT图像并给出具体的诊断意见,与专业医生的诊断结果高度吻合。
20631 162
【项目实战】通过LLaMaFactory+Qwen2-VL-2B微调一个多模态医疗大模型
|
9月前
|
SQL JSON 数据可视化
基于 DIFY 的自动化数据分析实战
本文介绍如何使用DIFY搭建数据分析自动化流程,实现从输入需求到查询数据库、LLM分析再到可视化输出的全流程。基于经典的employees数据集和DIFY云端环境,通过LLM-SQL解析、SQL执行、LLM数据分析及ECharts可视化等模块,高效完成数据分析任务。此方案适用于人力资源分析、薪酬管理等数据密集型业务,显著提升效率并降低成本。
13281 16
|
自然语言处理
【NLP】如何实现快速加载gensim word2vec的预训练的词向量模型
本文探讨了如何提高使用gensim库加载word2vec预训练词向量模型的效率,提出了三种解决方案:保存模型以便快速重新加载、仅保存和加载所需词向量、以及使用Embedding工具库代替word2vec原训练权重。
808 2
|
机器学习/深度学习 人工智能 自然语言处理
一文讲懂大模型推理技术细节
本文介绍了大模型推理在自然语言处理(NLP)领域的原理与应用。大模型推理利用如GPT、BERT等预训练模型,通过深度学习中的Transformer结构和自注意力机制,实现文本分类、情感分析等多种任务。文章提供了使用Hugging Face的Transformers库进行文本分类的示例代码,并展望了大模型推理技术未来的发展潜力。
|
机器学习/深度学习 数据采集 算法
Python实现PSO粒子群优化支持向量机回归模型(svr算法)项目实战
Python实现PSO粒子群优化支持向量机回归模型(svr算法)项目实战
|
机器学习/深度学习 数据采集 自然语言处理
深入浅出:用Python实现简单文本分类器
【8月更文挑战第31天】本文旨在通过简明的Python代码示例,引导读者理解并实现一个简单的文本分类器。从数据预处理到模型训练,再到结果评估,我们将一步步构建起一个基于朴素贝叶斯算法的文本分类系统。无论你是编程新手还是机器学习初学者,这篇文章都将为你打开一扇通往文本分析世界的大门。
|
自然语言处理 搜索推荐 算法
word2vec模型原理及实现词向量训练案例(二)
word2vec模型原理及实现词向量训练案例
773 0
word2vec模型原理及实现词向量训练案例(二)
|
自然语言处理 算法
文本分析-使用jieba库实现TF-IDF算法提取关键词
文本分析-使用jieba库实现TF-IDF算法提取关键词
922 1
|
自然语言处理 数据可视化 数据处理
基于gensim实现word2vec模型(附案例实战)
基于gensim实现word2vec模型(附案例实战)
1353 1
基于gensim实现word2vec模型(附案例实战)