語言模型用來估計(jì)句子的可能性(sentence)
語料庫(corpus)指的是很大的某種語言(例如英語)句子組成的文本体箕。通過將語料庫中的每個(gè)單詞映射成索引(例如獨(dú)熱向量)形成字典〉来ǎ可以按需在字典中添加句子末尾標(biāo)志<EOS>(end of sentence)和對應(yīng)未出現(xiàn)在字典中的低頻詞的標(biāo)志<UNK>(unknown words)作為補(bǔ)充蚣录。
示意圖中的每一個(gè)表示一個(gè)預(yù)測值(單詞)割择,、是預(yù)輸入向量萎河,均為荔泳,表示序列長度。
假如我們在訓(xùn)練集中得到一句話:Cats average 15 hours of sleep a day. 首先將每個(gè)詞標(biāo)記為虐杯、玛歌、等,即標(biāo)簽值擎椰。
語言模型第一個(gè)激活項(xiàng)的輸出是支子,他是通過softmax預(yù)測字典中每一個(gè)詞作為第一個(gè)詞的概率。不管預(yù)測結(jié)果是什么达舒,將結(jié)果作為第二個(gè)激活項(xiàng)的輸入值朋,經(jīng)過相同的操作通過softmax獲得的輸出是條件概率(),依次類推第三個(gè)輸出是()……
在某個(gè)時(shí)間步t正確的詞是巩搏,softmax預(yù)測值是昨登,則單個(gè)預(yù)測的損失函數(shù)是
(,)=
總體損失函數(shù)是
當(dāng)一個(gè)句子很長時(shí),預(yù)測一個(gè)詞時(shí)考慮之前所有的詞不現(xiàn)實(shí)塔猾,這時(shí)出現(xiàn)了-語言模型篙骡。他使用了馬爾科夫模型,即任意一個(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))……從模型的效果來看顿仇,理論上n的取值越大淘正,效果越好。但隨著n取值的增加臼闻,效果提升的幅度是在下降的鸿吆。
際應(yīng)用中還會(huì)遇到一個(gè)問題:數(shù)據(jù)稀疏,解決方法介紹加法平滑述呐。
假設(shè)有一個(gè)詞組在訓(xùn)練語料中沒有出現(xiàn)過惩淳,那么它的頻次就為0,但實(shí)際上顯然不能認(rèn)為它出現(xiàn)的概率為0乓搬,我們無法保證訓(xùn)練語料的完備性思犁。那么代虾,解決的方法是什么?如果我們默認(rèn)每一個(gè)詞組都出現(xiàn)至少1次呢激蹲,無論詞組出現(xiàn)的頻次是多少棉磨,都往上加1,這就能夠解決未出現(xiàn)詞組概率為0的問題了学辱。