论文笔记之Efficient Estimation of Word Representations in Vector Space

这篇文章可以作为入门Word2vec的一篇论文,文章发表于2013年,其提供了NLP发展至今过程中比较著名的词向量模型之一,即skip-gram和CBOW模型。Word2Vec既可以实现相邻word具有相近的向量表示,又拥有丰富的语义信息。

参考:
B站视频
论文
Word2vec 中的数学原理详解
Word2Vec-知其然知其所以然

1 Previous Model Architectures

语言模型的训练过程是一种无监督的的监督学习,意味着它不需要你去给样本做标签(无监督),标签是可以直接从语料中进行使用的,故他又属于是一种监督学习。

1.1 Feedforward Neural Net Language Model(NNLM)

模型出处:论文A neural probabilistic language model
在这里插入图片描述
或者论文原图:
在这里插入图片描述

从图中我们需要得知以下信息:

  1. 输入是编号index是因为,语言模型中,有2个必要的过程是word2indexindex2word,分别表示将词转换为数字编号index便于进行计算以及将输出的编号转换成对应的词word。
  2. NNLM的训练也是不需要标签的。具体的训练过程一般如下:对于某个概率模型 P ( w i ∣ w t − 1 , w t − 1 , ⋯ w t − n ) P(w_i|w_{t-1}, w_{t-1} ,\cdots w_{t-n}) P(wiwt1,wt1,wtn),我们将词 w t − 1 , w t − 2 , ⋯   , w t − n w_{t-1},w_{t-2},\cdots, w_{t-n} wt1,wt2,,wtn对应的index输入的这个网络中,然后经过一些非线性层的计算,最后通过softmax层给出语料中各个词的概率(假设语料库中的规模为V,则输出层大小即为V),我们选取第 i i i个,即最大概率的词 w i w_i wi为我们预测的词。模型的更新则取决于softmax的结果进行梯度上升即可。
  3. 监督过程是如何在没有标注的情况下进行呢?比如你在某个网站上下载下来的语料:春天的原野你一个人正走着,对面走过来一只可爱的小熊,浑身的毛活像天鹅绒,眼睛圆鼓鼓的。他这么对你说到道:“你好,小姐,和我一起打滚玩好么?”接着,你就和小熊抱在一起,顺着长满三叶草的山坡咕噜咕噜滚下去,整整玩了一天。那么你在训练的时候,比如第一句,春天的原野作为输入,作为标签,其余的均如此操作。
  4. 输入层是将词映射成向量,相当于一个 1 × V 1\times V 1×V的one-hot向量乘以一个 V × D V\times D V×D的矩阵得到一个 1 × D 1\times D 1×D的向量:在这里插入图片描述需要注意的是,在NNLM中输入的几个词是“concat”合并在一起的。
  5. 隐藏层是一个以 t a n h tanh tanh为激活函数的全连接层。
  6. 输出层是一个全连接层+softmax层。
  7. 语言模型困惑度和Loss有以下关系: P P ( s ) = e L PP(s)=e^L PP(s)=eL,具体推导如下:在这里插入图片描述

1.2 Recurrent Neural Net Language Model(RNNLM)

循环神经网络模型下的语言模型和NNLM差不多,也是分为输入层、隐藏层和输出层(接softmax)。
在这里插入图片描述
Note:

  1. RNNLM不需要马尔科夫假设,他直接就是利用过去的信息。

2 New Log-linear Models

定义:将语言模型的建立看成是一个多分类问题,相当于线性分类器加上softmax层:
Y = s o f t m a x ( w ⋅ x + b ) Y= softmax(w\cdot x + b) Y=softmax(wx+b)
语言模型的思想:句子中下一个词的出现和前面的词室友关系的,所以可以使用前面的词预测下一个词
Word2vec的思想:句子中相近的词之间是有联系的。本文提出了2种模型:skip-gram、cbow模型。其中,skip-gram模型使用中心词预测周围词;cbow使用周围词预测中心词

2.1 Continuous Bag-of-Words Model

在这里插入图片描述
连续词袋模型(CBOW)使用周围词来预测中心词,因此不同于Skip-gram模型需要2N个样本来训练,CBOW只要1个样本训练。之所以叫词袋模型,是因为输入部分的2N个周围词通过求和或者平均来得到中心词向量矩阵,故输入的词的顺序是无所谓的,故就像把这几个词放到袋子里一样,然后随便拿,随便顺序丢入网络训练。
具体分析如下:
在这里插入图片描述

  1. 上下文窗口内的几个词通过word2index转为语料库中的index,然后转为one-hot格式的向量,然后和 V × D V\times D V×D大小的周围词向量矩阵 W W W相结合,挑选得到2N(N为窗口大小)个大小为 1 × D 1\times D 1×D的周围词向量。接着将他们进行求和或者求平均。之后和大小为 D × V D\times V D×V中心词向量矩阵代表的全连接层 W ∗ W^* W相结合,输入到softmax层中,输出一个 1 × V 1\times V 1×V的概率矩阵。可以看出全程除了输出层以外都是线性运算,即Log-linear Models。
  2. 我们挑选出属于中心词 W i W_i Wi的概率值做反向传播来训练2个词向量矩阵 W , W ∗ W,W^* W,W, W , W ∗ W,W^* W,W就是我们要的词向量。其实最终需要的是 W W W或者 W + W ∗ 2 \frac{W+W^*}{2} 2W+W
  3. e 1 , e 2 , e 3 , e 4 e_1,e_2,e_3,e_4 e1,e2,e3,e4为上下文词,窗口为2, v c , v j v_c,v_j vc,vj为中心词向量。则 u 0 = s u m ( e 1 , e 2 , e 3 , e 4 ) u_0=sum(e_1,e_2,e_3,e_4) u0=sum(e1,e2,e3,e4)表示窗口内上下文词向量之和; p ( c ∣ o ) = e x p ( u 0 T v c ) ∑ j = 1 V e x p ( u 0 T v j ) p(c|o)=\frac{exp(u_0^Tv_c)}{\sum^V_{j=1}exp(u_0^Tv_j)} p(co)=j=1Vexp(u0Tvj)exp(u0Tvc)表示上下文词作为条件下,中心词的概率,这也是我们要反向传播的目标。

2.2 Continuous Skip-gram Model

在这里插入图片描述
Skip-gram模型使用中心词预测周围词。如上图所示,定义窗口大小为2,即用中心词“下午”预测前后各2个词出现的概率。
不管什么语言模型,概率问题都可以看成是分类问题,比如上图中,就可以把 w i − 1 w_{i-1} wi1看成是标签,而 w i w_i wi看成是输入。
具体分析如下:
在这里插入图片描述

  1. Skip-gram模型使用中心词 w i w_i wi预测周围词 w i − 1 w_{i-1} wi1,对于窗口为N的Skip-gram,周围词就有2N个。
  2. 如上图所示,每个中心词先转为语料库中的索引index,然后转为one-hot向量,接下来通过和 V × D V\times D V×D大小的全连接层结合输出 w i w_i wi的词向量。接着继续和周围词向量的全连接层结合并通过softmax层输出大小为 1 × V 1\times V 1×V的一堆概率值,我们挑选出属于周围词 W i − 1 W_{i-1} Wi1的概率值做反向传播来训练2个词向量矩阵 W , W ∗ W,W^* W,W
  3. 输出层的表达式: p ( w i − 1 ∣ w i ) = e x p ( u w i − 1 T v w i ) ∑ w = 1 V e x p ( u w T v w i ) . p(w_{i-1}|w_i)=\frac{exp(u_{w_{i-1}}^Tv_{w_i})}{\sum^V_{w=1}exp(u^T_wv_{w_i})}. p(wi1wi)=w=1Vexp(uwTvwi)exp(uwi1Tvwi).其中, u u u为上下文词向量, v v v为中心词向量。需要注意的是,分子中 u w i − 1 u_{w_i-1} uwi1是窗口内上下文词向量。
  4. 最后训练完的中心词向量矩阵可以取 W W W或者 W + W ∗ 2 . \frac{W+W^*}{2}. 2W+W.
  5. 上图只有了一个周围词向量,那么对于一整个句子而言(假设长度为T),目标函数为: J ( θ ) = 1 T ∑ t = 1 T ∑ − m ≤ j ≤ m , j ≠ 0 l o g p ( w t + j ∣ w t ) . J(\theta)= \frac{1}{T}\sum^T_{t=1}\sum_{-m \leq j\leq m,j\ne 0}log p(w_{t+j}|w_t). J(θ)=T1t=1Tmjm,j=0logp(wt+jwt).
  • 7
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在全轮驱动(AWD)车辆中进行车速估计是一项重要的任务。估计车速可以帮助驾驶员更好地了解车辆的动态状况,确保驾驶的安全性。 首先,车辆的车速可以通过使用车辆自带的速度传感器来估计。这些传感器可以测量车轮旋转的速度,然后通过车辆的车轮直径等参数进行计算,从而得出车速的估计值。 其次,车速的估计还可以通过使用车辆上安装的惯性测量单元(IMU)进行。IMU可以测量车辆的加速度和旋转速度,通过对这些数据进行积分和滤波处理,可以得到车辆的位移和旋转角度。然后,通过这些数据计算出车辆的车速。 另外,车辆上的其他传感器也可以辅助车速的估计。例如,使用GPS可以测量车辆在地球表面上的位置变化,可以通过这些位置数据的变化来计算车速。另外,使用雷达或相机等传感器可以监测周围环境中的物体移动情况,通过分析这些移动的物体的速度和方向,可以得到车辆的车速估计值。 总之,在AWD车辆中进行车速估计是一项复杂的任务,需要结合多种传感器和数据进行计算和分析。准确的车速估计对于驾驶员的安全和行车控制至关重要。 ### 回答2: 在AWD车辆中估计车速可以通过多种方式来完成。其中一种方法是使用车辆的制动系统来估计车速。制动系统通过监测车辆的轮胎旋转速度来估计车速。当车辆行驶时,每个轮胎的旋转速度会根据车辆的速度而有所变化。通过比较不同轮胎的旋转速度,可以获得一个接近实际车速的估计。 另一种常见的方法是使用车辆的动力系统来估计车速。AWD车辆通常配备有多个驱动轴,每个驱动轴都有一个独立的动力输出装置。通过监测不同驱动轴的动力输出和转速,可以计算出车辆的速度。 除了以上两种方法外,还可以使用车辆的惯性传感器来估计车速。惯性传感器可以检测车辆加速度的变化,并根据这些变化来估计车速。这种方法相对于其他方法更加灵活,可以适用于各种道路和驾驶条件。 需要注意的是,这些方法都是基于估计和计算而来的,可能存在一定的误差。车辆的负载、行驶条件、轮胎磨损等因素都会对估计结果产生影响。因此,在估计车速时需要考虑这些因素,并进行适当的校正和调整,以提高估计精度。 ### 回答3: 在全轮驱动车辆中,估计车辆速度的主要方法有多种。其中一种常用的方法是使用车辆的转速和轮胎直径来进行估算。当车辆在行驶过程中,发动机的转速会通过传动装置传递给车轮,从而推动车辆前进。因此,通过测量发动机转速可以推断车辆的速度。同时,了解车辆所使用的轮胎直径也能提供一定的参考,因为车轮每转一圈所走过的距离与其直径有关。 另外一种估算车辆速度的方法是使用车辆的里程表和所用时间。里程表记录了车辆行驶的总距离,而所用时间可以通过计时器或车载导航系统等设备来获得。通过计算车辆在一段时间内行驶的距离,再与所用的时间进行比较,就可以估算出车辆的速度。 除了以上两种方法,现代车辆中也经常使用车载传感器来测量车辆的速度。这些传感器可以测量车轮的转速,然后通过电子控制单元(ECU)计算出车辆的速度。这种方法通常比较精确,可以准确地估算车辆的实际速度。 综上所述,在全轮驱动车辆中,估算车辆速度可以使用车辆转速和轮胎直径的关系、里程表和时间的关系以及车载传感器等方法。这些方法各有其优势和适用场景,在实际应用中可以根据需要选择合适的方法进行估算。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值