其他分享
首页 > 其他分享> > [吴恩达团队自然语言处理第二课_2]自动补全与语言模型

[吴恩达团队自然语言处理第二课_2]自动补全与语言模型

作者:互联网

自动补全与语言模型

overview

你将会:

image-20220213160942471

language model(LM) 的其他应用:

Learning objectives to sentence auto-complete :

N-grams and probabilities

N-gram介绍

An N-gram is a sequence of N words是单词序列(也可以是字符或者其他元素),在处理语料库时,标点符号被视为单词,其他的特殊字符如代码都会去掉

sequence probabilities

这是理想情况,但是实际上有局限

Sentence not in corpus:

Approximation of sequence probabilities

P(the teacher drinks tea),如果不是在drinks之前查找所有单词,就只需要考虑前一个单词(即P(tea|the teacher drinks)的前一个是P(drinks|the teacher))drinks,使用 Bigram(二元组)近似,简化公式

\[P(tea|the\ teacher\ drinks)\approx P(tea|drinks)\\ P(the\ teacher\ drinks\ tea)=\\ P(the)P(teacher|the)P(drinks|the\ teacher)P(tea|the\ teacher\ drinks)\\ \downdownarrows \\ P(the)P(teacher|the)P(drinks|teacher)P(tea|drinks) \]

只需要应用马尔可夫假设而不是查找所有单词

Starting and ending sentence

start of sentence token<s>

the teacher drinks tea

P(the teacher drinks tea)≈P(the)P(teacher|the)P(drinks|teacher)P(tea|drinks)

P(the)因为the没有上下文,不能计算bigram概率,所以需要做预测,添加一个特殊术语<s>the teacher drinks tea将每一个词都变得可以计算

P(<s> the teacher drinks tea)≈P(the|<s>)P(teacher|the)P(drinks|teacher)P(tea|drinks)

类似的原理也使用于N-grams

start of sentence token <s> for N-grams:

End of sentence token </s>

来由

image-20220214162708562

计算C(drinks w)的总数=1,而C(drinks)=2,为了继续在条件概率中用简化的公式,需要加入结尾标记

image-20220214164556683 image-20220214165310904 image-20220214165726464

我们希望所有长度单词可能性和为1,如下图

image-20220214165912460

solution

Example-bigram

image-20220214171741290

现在尝试计算Lyn<s>开头的概率,因为<s>在语料库出现了三次,而Lyn<s>开头出现两次,所以

\[P(Lyn|<s>)=\frac{2}{3} \]

计算<s> Lyn drinks chocolate </s>

\[P(sentence)=\frac{2}{3}*\frac{1}{2}*\frac{1}{2}*\frac{2}{2}=\frac{1}{6} \]

第一个2/3是<s> Lyn,1/2是Lyn drinks,1/2是drinks chocolate,2/2是chocolate </s>

得到1/6,比我们想象的1/3要低

N-gram language model

Outline:

Count matrix

通过两个单词的滑动窗口在corpus上的移动,将矩阵中的值加一

Probability matrix

\[P(w_n|w_{n-N+1}^{n-1})=\frac{C(w_{n-N+1}^{n-1},w_n)}{C(w_{n-N+1}^{n-1})} \]

Language model

Log probability

\[P(w_1^n)\approx\prod_{i=1}^nP(w_i|w_{i-1})\\ log(a*b)=log(a)+log(b) \]

Generative Language model

从头或以很少的提示生成文本

image-20220220181331239

算法:

  1. Choose sentence start 即 <s>
  2. Choose next bigram starting with previous word 选取二元单词组
  3. coninue until </s> is picked 重复直到选取了结束符号

Evaluation model

Test data

Test data-split method

image-20220220182541515

Perplexity

困惑度为样本中复杂度的量度,如文本复杂度;

困惑度告诉我们文本是由人类编写而不是由一个随机选择单词的简单程序编写:

由人类编写则proplexity低,随机生成则高

\[PP(W)=P(s_1,s_2,...,s_m)^{-\frac{1}{m}}\\ \]

W→test set containing m sentencess s
i→i-th sentence in the test set,each ending with </s>
m→number of all words in entire test set W including
</s> but not including <s>

Eg. m=100 (100个单词)

第一个模型:

\[P(W)=0.9=>PP(W)=0.9^{-\frac{1}{100}}=1.00105416 \]

P(W)=0.9测试集概率0.9说明可以较好的预测。同时困惑度很低

第二个模型:

\[P(W)=10^{-250}=>PP(W)=(10^{-25})^{-\frac{1}{100}}\approx 316 \]

Perplexity for bigram models

\[PP(W)=\sqrt[m]{\prod_{i=1}^m\prod_{j=1}^{|s_i|}\frac{1}{P(w_j^{(i)}|w_{j-1}^{(i)})}}\\ w_j^{(i)} → j-th\ word\ in\ i-th\ sentence \]

一样的概率面对不同的测试集时,m越大,PP越低

如果测试集中所以句子都是串联在一起的,公式可简化为

\[PP(W)=\sqrt[m]{\prod_{i=1}^m\frac{1}{P(w_i|w_{i-1})}}\\ w_i→i-th\ word\ in\ test\ set \]

Log perplexity

使用Log更容易计算,因为好的模型PP在20-60,所以LogPP在4.3-5.9

\[logPP(W)=-\frac{1}{m}\sum_{i=1}^mlog_2(P(w_i|w_{i-1})) \]

image-20220220190646021

Unigram困惑度很高,Bigram才合理一些,Trigram困惑度更好

<UNK> Unknown word

Out of vocabulary words

Using <UNK> in corpus

image-20220220192229188

如何建立词汇表

Smoothing

image-20220220200937653

Add-one smoothing (Laplacian smoothing)

\[P(w_n|w_{n-1})=\frac{C(w_{n-1,w_n})+1}{\sum_{w\in V}(C(w_{n-1},w)+1)}\\ =\frac{C(w_{n-1},w_n)+1}{C(w_{n-1})+V} \]

Add-k smoothing

\[P(w_n|w_{n-1})=\frac{C(w_{n-1},wn)+k}{\sum_{w\in V(C(w_{n-1},w)+k)}}\\ =\frac{C(w_{n-1},w_n)+k}{C(w_{n-1})+k*V} \]

其他更先进的平滑

Kneser-Ney

Good-Turing

Backoff

interpolation插值

如在Tri-gram中

\[\hat P(chocolate|John drinks)=0.7*P(chocolate|John\ drinks)+0.2*P(chocolate|drinks)+0.1*P(chocolate) \]

\[\hat P(w_n|w_{n-2}\ w_{n-1})=\lambda_1\ *P(w_n|w_{n-2}\ w_{n-1})+\\ \lambda_2*P(w_n|w_{n-1})+\lambda*P(w_n)\\ \mathop{\sum}_{i}\lambda_i=1 \]

Summary

标签:吴恩达,frac,第二课,tea,补全,word,model,teacher,drinks
来源: https://www.cnblogs.com/fudanxi/p/15917183.html