机器学习——Word2Vec

news2024/11/15 8:37:41

参考资料:

  • 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

在这里插入图片描述
如上图所示:

  • 输入为单词的独热编码,与输入层与隐藏层之间的权重矩阵相乘( 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

在这里插入图片描述
这部分建议直接看参考资料 2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/697087.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计网实验第二章:TCP与UDP实验

TCP 1.服务器绑定端口号启动服务器欢迎socket。 2. 等待客户端发送请求。 3.等到客户端发送请求之后,服务器与客户端重新建立一个socket,但是客户端的目标端口不变。 java代码如下 客户端 客户端代码图解 import java.io.*; import java.net.*; clas…

《JavaScript 权威指南》犀牛书阅读详解

前言: 《JavaScript 权威指南》(JavaScript:The Definitive Guide)是一本由David Flanagan所著的JavaScript领域的经典书籍,它是学习和开发JavaScript应用不可或缺的参考书之一。该书分为两个部分,第一部分…

C语言程序在内存中是怎样布局的

理论 我们假设在32位Linux下进行编程,首先要明确,我们的虚拟地址空间有4G,4G的地址空间的寻址范围就是 0x0000_0000 ~ 0xFFFF_FFFF,在Linux下,高地址的1G内存是给操作系统使用的,也就是 0xC000_0000 ~ 0xF…

复习javascript第1章

JavaScript 是全球最流行的编程语言。 JavaScript 是属于 Web 的编程语言。 JavaScript 很容易学习。 JavaScript 能够改变 HTML 内容 getElementById() 是多个 JavaScript HTML 方法之一。 本例使用该方法来“查找” id"demo" 的 HTML 元素,并把元素…

深入浅出设计模式 - 迭代器模式

博主介绍: ✌博主从事应用安全和大数据领域,有8年研发经验,5年面试官经验,Java技术专家✌ Java知识图谱点击链接:体系化学习Java(Java面试专题) 💕💕 感兴趣的同学可以收…

ERR_SSL_VERSION_OR_CIPHER_MISMATCH

Firefox开启TLS 1.1支持 问题: 建立安全连接失败 连接到…时发生错误。对等端使用了不支持的安全协议版本。 错误代码:SSL_ERROR_UNSUPPORTED_VERSION 由于不能验证所收到的数据是否可信,无法显示您想要查看的页面。 建议向此网站的管理…

Ubuntu TensorRT安装

文章目录 1.1环境1.2下载地址1)操作步骤2)添加环境变量3)检查是否安装成功 2.1其它环境 1.1环境 1)Ubuntu20.04 2)cuda111torch1.8.0py38 1.2下载地址 https://developer.nvidia.com/nvidia-tensorrt-download 1…

【Linux】线程同步(一)

概念 线程同步是指多个线程之间协调和管理彼此的执行顺序,以避免竞态条件和不确定的结果。线程同步的目的是确保共享资源的正确访问和保护临界区的完整性。 作用 避免竞态条件:当多个线程同时访问和修改共享资源时,可能会导致竞态条件的发生…

javaee session的创建

当访问服务器时,服务器就会创建一个session TestSession.java package com.yyy.servlet;import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import java…

String、反射、枚举、lambda表达式以及泛型进阶(数据结构系列16)

目录 前言: 1. String 1.1 字符串常量池 1.1.1 创建对象的思考 1.1.2 字符串常量池(StringTable) 1.1.3 再谈String对象创建 1.1.4 intern方法 2. 反射 2.1 反射的定义 2.2 反射的用途 2.3 反射的基本信息 2.4 反射相关的类 2.4.…

Android实现发送短信功能

Android发送短信 效果图代码实现先添加权限.java由用户输入手机号 自定义短信内容跳转系统发送短信页面 自定义手机号短信内容全部代码 .xml 效果图 代码实现 先添加权限 <!-- 允许程序发送SMS短信 --><uses-permission android:name"android.permission.SEND_S…

nodejs线上环境远程调试

将nodejs部署到线上环境之后&#xff0c;这个时候想要去调试还是有点困难的&#xff0c;但是好在nodejs提供了一个可以让你进行调试的开关&#xff1a;--inspect 我们可以使用这个开关来启动一个可以调试的服务&#xff0c;使用非常简单&#xff0c;在启动服务的时候加上这个指…

高性能计算怎么入门?

如果入门没有专业方向&#xff0c;自学摸索的话&#xff0c;不容易有自己的核心竞争力。国内目前生态尚不完善&#xff0c;学习资料也比较少~如果想要系统学习的话&#xff0c;一定不要错过国内首家专业做高性能计算的系统学习课程。 ~我们是国内首家做高性能计算人才培养和推…

微型逆变器会不会迎来CC2340时代

光伏领域的朋友对微型逆变器并不陌生。而CC2340&#xff0c;对大家而言则都是陌生的主。它是何方神仙&#xff1f;和微型逆变器能有什么关系&#xff1f;你还说它可能引领微型逆变器的下一个时代&#xff1f;不急&#xff0c;我们一起来看看。 在全球为双碳愿景努力以及俄乌战…

VR虚拟展会——打造商企展厅线上展示新模式

近期的大雨磅礴&#xff0c;不知道大家都感受过吗&#xff1f;就连在武汉展开的国际连锁加盟展产业博览会也都受到了一定的影响&#xff0c;为期三天的展会&#xff0c;接连下了三天的雨&#xff0c;导致很多客户无缘展会。这就是实体展会的限制之一&#xff0c;加上实体展会的…

vscode修改markdown侧边预览pdf字体等设置

文章目录 1.按CtrlShiftP打开命令窗口2.在命令窗口出输入Markdown Preview Enhanced: Customize Css&#xff0c;打开style.less文件 1.按CtrlShiftP打开命令窗口 2.在命令窗口出输入Markdown Preview Enhanced: Customize Css&#xff0c;打开style.less文件 然后在文件内加…

【网站维护】网络杂谈(7)之web网站的维护

涉及知识点 如何进行web网站的维护&#xff0c;如何进行web网站的更新与测试&#xff0c;搭建web网站后期如何管理维护。 原创于&#xff1a;CSDN博主-《拄杖盲学轻声码》&#xff0c;更多内容可去其主页关注下哈&#xff0c;不胜感激 文章目录 涉及知识点前言1&#xff0e;网…

仿牛客社区——7.19生成长图

采用异步方式&#xff0c;通过任务方式&#xff0c;将次命令丢到消息队列中进行执行 关于wkhtmltopdf的配置&#xff08;applaction.properties&#xff09; #关于wk的配置&#xff08;生成长图 wk.image.commandD:/wkhtmltopdf/bin/wkhtmltoimage wk.image.storageD:/wkData/w…

婴儿摇篮音乐芯片 N9300-S16:为宝宝带来高品质的音乐体验

​对于父母来说&#xff0c;给婴儿提供一个安稳舒适的睡眠环境是至关重要的。宝宝的睡眠品质对于其健康和发展至关重要。在成长过程中&#xff0c;音乐对婴儿的情绪、认知和智力发展都有积极的影响。因此&#xff0c;厂家在婴儿摇篮中选择一款合适的婴儿摇篮音乐芯片尤为重要。…

共见·价值成就|亚马逊云科技中国峰会宣布三大举措全面升级

2023年6月27日&#xff0c;亚马逊云科技举办一年一度的中国合作伙伴峰会。本届峰会以“共见价值成就”为主题&#xff0c;面向合作伙伴发布智荟出海计划、可持续发展伙伴计划、合作伙伴解决方案工厂以及获客激励计划等多项计划&#xff0c;以进一步强化合作伙伴“33战略”&…