机器学习——Word2Vec

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

参考资料:

  • https://zhuanlan.zhihu.com/p/114538417
  • https://www.cnblogs.com/pinard/p/7243513.html

1 背景知识

1.1 统计语言模型

统计语言模型是基于语料库构建的概率模型,用来计算一个词串 W = ( w 1 , w 2 , ⋯   , w T ) W=(w_1,w_2,\cdots,w_T) W=(w1,w2,,wT) 构成句子的概率
p ( W ) = p ( w 1 , w 2 , ⋯   . w T ) = p ( w 1 ) p ( w 2 ∣ w 1 ) ⋯ p ( w T ∣ w 1 , w 2 , ⋯   , w T − 1 ) (乘法公式) \begin{align} p(W)&=p(w_1,w_2,\cdots.w_T)\\ &=p(w_1)p(w_2|w_1)\cdots p(w_T|w_1,w_2,\cdots,w_{T-1})(乘法公式) \end{align} p(W)=p(w1,w2,.wT)=p(w1)p(w2w1)p(wTw1,w2,,wT1)(乘法公式)
p ( W ) p(W) p(W) 被称为语言模型,(2)式中的每个因子即为语言模型的参数。理论上,只要我们根据语料库计算出所有的模型参数,就能对很方便地计算出任意词串构成句子的概率,但由于参数过多,这种方法是不现实的。

1.2 N-gram模型

N-gram 模型的基本思想是做 n − 1 n-1 n1 阶 Markov 假设,即认为:
p ( w k ∣ w 1 , w 2 , ⋯   , w k − 1 ) = p ( w k ∣ w k − n + 1 ⋯   , w k − 1 ) ≈ c o u n t ( w k − n + 1 ⋯   , w k − 1 , w k ) c o u n t ( w k − n + 1 ⋯   , w k − 1 ) (大数定律) \begin{align} p(w_k|w_1,w_2,\cdots,w_{k-1})&=p(w_k|w_{k-n+1}\cdots,w_{k-1})\\ &\approx\frac{count(w_{k-n+1}\cdots,w_{k-1},w_k)}{count(w_{k-n+1}\cdots,w_{k-1})}(大数定律) \end{align} p(wkw1,w2,,wk1)=p(wkwkn+1,wk1)count(wkn+1,wk1)count(wkn+1,wk1,wk)(大数定律)
其中, c o u n t ( W ) count(W) count(W) 表示词串 W W W 在语料库中出现的次数。

需要注意的是:根据实际意义,即使 c o u n t ( w k − n + 1 ⋯   , w k − 1 , w k ) = 0 count(w_{k-n+1}\cdots,w_{k-1},w_k)=0 count(wkn+1,wk1,wk)=0,也不能认为 p ( w k ∣ w k − n + 1 ⋯   , w k − 1 ) = 0 p(w_k|w_{k-n+1}\cdots,w_{k-1})=0 p(wkwkn+1,wk1)=0 ;同理,即使 c o u n t ( w k − n + 1 ⋯   , w k − 1 , w k ) = c o u n t ( w k − n + 1 ⋯   , w k − 1 ) {count(w_{k-n+1}\cdots,w_{k-1},w_k)}={count(w_{k-n+1}\cdots,w_{k-1})} count(wkn+1,wk1,wk)=count(wkn+1,wk1),也不能认为 p ( w k ∣ w k − n + 1 ⋯   , w k − 1 ) = 1 p(w_k|w_{k-n+1}\cdots,w_{k-1})=1 p(wkwkn+1,wk1)=1,故 N-gram 模型往往需要进行平滑处理

但这种方法的参数仍然很多,所以我们可以考虑构建一个函数 F = ( w , c o n t e x t ( w ) , θ ) F=(w,{\rm context}(w),\theta) F=(w,context(w),θ),通过极大似然估计的方式估计出参数 θ \theta θ
L ( θ ) = ∑ w ∈ C log ⁡ p ( w ∣ c o n t e x t ( w ) , θ ) L(\theta)=\sum\limits_{w\in C}\log p(w|{\rm context}(w),\theta) L(θ)=wClogp(wcontext(w),θ)
其中 C 为语料库。这样以来,所有条件概率的计算都可以通过计算 F ( w , c o n t e x t ( w ) , θ ^ ) F(w,{\rm context}(w),\hat\theta) F(w,context(w),θ^) 来完成。显然,如何构建 F F F 成为了这一方法的关键问题。

直白地说,就是从语料库中选择及其上下文,让由上下文通过模型推出词的概率最大。

2 词向量

词向量:对词典中的任意词 w w w,指定一个固定长度的向量 v ( w ) ∈ R m v(w)\in\mathbb R^m v(w)Rm

2.1 独热编码

One-Hot 编码的向量长度为词典大小,向量中只有一个 1 1 1 ,位置与该词在词典中的位置相对应。

这样的编码主要有如下问题:

  • 向量维数过大。
  • 无法表现词之间的相关性。

2.2 Distributed Representation

基本想法:将词映射到一个向量空间,并在向量空间中引入“距离”,用以刻画词之间的关联程度。

Word2Vec 就是生成词向量的经典模型。

3 Word2Vec

Word2Vec 是轻量级的神经网络,其模型仅仅包括输入层、隐藏层和输出层,主要包括 CBOW 和 Skip-gram 模型

3.1 Simple CBOW Model

机器学习——Word2Vec
如上图所示:

  • 输入为单词的独热编码,与输入层与隐藏层之间的权重矩阵相乘( W T X W^TX WTX ),相当于得到权重矩阵中某一行的转置。
  • 隐藏层再和隐藏层与输出层之间的权重矩阵相乘( ( W ′ ) T h (W')^{T}h (W)Th ),得到输出层 u u u
  • 将输出向量的每一个分量经过 sotfmax 函数归一化,令概率最大的那个分量为 1 ,其余为 0 ,得到的向量即为预测词的独热编码。

由于该模型在输出层需要对每一个分量进行 softmax 函数归一化,而输出层的分量数由于词典的词数相同,故其计算量很大。

3.2 基于Hierarchical Softmax的CBOW

机器学习——Word2Vec
这部分建议直接看参考资料 2文章来源地址https://www.toymoban.com/news/detail-514684.html

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

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

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

相关文章

  • 论文精读--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日
    浏览(33)
  • 深度学习的Natural Language Processing:从Word2Vec到BERT

    自然语言处理(Natural Language Processing,NLP)是人工智能(Artificial Intelligence,AI)领域的一个重要分支,其目标是让计算机理解、生成和翻译人类语言。随着大数据、云计算和深度学习等技术的发展,深度学习的NLP(Deep Learning for NLP)在处理自然语言文本和语音的能力得到了显

    2024年02月03日
    浏览(28)
  • 深度学习(3)--递归神经网络(RNN)和词向量模型Word2Vec

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

    2024年01月21日
    浏览(29)
  • Word2Vec的CBOW模型

    Word2Vec中的CBOW(Continuous Bag of Words)模型是一种用于学习词向量的神经网络模型。CBOW的核心思想是根据上下文中的周围单词来预测目标单词。 例如,对于句子“The cat climbed up the tree”,如果窗口大小为5,那么当中心单词为“climbed”时,上下文单词为“The”、“cat”、“up”

    2024年02月02日
    浏览(34)
  • Word2Vec实现文本识别分类

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

    2024年02月16日
    浏览(33)
  • 大语言模型系列-word2vec

    在前文大语言模型系列-总述已经提到传统NLP的一般流程: 传统的分词向量化的手段是进行简单编码(如one-hot),存在如下缺点: 如果词库过大, one-hot编码生成的向量会造成维度灾难 one-hot编码生成的向量是稀疏的,它们之间的距离相等,无法捕捉单词之间的语义关系。

    2024年01月18日
    浏览(28)
  • 【NLP】Word2Vec原理和认识

            Word2Vec是NLP领域的最新突破。Tomas Mikolov是捷克计算机科学家,目前是CIIRC(捷克信息学,机器人和控制论研究所)的研究员,是word2vec研究和实施的主要贡献者之一。词嵌入是解决NLP中许多问题不可或缺的一部分。它们描绘了人类如何向机器理解语言。您可以将它

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

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

    2024年02月05日
    浏览(35)
  • NLP实战:使用Word2vec实现文本分类

    目录 一、数据预处理 1、加载数据 2. 构建词典 3.生成数据批次和迭代器 二、模型构建 1.搭建模型 2.初始化模型 3.定义训练与评估函数 三、训练模型 1. 拆分数据集并运行模型 2. 测试指定数据 🍨 本文为[🔗365天深度学习训练营]内部限免文章(版权归 *K同学啊* 所有) 🍖 作者

    2024年02月10日
    浏览(30)
  • 【NLP】Word2vec概念和演进史

            “万物都有一种模式,它是我们宇宙的一部分。它具有对称、优雅和优雅——这些品质你总能在真正的艺术家捕捉到的作品中找到。” ~ 沙丘 (1965)         对于word2vec,它不是一个或一种算法,而是一系列思想和算法的综合。本文通过有限篇幅,试图穿越思想跨

    2024年02月11日
    浏览(27)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包