nlp中的傳統(tǒng)語(yǔ)言模型與神經(jīng)語(yǔ)言模型

總有一些專有名詞聽(tīng)上去“很屌”,了解了其概念后潦刃,便覺(jué)得:“哦侮措,原來(lái)是這么簡(jiǎn)單的小知識(shí)點(diǎn)”。語(yǔ)言模型就是這樣一個(gè)名詞乖杠,作為nlp基礎(chǔ)組件之一分扎,在諸多的上層應(yīng)用中都有重要應(yīng)用。

簡(jiǎn)言之胧洒,語(yǔ)言模型就是給一個(gè)句子(詞序列)分配一個(gè)概率畏吓。這個(gè)概率表示這句話“合理程度”。舉個(gè)例子:

你兒子在我手上卫漫,快點(diǎn)把錢叫出來(lái)菲饼。 prob=0.80
# 這樣一個(gè)句子,非沉惺辏“通順”宏悦,就得到一個(gè)很高的概率值。
特朗普在廁所里擺滿了多個(gè)藝員。 prob=0.20
# 這樣一個(gè)句子饼煞,非吃春“怪異”,也可能是有別字砖瞧、語(yǔ)病的息堂,就得到一個(gè)很低的概率值。

把語(yǔ)言模型(詞序列-->概率)寫(xiě)成公式块促,就得到了
P(w_1,.....,w_n)=P(w_1)*P(w_2|w_1)*P(w_3|w_1,w_2)*......*P(w_n|w_1,...,w_{n-1}).
上述公式使用了鏈?zhǔn)椒▌t荣堰,即當(dāng)前第n個(gè)詞用哪一個(gè),完全取決于前n-1個(gè)詞竭翠。有了上面的公式振坚,我們就可以基于訓(xùn)練語(yǔ)料,計(jì)算一個(gè)句子的概率值了逃片。這里面有一個(gè)問(wèn)題,每一個(gè)詞都取決于前n-1個(gè)詞只酥,這使得計(jì)算復(fù)雜度猛增褥实。為了簡(jiǎn)化,采用了Markov-Assumption裂允,即當(dāng)前要選擇的詞僅僅依賴于前一個(gè)詞损离。有的同學(xué)可能會(huì)說(shuō),對(duì)于文本序列绝编,每個(gè)當(dāng)前詞僅取決于前一個(gè)詞僻澎,這樣會(huì)不會(huì)過(guò)于簡(jiǎn)單?是的十饥,太簡(jiǎn)單了窟勃,所以傳統(tǒng)的語(yǔ)言模型往往采用了k階Markov-Assumption,k=3,4,5逗堵,寫(xiě)成公式:
P(w_1,.....,w_n)=\prod_{i=1}^{n}P(w_i|w_{i-k},...,w_{i-1}).

很自然的秉氧,我們就可以通過(guò)對(duì)語(yǔ)料的統(tǒng)計(jì),得出一個(gè)句子的概率蜒秤。
傳統(tǒng)的語(yǔ)言模型也是這么做的汁咏,假設(shè)\#(w_i,...,w_j)表示詞序列w_i,...,w_j在語(yǔ)料中出現(xiàn)的次數(shù)。那么作媚,對(duì)于一個(gè)詞“word”攘滩,運(yùn)用公式就可以得到:
P(w_{i+1}|w_{i-k},...,w_{i})=\frac{\#(w_{i-k},...,w_{i+1})}{\#(w_{i-k},...,w_{i})}
然后對(duì)計(jì)算得到的多個(gè)P(w_{i+1}|w_{i-k},...,w_{i-1})連乘,就得到了句子的概率纸泡。

這里有個(gè)問(wèn)題漂问,即分母的\#(w_{i-k},...,w_{i})等于0,怎么辦?
有兩種處理方法级解,1. 平滑技術(shù) 2. back-off冒黑,又出現(xiàn)了兩個(gè)看起來(lái)很“屌”的詞匯,其原理其實(shí)非常簡(jiǎn)單勤哗。

  1. 平滑技術(shù)
    既然分母有可能等于0抡爹,那我們就加一個(gè)常數(shù),不讓其等于0芒划,比如在分母處+1冬竟,這就是所謂的平滑。如下所示:
    P(w_{i+1}|w_{i-k},...,w_{i})=\frac{\#(w_{i-k},...,w_{i+1})}{\#(w_{i-k},...,w_{i})+1}
    平滑的技術(shù)有很多種民逼,大多論文集中在1990-2000年之間泵殴,就不詳細(xì)介紹了。最常見(jiàn)的叫做\alpha平滑拼苍,即
    P(w_{i+1}|w_{i-k},...,w_{i})=\frac{\#(w_{i-k},...,w_{i+1}+\alpha)}{\#(w_{i-k},...,w_{i})++\alpha |V|}
    其中笑诅,|V|是詞表大小,\alpha是(0,1]之間的常數(shù)疮鲫。

  2. back-off
    退一步海闊天空吆你,這可能就是back-off的由來(lái)吧,既然\#(w_{i-k},...,w_{i})為0
    俊犯,那就想辦法估計(jì)一個(gè)值出來(lái)妇多。這里我們直接給出最佳的“非神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型”中使用到的辦法,如下所示燕侠,看起來(lái)很復(fù)雜者祖,其實(shí)原理很簡(jiǎn)單。
    p _ { } \left( w _ { i+1 } | w _ { i - k},...,w_i \right) =\lambda_{w_{i-k},...,w_{i+1}} \frac { \# \left( w _ { i - k},...,w_{i+1} \right) } { \# \left( w_{ i - k },..., w_i \right) } +(1-\lambda_{w_{i-k},...,w_i} )p _ { } \left( w _ { i+1 } | w _ { i - (k - 1)} ,..., w_i \right)
    \#(w_{i-k},...,w_{i})為0绢彤,則我們使用后一項(xiàng)估計(jì)七问,最后一項(xiàng)是用k-1元gram去估計(jì)k元ngram的值。

平滑和back-off的變種很多茫舶,詳見(jiàn)這篇論文:An Empirical Study of Smoothing Techniques for Language Modeling
非神經(jīng)網(wǎng)絡(luò)的最佳語(yǔ)言模型如下:
p _ { } \left( w _ { i+1 } | w _ { i - k },...,w_i \right) = \frac { \# \left( w _ { i - k},...,w_{i+1} \right) - D \left( \# \left( w _ { i - k },...,w_{i+1} \right) \right) } { \# \left( w _ { i - k },..., w_{i-1} \right) } + \gamma \left( w _ { i - k} ,...,w_{i } \right) p _ { } \left( w_{ i+1 } | w _ { i - (k - 1)} ,..., w_i \right)

語(yǔ)言模型的評(píng)價(jià)--perplexity 困惑度
語(yǔ)言模型的變種有很多烂瘫,如何評(píng)價(jià)語(yǔ)言模型的好壞呢?
公式如下:
2 ^ { - \sum _ { x } p ( x ) \log _ { 2 } p ( x ) }
其中, p(x)=p _ { } \left( w _ { i+1 } | w _ { i - k },...,w_i \right)
困惑度值(1,+\infty), 就是說(shuō)一個(gè)詞序列越不合理奇适,其困惑度越大坟比,即讓你越困惑。嚷往。葛账。這里有個(gè)疑問(wèn),為什么用上述公式皮仁,其本質(zhì)是什么籍琳,留給大家思考菲宴。

傳統(tǒng)語(yǔ)言模型的缺點(diǎn)是什么?

  1. 平滑技術(shù) or back-off趋急,這類方法屬于人工設(shè)計(jì)規(guī)則喝峦,設(shè)計(jì)規(guī)則紛繁復(fù)雜,哪一種適合什么樣的語(yǔ)料呜达,難有定論谣蠢。困惑度可以用于評(píng)價(jià)各種規(guī)則,但困惑度本身并不是一個(gè)完美的評(píng)價(jià)方法查近。
  2. 詞表為V的n-gram數(shù)目是|V|^n眉踱,如果n每增加1,要計(jì)算的n-gram至少會(huì)倍增霜威。
  3. 基于極大似然估計(jì)的語(yǔ)言模型缺少對(duì)上下文的泛化谈喳,比較“死板”。比如戈泼,原語(yǔ)料中出現(xiàn)白汽車婿禽、黑汽車,而沒(méi)有黃汽車大猛,該語(yǔ)言模型就會(huì)影響對(duì)黃汽車的概率估計(jì)扭倾。當(dāng)然,某些具體的nlp應(yīng)用中胎署,這種“死板”反而是一種優(yōu)勢(shì)吆录,這種語(yǔ)言模型的靈活性低窑滞,但能夠降低了recall琼牧,提升precision。舉個(gè)例子哀卫,比如巨坊,原語(yǔ)料中出現(xiàn)了黑馬、白馬此改,這時(shí)出現(xiàn)藍(lán)馬的概率就很低趾撵。而對(duì)于靈活的語(yǔ)言模型,很有可能藍(lán)馬的概率也偏高共啃。

neural language model 神經(jīng)語(yǔ)言模型

基于神經(jīng)網(wǎng)絡(luò)的語(yǔ)言模型能解決上述三個(gè)問(wèn)題占调,其模型的數(shù)學(xué)表達(dá)式,簡(jiǎn)寫(xiě)如下:
p _ { } \left( w _ { i+1 } | w _ { i - k },...,w_i \right)=softmax(hW^2+b^2)
以k元文法為例移剪,前k-1個(gè)詞作為特征究珊,softmax預(yù)測(cè)最后一個(gè)詞。詞表|V|可能很大纵苛,比如1000000剿涮,這時(shí)可以使用heiraichle softmax言津,能夠有效提升效果、節(jié)省預(yù)測(cè)時(shí)間取试。當(dāng)然悬槽,還有一種NEC方法,通過(guò)一系列的二分類問(wèn)題替換交叉熵目標(biāo)函數(shù)瞬浓。

實(shí)例總結(jié)

在機(jī)器翻譯任務(wù)中初婆,傳統(tǒng)的語(yǔ)言模型和神經(jīng)語(yǔ)言模型同時(shí)使用,會(huì)提升翻譯質(zhì)量瑟蜈,模型之間似乎在互相補(bǔ)充烟逊。綜上所述,神經(jīng)語(yǔ)言模型的泛化能力更好铺根,傳統(tǒng)方法泛化能力差宪躯。紅馬、藍(lán)馬的例子中位迂,我們看到泛化能力好访雪,也不一定是優(yōu)點(diǎn)。在合適的場(chǎng)景下掂林,選擇適合的語(yǔ)言模型就ok了臣缀。在開(kāi)發(fā)文本糾錯(cuò)的應(yīng)用過(guò)程中,我們采用了傳統(tǒng)的語(yǔ)言模型泻帮,因?yàn)樯窠?jīng)語(yǔ)言模型的泛化能力過(guò)強(qiáng)精置,會(huì)帶來(lái)錯(cuò)別字大量誤判,反而降低了系統(tǒng)的表現(xiàn)锣杂。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末脂倦,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子元莫,更是在濱河造成了極大的恐慌赖阻,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,657評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件踱蠢,死亡現(xiàn)場(chǎng)離奇詭異火欧,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)茎截,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門苇侵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人企锌,你說(shuō)我怎么就攤上這事榆浓。” “怎么了霎俩?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,057評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵哀军,是天一觀的道長(zhǎng)沉眶。 經(jīng)常有香客問(wèn)我,道長(zhǎng)杉适,這世上最難降的妖魔是什么谎倔? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,509評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮猿推,結(jié)果婚禮上片习,老公的妹妹穿的比我還像新娘。我一直安慰自己蹬叭,他們只是感情好藕咏,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著秽五,像睡著了一般孽查。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上坦喘,一...
    開(kāi)封第一講書(shū)人閱讀 51,443評(píng)論 1 302
  • 那天盲再,我揣著相機(jī)與錄音,去河邊找鬼瓣铣。 笑死答朋,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的棠笑。 我是一名探鬼主播梦碗,決...
    沈念sama閱讀 40,251評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼蓖救!你這毒婦竟也來(lái)了洪规?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,129評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤藻糖,失蹤者是張志新(化名)和其女友劉穎淹冰,沒(méi)想到半個(gè)月后库车,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體巨柒,經(jīng)...
    沈念sama閱讀 45,561評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評(píng)論 3 335
  • 正文 我和宋清朗相戀三年柠衍,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了洋满。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,902評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡珍坊,死狀恐怖牺勾,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情阵漏,我是刑警寧澤驻民,帶...
    沈念sama閱讀 35,621評(píng)論 5 345
  • 正文 年R本政府宣布翻具,位于F島的核電站,受9級(jí)特大地震影響回还,放射性物質(zhì)發(fā)生泄漏裆泳。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評(píng)論 3 328
  • 文/蒙蒙 一柠硕、第九天 我趴在偏房一處隱蔽的房頂上張望工禾。 院中可真熱鬧,春花似錦蝗柔、人聲如沸闻葵。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,838評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)槽畔。三九已至,卻和暖如春胁编,著一層夾襖步出監(jiān)牢的瞬間竟痰,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,971評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工掏呼, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留坏快,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,025評(píng)論 2 370
  • 正文 我出身青樓憎夷,卻偏偏與公主長(zhǎng)得像莽鸿,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子拾给,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容