NLP语言模型Language Model

Language Model

语言模型用来判断:是否一句话从语法上通顺

  • LM—Obgective(目标=) : Compute the probability of a sentence or sequence of words.
  • P(s) = P(w1,w2,w3,w4,w5...wn)

方式:给定一个句子,计算该句子在当前LM下的概率。重点是LM的训练。

Noisy Channel Model

P(text | source) ∝ P(source | text)* P(text)

∝:proportional 等同于
此公式考虑贝叶斯公式

  • 应用场景:语音识别、机器翻译、拼写纠正、OCR、密码破解

    • 共同点:给定一个信号,将其转换成一个文本
  • 给定一个 source 要转换成指定text

  • 由于source是指定的,因此P(source)不受text影响,可看做常量

Recap:Chain Rule

  • P(A,B,C,D) =P(A)* P(B|A)* P(C|A,B)*P(D|A,B,C) ——chain rule

    • 把包含4个随机变量的联合分布,拆分成3个条件分布和1个P(A)
    • P(A,B) = P(A|B)* P(B) = P(B|A)*P(A)
  • P(w1,w2,w3,w4,w5...wn) = P(w1)* P(w2|w1)* P(w3|w1w2)* P(w4|w1,w2,w3)* P(w5|w1,w2,w3,w4)...P(wn|w1,w2...wn-1) ————chain rule

Chain Rule for Language Model

条件若包含很多单词,会有稀疏问题

Markov Assumption(马尔可夫假设 )

有些情况概率很难计算,此时考虑markov assumption估计概率

  • first order markov assumption
    • p(w1,w2,w3,w4...wn) = p(w1)* p(w2|w1)* p(w3|w2)...p(Wn|Wn-1)
  • secod order
    • p(w1,w2,w3,w4...wn) = p(w1)* p(w2|w1)* p(w3|w2,w1)...p(Wn|Wn-2,Wn-1)
  • third order
  • ...

Unigram, Bigram, N-gram

Language Model:Unigram

  • P(w1,w2,w3,w4...Wn) = P(w1) * P(w2)* P(w3)...P(Wn)

Language Model:Bigram

<=> first order markov assumption

  • p(w1,w2,w3,w4...wn) = p(w1)* p(w2|w1)* p(w3|w2,w1)...p(Wn|Wn-2,Wn-1)

Language Model: N-gram

<=> Higher order (n>2)

Estimating Probability of Language Model (估计语言模型的概率)

Unigram:Estimating Probability

P(Wn) = 词汇Wn出现次数 / 语料库所有词汇数量V

Bigram:Estimating Probability

p(w1,w2,w3,w4...wn) = p(w1)* p(w2|w1)* p(w3|w2,w1)...p(Wn|Wn-2,Wn-1)

  • P(Wn/Wn-2,Wn-1) = 出现Wn的同时也出现词汇Wn-1,Wn-2的次数 / 词汇Wn出现次数

对于其中一项概率为0,可以作平滑处理

N-gram:Estimating Probability

同理Bigram estimating probability

Evaluation of Language Model(评估语言模型)

Perplexity

Perplexity = 2^(-x) ,
x : average log likelihood

  • 将训练好的 LM 放入 语料库,计算 likelihood。
    likelihood 的越大,x越大,2^(-x) 越小,Perplexity越小,越小越好!!
    (可以画图像更生动展示变化曲线)

  • Perplexity 尤其适用 unsupervised 文本的情况

Perplexity计算

Perplexity = 2^(-x) ,
x : average log likelihood (平均 对数 似然)
计算X 的过程:

  • likelihood : 计算P(Wn)
  • log likelihood: 计算logP(Wn)
  • average log likelihood: x = (logP(W1)+...+logP(Wn))/n

最后将x带入Perplexity公式。

一般情况下,N-gram LM 效果更好

Smoothing(平滑处理)

Add-one Smoothing 方法(Laplace Smoothing 方法)

若不考虑Smoothing,通常计算的是PMLE,

  • PMLE(Wi | Wi-1) = c((Wi , Wi-1)) / c(Wi )

但是此方法可能出现P(Wn)为0的情况而导致无法评估,因此引入Smoothing方法。

  • PAdd-1(Wi | Wi-1) = c((Wi , Wi-1)) + 1 / c(Wi ) + V
  • V是词典的大小(无重复词)
  • 在分母中加V,会使得所有P()的总和为1

Add-K Smoothing(Laplace Smoothing)

  • PAdd-1(Wi | Wi-1) = c((Wi , Wi-1)) + k / c(Wi ) + kV
  • k=1时, 是Add-one Smoothing

如何选择K

  1. K = 1,2,3...n ,一个一个计算对比找到最合适的 k
  2. 优化 f(k) ,此时Perplexity = f(k),故 Minperplexity= Minf(k) => k= argmink f(k)

Interpolation 方法

背景:现在不出现的概率,不代表未来数据更多anyway还不出现

  • 核心思路:在计算Trigram概率时同时Unigram,Bigram,Trigram出现的频次
  • P(Wn|Wn-1,Wn-2) = λ1P(Wn|Wn-1,Wn-2)+ λ2P(Wn|Wn-1)+ λ3P(Wn) , λ123 =1

上面公式 <=> Tri-gram = λ1Trigram+ λ2 Bigram+ λ3Unigram

对各方法加权平均,好的方法权重大些,加权平均的和为1

Good-Turning Smoothing

背景:在训练数据里没有见过的怎么处理?

  • Nc : 出现c次的单词的个数

没有出现过的单词,未来出现的概率

  • PMLE=0

PMLE 方法: 在历史数据中看到过什么,依据此来给出概率结果

  • PGT=N1 / N

通过N1 / N来计算。通过出现过1次的情况来预测未来的这种小概率事件

出现过的单词,未来出现的概率

  • PMLE= c / N
  • PGT=(c+1)Nc+1 / Nc*N

通常,PGT小于PMLE ,因为考虑到了新的情况(未出现),相当于把一些概率已经给到了新事件

缺点?如何解决?

  • 计算Ni-1,需要Ni,很多情况会有Nn的缺失
  • 解决:根据现有Nn的情况作一条曲线(机器学习的方法拟合)来估计缺失值

Use Language Model to Generate Sentence(利用语言模型生成句子)

LM是生成模型:一旦模型训练好,该模型可以生成新的数据

  • ungram model是最简单的,不考虑语言逻辑
  • Bigram model在随机的基础上,会大概率选取关联概率最大的单词,因此优于unigram
  • N-gram,在有大量的语料库的基础上,可以训练
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 162,547评论 4 374
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,787评论 2 308
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 112,175评论 0 254
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,752评论 0 223
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 53,169评论 3 297
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 41,056评论 1 226
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,195评论 2 321
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,980评论 0 214
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,724评论 1 250
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,872评论 2 254
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,344评论 1 265
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,667评论 3 264
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,379评论 3 245
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,202评论 0 9
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,992评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 36,189评论 2 286
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,987评论 2 279

推荐阅读更多精彩内容