NLP深度学习 —— CS224学习笔记2

四、基于迭代的方法

相对于对数十亿的句子进行计算并储存其全局信息,我们尝试构建模型每次学习一个迭代来编码语境中词的概率。

我们对已知和未知的参数设置概率模型,每次训练一个样本,学习基于输入的未知参数的一部分信息,以及模型期望的输出。

每次运行模型,我们评估误差,遵循更新规则,并对引起误差的模型参数进行惩罚。这个理念早在1986年就已存在,即误差的反向传播方法。

1、语言模型(unigram, bigram等)

首先我们建立一个模型为一系列语言符号分配概率,例如

一个好的语言模型会给这个句子高的概率,因为它是一个语法和语义上都正确的句子。我们把给定n个词正确的概率记为

我们使用一元语言模型,假设词的出现完全独立将词概率分解成

但我们知道这有些不合理,因为下一个词与此前词的顺序具有相关性,因此我们使序列的概率依赖于该词和下一个词的联合概率,我们将之称为bigram模型,表示成

同样这样的假设有些简单,但是我们会发现它已经相当有效。

现在我们了解了将一个语言符号序列赋上概率,现在我们来看一些学习这些概率的模型。

2、连续词袋模型(CBOW)

使用周围的语境词来预测中间词的模型称为连续词袋模型。

首先将句子表示成one-hot词向量,并作为已知参数。输入的向量X(c),输出y(c)。

建立两个矩阵V和U

对于每一个词wi,我们要学习两个向量,输入词向量vi和输出词向量ui

具体来说:

1)对于规模为m的输入语境构建one hot词向量

2)得到语境的嵌入词向量

3)平均这些向量得到

4)生成得分向量

5)将得分转化成概率

6)追求生成概率与真实概率y相等

下一步我们怎样学习V和U矩阵?

我们需要建立一个目标函数,我们使用交叉熵来衡量习得概率和真实概率之间的差距。

在离散状态使用交叉熵的直觉可以从损失函数的构建中获得


这里y是一个one-hot向量,因此损失函数可以简化为

我们优化目标就是最小化

使用梯度下降来更新有关的词向量uc和vj




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值