大语言模型系列-word2vec

这篇具有很好参考价值的文章主要介绍了大语言模型系列-word2vec。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

在前文大语言模型系列-总述已经提到传统NLP的一般流程:

创建语料库 => 数据预处理 => 分词向量化 => 特征选择 => 建模(RNN、LSTM等)

传统的分词向量化的手段是进行简单编码(如one-hot),存在如下缺点:

  • 如果词库过大, one-hot编码生成的向量会造成维度灾难
  • one-hot编码生成的向量是稀疏的,它们之间的距离相等,无法捕捉单词之间的语义关系。
  • one-hot编码是固定的,无法在训练过程中进行调整。

因此,出现了词嵌入(word embedding)的概念,通过word embedding模型生成的向量是密集的,具有相似含义的单词在向量空间中距离较近,可以捕捉单词之间的语义关系。并且Word Embedding模型的权重可以在训练过程中进行调整,以便更好地捕捉词汇之间的语义关系。

word2vec就是一种经典的词嵌入(word embedding)模型,由Tomas Mikolov等人在2013年提出,它通过学习将单词映射到连续向量空间中的表示,以捕捉单词之间的语义关系。


提示:以下是本篇文章正文内容,下面内容可供参考

一、word2vec的网络结构和流程

Word2Vec是轻量级的神经网络,其模型仅仅包括输入层、隐藏层和输出层,根据学习思路的不同,分为两种训练方式:Skip-Gram和CBOW(Continuous Bag of Words)。其中,Skip-gram是已知当前词的情况下预测上下文的表示,CBOW则是在已知上下文的情况下预测当前词的表示。通过这种表示学习,学得映射矩阵,将原始离散数据空间映射到新的连续向量空间(实际上起到了降维的作用)。

  • 将单词使用one-hot编码
  • 输入网络进行训练,获得参数矩阵 W V × N W_{V×N} WV×N
  • 输入层的每个单词one-hot编码x(V-dim)与矩阵W相乘,即 x ⋅ W V × N x \cdot W_{V×N} xWV×N,得到其word embedding(N-dim)

1.Skip-Gram模型

大语言模型系列-word2vec,LLM,语言模型,word2vec,人工智能,自然语言处理,深度学习

2.CBOW模型

大语言模型系列-word2vec,LLM,语言模型,word2vec,人工智能,自然语言处理,深度学习
大语言模型系列-word2vec,LLM,语言模型,word2vec,人工智能,自然语言处理,深度学习

二、word2vec的训练机制

假设语料库中有V个不同的单词,hidden layer取128,则word2vec两个权值矩阵维度都是[V,128],我们使用的语料库往往十分庞大,这也会导致权值矩阵的庞大,即神经网络的参数规模的庞大,在使用SGD对庞大的神经网络进行学习时,将是十分缓慢的。

word2vec提出两种加快训练速度的方式,一种是Hierarchical softmax,另一种是Negative Sampling。

1. Hierarchical softmax

和传统的神经网络输出不同的是,word2vec的hierarchical softmax结构是把输出层改成了一颗哈夫曼树,其中图中白色的叶子节点表示词汇表中所有的V个词,黑色节点表示非叶子节点,每一个叶子节点也就是每一个单词,都对应唯一的一条从root节点出发的路径。我们的目的是使的 w = w 0 w=w_0 w=w0这条路径的概率最大,即: P ( w = w 0 ∣ w I ) P(w=w_0|w_I) P(w=w0wI)最大,假设最后输出的条件概率是 P ( w = w 0 ∣ w 2 ) P(w=w_0|w_2) P(w=w0w2)最大,那么只需要去更新从根结点到 w 2 w_2 w2这一个叶子结点的路径上面节点的向量即可,而不需要更新所有的词的出现概率,这样大大的缩小了模型训练更新的时间。

大语言模型系列-word2vec,LLM,语言模型,word2vec,人工智能,自然语言处理,深度学习

ps:

  • 给定N个权值作为N个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。
  • 我们知道在输入softmax之前,可以简单认为神经网络输出的大体含义为每个单词的频率,可以将其视为权值,然后通过哈夫曼树编码。这样在训练时,如果我们要计算Leaf2(观看)的概率,只需计算从Root到Leaf2路径上的节点的概率即可,而不需要考虑其他叶子节点,从而大大降低计算复杂度。
    大语言模型系列-word2vec,LLM,语言模型,word2vec,人工智能,自然语言处理,深度学习
    大语言模型系列-word2vec,LLM,语言模型,word2vec,人工智能,自然语言处理,深度学习

Hierarchical softmax的优点如下:

1)从利用softmax计算概率值改为利用Huffman树计算概率值,计算复杂度从O(V)变成了O(logV)
2)由于使用霍夫曼树是高频的词靠近树根,这样高频词需要更少的时间会被找到(贪心优化思想)

2. Negative Sampling

我们已经知道,对于每个训练样本,word2vec都需要计算并更新所有词汇表中的词的权重。这在大规模的词汇表上会变得非常昂贵,尤其是当词汇表非常大时。

Hierarchical softmax通过哈夫曼树,使得对于每个训练样本,只需要更新路径节点权重即可,大大减少了参数量和计算成本。Negative Sampling则通过只更新与当前训练样本相关的一小部分词的权重,以此来降低计算成本。具体步骤如下:

  1. 对于输入的中心词 w c w_c wc,设置窗口大小m,该窗口大小内的词为正样本(即 w c − m , . . . , w c + m w_{c-m},...,w_{c+m} wcm,...,wc+m,不包括 w c w_c wc
  2. 按照一定的概率分布 P ( w ~ ) P(\tilde w) P(w~)从词典中抽取K个负样本 w ~ 1 , w ~ 2 , . . . , w ~ k \tilde w_1, \tilde w_2,..., \tilde w_k w~1,w~2,...,w~k,那么{ w c , w ~ k w_c,\tilde w_k wc,w~k}为负样本,其中k=1,2,…,K
  3. 则给定中心词 w c w_c wc,预测 w j w_j wj j ∈ [ c − m , c + m ] j∈[c-m,c+m] j[cm,c+m])由如下事件集构成: w c w_c wc w j w_j wj共同出现,以及 w c w_c wc不和 w ~ k \tilde w_k w~k共同出现

Negative Sampling的优点如下:

1)将多分类问题转换成K+1个二分类问题,从而减少计算量,计算复杂度由O(V)变成了O(K),加快了训练速度。
2)保证模型训练效果,因为目标词只跟相近的词有关,没有必要使用全部的单词作为负例来更新它们的权重。


总结

和之前的方法相比,word2vec能够考虑上下文并获得低维的词向量表示,但word2vec无法解决多义词问题,没有语境信息,原因是word embedding是静态的(词和向量是一对一的关系),并且词嵌入和实际任务模型分开,使得整个训练过程不是端到端的。
大语言模型系列-word2vec,LLM,语言模型,word2vec,人工智能,自然语言处理,深度学习文章来源地址https://www.toymoban.com/news/detail-801957.html

到了这里,关于大语言模型系列-word2vec的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • NLP自然语言处理理论解释(单词分布式表示,共现矩阵,word2vec,CBOW模型详解)

    自然语言处理:一种能让计算机理解人类语言的技术,换而言之自然语言处理的目标就是让计算机理解人说的话, 单词的含义 让计算机理解语言,首先要理解我们的单词,有三种方法,1.基于同义词词典,2.基于计数方法,3.基于推理的方法(word2vec)。 单词分布式表示 大家都

    2024年02月03日
    浏览(49)
  • Word2Vec模型——将文本转换成向量的方法

            在美赛的时候,用了一下这个模型,发一下。         Word2Vec是一种用于将文本转换为向量表示的技术。它是Google在2013年开发的一种工具,主要用于将单词转换为向量表示,并在向量空间中找到单词之间的语义关系。Word2Vec模型有两种架构:连续词袋模型(Conti

    2023年04月21日
    浏览(34)
  • 深度学习(3)--递归神经网络(RNN)和词向量模型Word2Vec

    目录 一.递归神经网络基础概念 二.自然语言处理-词向量模型Word2Vec 2.1.词向量模型 2.2.常用模型对比 2.3.负采样方案 2.4.词向量训练过程 递归神经网络(Recursive Neural Network, RNN)可以解决有时间序列的问题,处理诸如树、图这样的递归结构。 CNN主要应用在计算机视觉CV中,RNN主要

    2024年01月21日
    浏览(41)
  • 【自然语言处理(NLP)】基于Skip-gram实现Word2Vec

    活动地址:[CSDN21天学习挑战赛](https://marketing.csdn.net/p/bdabfb52c5d56532133df2adc1a728fd) 作者简介 :在校大学生一枚,华为云享专家,阿里云星级博主,腾云先锋(TDP)成员,云曦智划项目总负责人,全国高等学校计算机教学与产业实践资源建设专家委员会(TIPCC)志愿者,以及编程

    2024年02月09日
    浏览(47)
  • Word2Vec详解

    Word2Vec 基本思想:通过训练将每一个词映射成一个固定长度的向量,所有向量构成一个词向量空间,每一个向量(单词)可以看作是向量空间中的一个点,意思越相近的单词距离越近。 如何把词转换为向量? 通常情况下,我们可以维护一个查询表。表中每一行都存储了一个特

    2024年02月13日
    浏览(44)
  • 论文精读--word2vec

    word2vec从大量文本语料中以无监督方式学习语义知识,是用来生成词向量的工具 把文本分散嵌入到另一个离散空间,称作分布式表示,又称为词嵌入(word embedding)或词向量 We propose two novel model architectures for computing continuous vector representations of words from very large data sets. The qua

    2024年02月22日
    浏览(48)
  • 机器学习——Word2Vec

    参考资料: https://zhuanlan.zhihu.com/p/114538417 https://www.cnblogs.com/pinard/p/7243513.html 统计语言模型是基于 语料库 构建的 概率模型 ,用来计算一个词串 W = ( w 1 , w 2 , ⋯   , w T ) W=(w_1,w_2,cdots,w_T) W = ( w 1 ​ , w 2 ​ , ⋯ , w T ​ ) 构成句子的概率 : p ( W ) = p ( w 1 , w 2 , ⋯   . w T ) = p

    2024年02月11日
    浏览(43)
  • 【NLP】如何实现快速加载gensim word2vec的预训练的词向量模型

    通过以下代码,实现加载word2vec词向量,每次加载都是几分钟,效率特别低。 (1)方案一 第一次加载后保存为能够快速加载的文件,第二次加载就能快读读取。 (2)方案二 第一次加载后,只将使用到的词向量以表格的形式保存到本地,第二次读取就不需要加载全部word2ve

    2024年03月14日
    浏览(46)
  • Word2Vec实现文本识别分类

    🍨 本文为🔗365天深度学习训练营 中的学习记录博客 🍦 参考文章:365天深度学习训练营-第N4周:用Word2Vec实现文本分类 🍖 原作者:K同学啊|接辅导、项目定制 语言环境:Python3.9.12 编译器:jupyter notebook 深度学习环境:TensorFlow2 本次内容我本来是使用miniconda的环境的,但是好

    2024年02月16日
    浏览(43)
  • 一文了解Word2vec 阐述训练流程

      在机器学习领域,嵌入(embeddings)的概念无疑是其中最令人兴奋的创新之一。想象一下,每当你与 Siri 、 Google Assistant 、 Alexa 或 Google Translate 互动,甚至在使用具有下一个词预测功能的手机输入法(比如苹果输入法、搜狗输入法)时,你其实都在享受词嵌入模型带来的

    2024年02月05日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包