Language Model

Language Model

Language model估计不同语言的概率:符号、标记、 标记序列

具体来说,我们希望根据我们的语言模型,"更有可能"出现在语言中的句子具有更大的概率。

可以根据链式法则进行计算句子的概率

P ( y 1 , y 2 , … , y n ) = P ( y 1 ) ⋅ P ( y 2 ∣ y 1 ) ⋅ P ( y 3 ∣ y 1 , y 2 ) ⋅ ⋅ P ( y n ∣ y 1 , … , y n − 1 ) P(y_1,y_2,…,y_n)=P(y_1)⋅P(y_2|y_1)⋅P(y_3|y_1,y_2)⋅⋅P(y_n|y_1,…,y_{n−1}) P(y1,y2,,yn)=P(y1)P(y2y1)P(y3y1,y2)P(yny1,,yn1)

在给定先前的上下文中预测下一个词的概率分布

N-gram模型

从左到右,每一个词只与前面 n − 1 n-1 n1个词相关

马尔可夫假设

一个单词的概率仅取决于固定数量的前一个单词。

一般采用二元或者三元

为了避免某一个情况没有出现过,分母为0的情况

采用线性插值

λ0,λ1,…,λn−1使得 ∑ i λ i = 1 ∑ \limits_{i}λ_i=1 iλi=1.则更新的概率为:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ibuwgRWb-1646573044024)(https://lena-voita.github.io/resources/lectures/lang_models/ngram/interpolation-min.png)]

避免分子中输入为0

采用拉普拉斯平滑,所有的计数项前面加上 δ \delta δ

P ( m a t ∣ c a r   o n   a ) = δ + N ( c a t   o n   a   m a t ) δ ∣ V ∣ + N ( c a t   o n   a ) P(mat|car \ on \ a) = \frac{\delta + N(cat \ on \ a \ mat)}{\delta |V|+N(cat \ on \ a)} P(matcar on a)=δV+N(cat on a)δ+N(cat on a mat)

无法使用长上下文是n-gram模型的主要缺点。

神经网络

  • 处理上下文。对上下文进行编码,可以预测下一个词的概率分布
  • 生成下一个词的概率分布

模型解释

  • 将以前(上下文)单词的单词嵌入到网络中;
  • 从网络获取上下文的矢量表示;
  • 从此向量表示中,预测下一个词的概率分布。

文本的矢量表示具有一定的维度d,但最终,我们需要一个大小的向量|V|(概率|V|词/类)。要获取|V|-大小矢量从d-大小,我们可以使用线性层。一旦我们有了|V|-大小向量,剩下的就是应用 softmax 运算将原始数字转换为类概率。

运用交叉熵作为损失

rnn

简单rnn:单层

多层rnn:将状态从一个rnn馈送到下一个rnn

生成策略

以不同的方式修改模型预测的分布,以生成具有某些属性的文本。虽然特定的所需文本属性可能取决于您关心的任务(一如既往),但通常您希望生成的文本是:

  • 连贯 - 生成的文本必须有意义;
  • 多样化 - 模型必须能够产生非常不同的样品。
top-K抽样

只选择前k大的令牌进行采样

  • 覆盖总概率质量的很小一部分(在平面分布中);
  • 包含非常不可能的token(在峰值分布中)。
    不同的样品。
top-K抽样

只选择前k大的令牌进行采样

  • 覆盖总概率质量的很小一部分(在平面分布中);
  • 包含非常不可能的token(在峰值分布中)。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值