深度学习笔记之Transformer(六)Position Embedding铺垫:Skipgram与CBOW模型

news2024/9/26 5:20:21

深度学习笔记之Transformer——PositionEmbedding铺垫:Skipgram与CBOW模型

引言

上一节介绍了 Word2vec \text{Word2vec} Word2vec模型架构与对应策略。本节将继续介绍 Skipgram \text{Skipgram} Skipgram CBOW \text{CBOW} CBOW模型架构。

回顾: Word2vec \text{Word2vec} Word2vec模型

关于 Word2vec \text{Word2vec} Word2vec模型,它的任务目标是基于语料库 ( Corpus ) (\text{Corpus}) (Corpus),对该语料库对应词汇表 ( Vocabulary ) (\text{Vocabulary}) (Vocabulary)中的每一个词表示成一个分布式向量 ( Distributed Vector ) (\text{Distributed Vector}) (Distributed Vector)

而这个分布式向量需要满足:

  • 作为特征表示的向量维数有限;
  • 如果词与词之间存在相似性关系,我们希望对应的特征向量能够表达出来。

而我们已知的训练信息仅包含语料库,可以将语料库中的文本(句子)整合在一起,视作由若干个词语组成的超长序列 D \mathcal D D
其中 w t ( t = 1 , 2 , ⋯   , T ) w_t(t=1,2,\cdots,\mathcal T) wt(t=1,2,,T)表示一个随机变量,它可能是词汇表中的任意一个词,只不过存在各词均存在相应的概率而已。
D = { w 1 , w 2 , ⋯   , w T } \mathcal D = \{w_1,w_2,\cdots,w_{\mathcal T}\} D={w1,w2,,wT}

而优化分布式向量的策略可以使用极大似然估计进行描述:

  • 关于语料库 D \mathcal D D内各随机变量的联合概率分布可表示为如下形式:
    P ( w 1 : T ) = P ( w 1 , w 2 , ⋯   , w T ) = P ( w t ) ⋅ P ( w 1 : t − 1 , w t + 1 : T ∣ w t ) \begin{aligned} \mathcal P(w_{1:\mathcal T}) & = \mathcal P(w_1,w_2,\cdots,w_{\mathcal T}) \\ & = \mathcal P(w_t) \cdot \mathcal P(w_{1:t - 1},w_{t+1:\mathcal T} \mid w_t) \end{aligned} P(w1:T)=P(w1,w2,,wT)=P(wt)P(w1:t1,wt+1:Twt)
    其中 w t w_t wt表示位于语料库内的第 t ( t ∈ { 1 , 2 , ⋯   , T } ) t(t \in \{1,2,\cdots,\mathcal T\}) t(t{1,2,,T})个位置的词;而 w 1 : t − 1 , w t + 1 : T w_{1:t - 1},w_{t+1:\mathcal T} w1:t1,wt+1:T则表示词 w t w_t wt在该语料库中的上下文 ( Context ) (\text{Context}) (Context)信息。 P ( w 1 : t − 1 , w t + 1 : T ∣ w t ) \mathcal P(w_{1:t - 1},w_{t+1:\mathcal T} \mid w_t) P(w1:t1,wt+1:Twt)则表示词 w t w_t wt对应的似然结果
  • 其中 P ( w t ) \mathcal P(w_t) P(wt)表示 D \mathcal D D w t w_t wt这个位置关于词汇表 V \mathcal V V中所有词的概率分布,在上下文未知的条件下,其相当于在均匀分布中进行采样。各分量对应的概率结果均为 1 ∣ V ∣ \begin{aligned}\frac{1}{|\mathcal V|}\end{aligned} V1
    这里的 ∣ V ∣ |\mathcal V| V则表示词汇表 V \mathcal V V中词的数量。
    基于 P ( w t ) \mathcal P(w_t) P(wt)这个定值,并不是我们关系的对象。我们更关心随机变量 w t w_t wt上下文的似然结果 P ( w 1 : t − 1 , w t + 1 : T ∣ w t ) P(w_{1:t - 1},w_{t+1:\mathcal T} \mid w_t) P(w1:t1,wt+1:Twt)。对应地,其他随机变量的似然结果也可表示成该形式:
    P ( w 1 : t − 1 , w t + 1 : T ∣ w t ) t = 1 , 2 , ⋯   , T \mathcal P(w_{1:t - 1},w_{t+1:\mathcal T} \mid w_t) \quad t=1,2,\cdots,\mathcal T P(w1:t1,wt+1:Twt)t=1,2,,T
    其中每一项的后验部分均包含 T − 1 \mathcal T - 1 T1个项。并且各项之间可能存在关联关系。因而我们想将 P ( w 1 : t − 1 , w t + 1 : T ∣ w t ) \mathcal P(w_{1:t - 1},w_{t+1:\mathcal T} \mid w_t) P(w1:t1,wt+1:Twt)完整地表达出来几乎是不现实的(计算量相关性的表达方面都有阻碍)。因而需要构造一系列的假设简化对似然的计算
    • 假设 1 1 1 w t w_t wt仅能影响 w t w_t wt为中心,前后长度为 C \mathcal C C范围内的随机变量(上下文)。基于该假设,似然 P ( w 1 : t − 1 , w t + 1 : T ∣ w t ) \mathcal P(w_{1:t - 1},w_{t+1:\mathcal T} \mid w_t) P(w1:t1,wt+1:Twt)可简化成如下形式:
      对应的窗口大小为 2 C 2\mathcal C 2C
      P ( w 1 : t − 1 , w t + 1 : T ∣ w t ) = (1) P ( w t − C  :  t − 1 , w t + 1  :  t + C ∣ w t ) \mathcal P(w_{1:t - 1},w_{t+1:\mathcal T} \mid w_t) \overset{\text{(1)}}{=} \mathcal P(w_{t - \mathcal C \text{ : } t-1},w_{t+1 \text{ : } t+ \mathcal C} \mid w_t) P(w1:t1,wt+1:Twt)=(1)P(wtC : t1,wt+1 : t+Cwt)
    • 假设 2 2 2:在给定 w t w_t wt的条件下,各似然结果之间相互独立。从而对应的完整似然函数可表示为:
      引入 log ⁡ \log log函数,并引入均值操作。这样做的目的是希望窗口内的上下文信息尽量共同影响似然函数的变化,而不是集中在有限的几个随机变量。
      ∏ t = 1 T P ( w t − C  :  t − 1 , w t + 1  :  t + C ∣ w t ) ⇒ 1 T ∑ t = 1 T log ⁡ P ( w t − C  :  t − 1 , w t + 1  :  t + C ∣ w t ) \prod_{t=1}^{\mathcal T} \mathcal P(w_{t - \mathcal C \text{ : } t-1},w_{t+1 \text{ : } t+ \mathcal C} \mid w_t) \Rightarrow \frac{1}{\mathcal T} \sum_{t=1}^{\mathcal T} \log \mathcal P(w_{t - \mathcal C \text{ : } t-1},w_{t+1 \text{ : } t+ \mathcal C} \mid w_t) t=1TP(wtC : t1,wt+1 : t+Cwt)T1t=1TlogP(wtC : t1,wt+1 : t+Cwt)
    • 假设 3 3 3在给定 w t w_t wt的条件下 w t − C , ⋯   , w t − 1 , w t + 1 , w t + C w_{t-\mathcal C},\cdots,w_{t-1},w_{t+1},w_{t+\mathcal C} wtC,,wt1,wt+1,wt+C之间独立同分布。即: w t − C ∣ w t , ⋯   , w t − 1 ∣ w t , w t + 1 ∣ w t , ⋯   , w t + C ∣ w t w_{t-\mathcal C} \mid w_t,\cdots,w_{t-1} \mid w_t,w_{t+1} \mid w_t,\cdots,w_{t+\mathcal C} \mid w_t wtCwt,,wt1wt,wt+1wt,,wt+Cwt独立同分布。因而上式可以继续简化成如下形式:
      由于假设 3 3 3,使得随机变量之间失去了‘序列信息’。因而 Word2vec \text{Word2vec} Word2vec系列模型并没有考虑序列信息,因为该模型的核心任务是生成“存在相似性关系”的分布式向量。
      1 T ∑ t = 1 T ∑ i = − C ( ≠ 0 ) C log ⁡ P ( w t + i ∣ w t ) \frac{1}{\mathcal T} \sum_{t=1}^{\mathcal T} \sum_{i=-\mathcal C(\neq 0)}^{\mathcal C} \log \mathcal P(w_{t+i} \mid w_t) T1t=1Ti=C(=0)ClogP(wt+iwt)

最终,基于极大似然估计的优化函数 J ( θ ) \mathcal J(\theta) J(θ)表示为如下形式:
{ θ ^ = arg ⁡ min ⁡ θ J ( θ ) J ( θ ) = − 1 T ∑ t = 1 T ∑ i = − C ( ≠ 0 ) C log ⁡ P ( w t + i ∣ w t ) \begin{cases} \hat {\theta} = \mathop{\arg\min}\limits_{\theta} \mathcal J(\theta) \\ \mathcal J(\theta) = \begin{aligned} -\frac{1}{\mathcal T} \sum_{t=1}^{\mathcal T} \sum_{i=-\mathcal C(\neq 0)}^{\mathcal C} \log \mathcal P(w_{t+i} \mid w_t) \end{aligned} \end{cases} θ^=θargminJ(θ)J(θ)=T1t=1Ti=C(=0)ClogP(wt+iwt)
Word2vec \text{Word2vec} Word2vec模型的任务就是用来计算 P ( w t + 1 ∣ w t ) \mathcal P(w_{t+1} \mid w_t) P(wt+1wt)。它的神经网络架构表示如下:
Wordvec神经网络架构
其中隐藏层神经元中的 ∑ \sum 表示该神经元仅执行线性运算。也就是说,除了输出层的 Softmax \text{Softmax} Softmax函数,整个网络中不存在其他关于激活函数的非线性映射。原因在于:模型输入层、输出层的神经元数量均为 ∣ V ∣ |\mathcal V| V,这意味着隐藏层神经元数量也不会过小,因为数量过小会丢失更多信息。从而导致如果是非线性操作,后续的计算代价可能是无法估量的。

补充:关于 Word2vec \text{Word2vec} Word2vec的一些说明

上述模型的输出结果 w o w_o wo是一个大小为 ∣ V ∣ |\mathcal V| V随机变量
w o ∈ R ∣ V ∣ × 1 w_o \in \mathbb R^{|\mathcal V| \times 1} woRV×1
它描述的是 P ( w t + i ∣ w t ) ( i ∈ { − C , C } ) \mathcal P(w_{t+i} \mid w_t)(i \in \{-\mathcal C,\mathcal C\}) P(wt+iwt)(i{C,C})。物理意义是:给定语料库 D \mathcal D D内的某个中心词,其上下文词的后验概率结果。但根据假设 ( 1 ) (1) (1),某中心词内包含 2 C 2\mathcal C 2C个上下文结果,并且这些上下文结果独立同分布。因而我们的神经网络应扩展为如下形式:
对窗口内所有上下文的预测
这个计算图它示如何描述上面三个假设的:

  • 假设 1 1 1:基于某一个中心词 w i = ω t w_i = \omega_t wi=ωt作为输入,我们能够得到 2 C 2\mathcal C 2C输出层结果,并且每个结果均是大小为 ∣ V ∣ |\mathcal V| V概率分布
  • 假设 2 2 2:输入层 w i w_i wi无论输入哪一个元素 ω 1 , ω 2 , ⋯   , ω T \omega_1,\omega_2,\cdots,\omega_{\mathcal T} ω1,ω2,,ωT,均共用同一个计算图。这样能够保证各 ω t ( t = 1 , 2 , ⋯   , T ) \omega_t(t=1,2,\cdots,\mathcal T) ωt(t=1,2,,T)输出结果不仅相互独立,并且还同分布
    相互独立体现在:输入层的不同输入,对应的输出仅和该输入相关;同分布体现在:它们共用同一个计算图,共用相同的权重信息 W , U \mathcal W,\mathcal U W,U
  • 假设 3 3 3:在输入层 w i = ω t w_i = \omega_t wi=ωt作为输入的条件下,其上下文各随机变量的输出分布共用同一权重信息 U \mathcal U U

而最终想要得到分布式向量到底是谁呢 ? ? ?自然是基于权重 W \mathcal W W作用下的隐藏层特征。而这个特征是否能够迁移到其他的语料库 ? ? ?只要语料库使用相同语言(共用同一套语法),这个特征自然能够迁移到其他语料库中。

为什么会有这种效果 ? ? ?这就要回到策略构建的过程中为什么要使用极大似然估计。回顾完整的似然函数,我们要让它最大
max ⁡ { 1 T ∑ t = 1 T ∑ i = − C ( ≠ 0 ) C log ⁡ P ( w t + i ∣ w t ) } \max \left\{\frac{1}{\mathcal T} \sum_{t=1}^{\mathcal T} \sum_{i=-\mathcal C(\neq 0)}^{\mathcal C} \log \mathcal P(w_{t+i} \mid w_t)\right\} max T1t=1Ti=C(=0)ClogP(wt+iwt)
由于 1 T \begin{aligned}\frac{1}{\mathcal T}\end{aligned} T1的作用,意味着每一个 P ( w t + i ∣ w t ) ( t ∈ { 1 , 2 , ⋯   , T } ; i ∈ { − C , ⋯   , C } ) \mathcal P(w_{t+i} \mid w_t)(t \in\{1,2,\cdots,\mathcal T\};i \in \{-\mathcal C,\cdots,\mathcal C\}) P(wt+iwt)(t{1,2,,T};i{C,,C})都要尽可能地达到最大。这会导致:中心词 w t w_t wt与其对应的上下文结果 w t − C , ⋯   , w t − 1 , w t + 1 , ⋯   , w t + C w_{t-\mathcal C},\cdots,w_{t-1},w_{t+1},\cdots,w_{t+\mathcal C} wtC,,wt1,wt+1,,wt+C绑定在一起

  • 存在一组上下文 w t − C , ⋯   , w t − 1 , w t + 1 , ⋯   , w t + C w_{t-\mathcal C},\cdots,w_{t-1},w_{t+1},\cdots,w_{t+\mathcal C} wtC,,wt1,wt+1,,wt+C使下面式子达到最大;:
    P ( w t − C , ⋯   , w t − 1 , w t + 1 , ⋯   , w t + C ∣ w t ) = ∏ i = − C ( ≠ 0 ) C P ( w t + i ∣ w t ) \mathcal P(w_{t-\mathcal C},\cdots,w_{t-1},w_{t+1},\cdots,w_{t+\mathcal C} \mid w_t) = \prod_{i=-\mathcal C(\neq 0)}^{\mathcal C} \mathcal P(w_{t+i} \mid w_t) P(wtC,,wt1,wt+1,,wt+Cwt)=i=C(=0)CP(wt+iwt)

  • 相反,如果换了一组上下文 w k − C , ⋯   , w k − 1 , w k + 1 , ⋯   , w k + C ( k ≠ t ) w_{k-\mathcal C},\cdots,w_{k-1},w_{k+1},\cdots,w_{k+\mathcal C}(k \neq t) wkC,,wk1,wk+1,,wk+C(k=t)(这明显是另一个词 w k w_k wk的上下文),它同样会得到一个结果
    P ( w k − C , ⋯   , w k − 1 , w k + 1 , ⋯   , w k + C ∣ w t ) \mathcal P(w_{k-\mathcal C},\cdots,w_{k-1},w_{k+1},\cdots,w_{k+\mathcal C} \mid w_t) P(wkC,,wk1,wk+1,,wk+Cwt)
    但这个结果会差于 P ( w t − C , ⋯   , w t − 1 , w t + 1 , ⋯   , w t + C ∣ w t ) \mathcal P(w_{t-\mathcal C},\cdots,w_{t-1},w_{t+1},\cdots,w_{t+\mathcal C} \mid w_t) P(wtC,,wt1,wt+1,,wt+Cwt)

基于上述逻辑,会有:如果两个词之间存在相似的情况,那么这两个词对应的上下文分布也应该是相似。而这个相似的上下文结构反而成为了隐变量(隐藏层的输出)的一种判别依据。实际上,它并没有直接去描述相似性,而是从中心词与对应上下文的对应关系来学习隐变量,从而间接说明这个隐变量信息能够描述相似性。

实际上这个模型结构就是 Skip gram \text{Skip gram} Skip gram模型结构。而 CBOW \text{CBOW} CBOW模型与 Skip gram \text{Skip gram} Skip gram模型思想正好相反——上下文信息作为输入,共用同一个 W \mathcal W W,最终输出的是中心词的分布
它的假设 3 3 3 Skip gram \text{Skip gram} Skip gram相反,但同样也是基于条件的独立同分布。

相关参考:
词向量(Word Vector)【白板推导系列】

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

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

相关文章

【动态规划算法】第九题:64. 最小路径和

💖作者:小树苗渴望变成参天大树🎈 🎉作者宣言:认真写好每一篇博客💤 🎊作者gitee:gitee✨ 💞作者专栏:C语言,数据结构初阶,Linux,C 动态规划算法🎄 如 果 你…

Todo-List案例版本一

初级使用e.target.value 记得安装npm i nanoid与UUID类似 快捷键ctrlH替换内容 src/components/MyHeader.vue <template><div class"todo-header"><input type"text" placeholder"请输入你的任务名称&#xff0c;按回车键确认&quo…

express框架中使用ejs

1.设置模块引擎为ejs app.set("view engine","ejs") 2. 设置模版文件存放位置 说明&#xff1a;模版文件&#xff1a;具有模版语法内容的文件。 app.set(vies,path.resolve(__dirname,"./views")) 3.render渲染 app.get(/home,(req,res)>{/…

MySQL第三天(简单单表查询)

前言 今天的三个题目是针对于单表查询和多表查询的课后作业&#xff0c;针对于初学者还是很合适的听有用处的&#xff0c;我会把我的答题过程一步一步写出来&#xff0c;有需要的小伙伴可以参考哦… 第一题、单表信息查询 题目代码如下&#xff1a; 作业&#xff1a;1.创建表…

【计算机组成原理总结】

第一章计算机系统概述 第二章数据的表示与运算 第三章存储系统 第四章 指令系统 第五章 中央处理器 第六章 总线 第七章 输入输出设备

Mac如何在终端使用diskutil命令装载和卸载推出外接硬盘

最近用 macOS 装载外接硬盘的时候&#xff0c;使用mount死活装不上&#xff0c;很多文章也没详细的讲各种情况&#xff0c;所以就写一篇博客来记录一下。 如何装载和卸载硬盘&#xff08;或者说分区&#xff09; mount和umount是在 macOS 上是不能用的&#xff0c;如果使用会…

Clickhouse入门(一)

第一章 Clickhouse简介 ClickHouse (C编写)是俄罗斯的Yandex(相当于百度)于2016年开源的列式存储数据库&#xff08;DBMS&#xff09;&#xff0c;使用C语言编写&#xff0c;主要用于在线分析处理查询&#xff08;OLAP&#xff09;&#xff0c;能够使用SQL查询实时生成分析数据…

电脑各配置跟不上,造成频繁花屏。

本人用的是i3 7350K&#xff0c;然而散热器是二十多块的杂牌&#xff0c;CPU温度经常不稳定&#xff0c;可以在监控软件看到比较详细的情况&#xff0c;然后我的显卡是gtx1080&#xff0c;内存加到双条24G。 最近一直花屏&#xff0c;我甚至怀疑是不是显卡坏了&#xff0c;然后…

特征选择算法 | Matlab 基于最大互信息系数特征选择算法(MIC)的回归数据特征选择

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 特征选择算法 | Matlab 基于最大互信息系数特征选择算法(MIC)的回归数据特征选择 部分源码 %--------------------

css 字体间距 设置

一、css word-spacing属性设置字间距&#xff08;单词的间距&#xff09; word-spacing 属性增加或减少单词间的空白&#xff08;即字间隔&#xff09;&#xff1b;在这个属性中&#xff0c;“字” 定义为由空白符包围的一个字符串。也就是说该属性是以空格为基准进行调节间距…

【一】PCIe基础知识

一、PCIe概述 1、PCIe速度 PCI采用总线共享式通讯方式&#xff1b;PCIe采用点到点(Endpoint to Endpoint)通讯方式&#xff0c;互为接收端和发送端&#xff0c;全双工&#xff0c;基于数据包传输&#xff1b;两个PCIe设备之间的连接称作一条链路(link)&#xff0c; 一条链路可…

Nginx报跨域问题怎么解决

这就是报错信息&#xff0c;可以看出这里是一个请求发送了两次&#xff0c;这是什么原因呢&#xff1f; 这种请求是因为它是applocayion/json格式的请求&#xff0c;在请求一个资源的时候&#xff0c;先会发送一个预检请求&#xff0c;然后才会发送真正的请求&#xff0c;那为…

桥接模式:如何实现支持不同类型和渠道的消息推送系统?

上一节课我们学习了第一种结构型模式&#xff1a;代理模式。它在不改变原始类&#xff08;或者叫被代理类&#xff09;代码的情况下&#xff0c;通过引入代理类来给原始类附加功能。代理模式在平时的开发经常被用到&#xff0c;常用在业务系统中开发一些非功能性需求&#xff0…

Web前端 Day 2

元素显示模式 块元素 独占一行 宽、高、内外边距可以设置 eg. div 行内元素 一行可以存在多个 eg. span 行内块元素 一行可以存在多个 宽、高、内外边距可以设置 是否独占一行 表格标签 <table> <caption></caption> 表格标题&#xff08;概括&#…

手把手的教你安装PyCharm --Pycharm安装详细教程(一)(非常详细,非常实用)

简介 Jetbrains家族和Pycharm版本划分&#xff1a; pycharm是Jetbrains家族中的一个明星产品&#xff0c;Jetbrains开发了许多好用的编辑器&#xff0c;包括Java编辑器&#xff08;IntelliJ IDEA&#xff09;、JavaScript编辑器&#xff08;WebStorm&#xff09;、PHP编辑器&…

面向对象编程主线一

面向对象编程 一、Java面向对象学习的三条主线 Java类及类的成员&#xff1a;属性、方法、构造器&#xff1b;代码块、内部类面向对象的三大特征&#xff1a;封装性、继承性、多态性、&#xff08;抽象性&#xff09;其他关键字&#xff1a;this、super、static、final、abst…

分治法求最近点对问题

目录 蛮力法 分治法 探究分治规模小于一定程度时采用暴力解法 蛮力法 算法思想 蛮力法&#xff0c;顾名思义&#xff0c;即穷举所有点与点之间的距离&#xff0c;两层循环暴力找出最近点对。算法执行可视化如图1所示&#xff0c;word文档GIF静态显示&#xff0c;附件已含动…

BTY Carnival - Task2 | Get the OG Role Win USDT

欢迎来到比特元社区&#xff01; 比特元是一条兼具平行链与零知识证明技术的EVM兼容区块链。BitYuan的生态系统dns.bityuan.com即将开放公测。用户完成任务即获得白名单资格&#xff0c;可进入到DC群的DNS白名单频道 &#xff0c;我们将定期开展抽BTY等活动&#xff0c;并且将…

2022年第十三届JAVA B组国赛

文章目录 A.重合次数&#xff08;模拟&#xff09;B.数数&#xff08;数学&#xff09; A.重合次数&#xff08;模拟&#xff09; Answer:494 这个题目比较坑人&#xff0c; public class Main {static BufferedReader br new BufferedReader(new InputStreamReader(System.…

多元回归预测 | Matlab阿基米德算法(AOA)优化极限梯度提升树XGBoost回归预测,AOA-XGBoost回归预测模型,多变输入模型

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 阿基米德算法(AOA)优化极限梯度提升树XGBoost回归预测,AOA-XGBoost回归预测模型,多变输入模型,多变量输入模型,多变量输入模型,matlab代码回归预测,多变量输入模型,多变量输入模型 评价指标包括:MAE、RMSE和R2…