語(yǔ)言模型用來(lái)估計(jì)句子的可能性(sentence)

語(yǔ)料庫(kù)(corpus)指的是很大的某種語(yǔ)言(例如英語(yǔ))句子組成的文本。通過(guò)將語(yǔ)料庫(kù)中的每個(gè)單詞映射成索引(例如獨(dú)熱向量)形成字典??梢园葱柙谧值渲刑砑泳渥幽┪矘?biāo)志<EOS>(end of sentence)和對(duì)應(yīng)未出現(xiàn)在字典中的低頻詞的標(biāo)志<UNK>(unknown words)作為補(bǔ)充。
示意圖中的每一個(gè)表示一個(gè)預(yù)測(cè)值(單詞),
、
是預(yù)輸入向量,均為
,
表示序列長(zhǎng)度。
假如我們?cè)谟?xùn)練集中得到一句話:Cats average 15 hours of sleep a day. 首先將每個(gè)詞標(biāo)記為
、
、
等,即標(biāo)簽值。
語(yǔ)言模型第一個(gè)激活項(xiàng)的輸出是
,他是通過(guò)softmax預(yù)測(cè)字典中每一個(gè)詞作為第一個(gè)詞的概率。不管預(yù)測(cè)結(jié)果是什么,將結(jié)果
作為第二個(gè)激活項(xiàng)的輸入,經(jīng)過(guò)相同的操作通過(guò)softmax獲得的輸出是條件概率
(
),依次類(lèi)推第三個(gè)輸出是
(
)……
在某個(gè)時(shí)間步t正確的詞是
,softmax預(yù)測(cè)值是
,則單個(gè)預(yù)測(cè)的損失函數(shù)是
(
,
)=
總體損失函數(shù)是
當(dāng)一個(gè)句子很長(zhǎng)時(shí),預(yù)測(cè)一個(gè)詞時(shí)考慮之前所有的詞不現(xiàn)實(shí),這時(shí)出現(xiàn)了-
語(yǔ)言模型。他使用了馬爾科夫模型,即任意一個(gè)詞出現(xiàn)的概率只與它前面出現(xiàn)的n-1個(gè)詞有關(guān)。
根據(jù)n值的不同分為(n=1,即每個(gè)詞都是獨(dú)立的)、
(n=2,即每個(gè)詞跟他之前的一個(gè)詞有關(guān))、
(n=3,即每個(gè)詞跟他之前的兩個(gè)詞有關(guān))……從模型的效果來(lái)看,理論上n的取值越大,效果越好。但隨著n取值的增加,效果提升的幅度是在下降的。


際應(yīng)用中還會(huì)遇到一個(gè)問(wèn)題:數(shù)據(jù)稀疏,解決方法介紹加法平滑。
假設(shè)有一個(gè)詞組在訓(xùn)練語(yǔ)料中沒(méi)有出現(xiàn)過(guò),那么它的頻次就為0,但實(shí)際上顯然不能認(rèn)為它出現(xiàn)的概率為0,我們無(wú)法保證訓(xùn)練語(yǔ)料的完備性。那么,解決的方法是什么?如果我們默認(rèn)每一個(gè)詞組都出現(xiàn)至少1次呢,無(wú)論詞組出現(xiàn)的頻次是多少,都往上加1,這就能夠解決未出現(xiàn)詞組概率為0的問(wèn)題了。
