NLP - Log-linear Models
生活随笔
收集整理的這篇文章主要介紹了
NLP - Log-linear Models
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.The Language Modeling Problem
? ? ? ? 現在拋開我們之前講的馬爾科夫模型的假設,對于一門語言的定義,肯定不能簡單依賴于每個單詞的前兩個單詞,這是常識。比如英語中的動詞形態就和主語有關。那么我會怎么考慮一個語言模型呢,很可能是下面這樣一個情況: ? ? ? ? ? ? ? ? ? ? 我們之前講的Trigram模型也可以用這樣的形式來表示: ? ? ? ? ? ? ? ? ? ? ? 那么我們要用我們增加的一些定義,一種naive的方法就是選取一些參數來生成模型: ? ? ? ? ? ? ? ? 可以想象,這是很難駕馭的。但是我們可以用這樣的模型來理論上地表示一些例子。 ? ? 而下面要講的Log-Liner Model就可以加入這些信息,并使其可操作。2.Log-linear models
? ? ?2.1 Define
? ? ? 我們首先用對Language Model的描述來引入log-linear model,Log-linear model其實是可以引入到很多問題里面的。 ? ? ?這里我先作如下定義: ? ? ? ??? ?? ? ? ?然后我們定義feature(參數),一個參數就是一個函數,把x,y映射到一個具體的值? ? ? ? ? ? ? 一般來講,我們設定一個參數值選擇為binary的值,要么為1,要么為0 ? ? ? 然后假設我們有m個不同的參數,對于一組(x,y),我們就有一個長度為m的參數值向量: ? ? ? ? ? ? ? 比如在language model中我們有這樣一系列的參數: ? ? ? ? ? 在實際中,這些參數的數量是非常多的,為了方便,我們常常用簡便的方式來表示一些類似的參數: ? ? ? ? ? ??
? ? ? ? ?其中N(u,v,w)把每一組u,v,w映射為一個不同的整數,這一組參數的數量就是不同u,v,w的數量,其實這也就是trigram model的定義,只不過我們用另一種方式表達出來而已。
? ? ? 2.2 Result
? ? ? ? ? 這樣我們就得到了一組m個參數,同時我們再定義一個長度為m的向量v,然后我們就可以把(x,y)映射為一個“score”(得分)了: ? ? ? ? ? ? ? ? ? ? 其實就是數學中的向量的點乘。? ? 2.3 Further Define
? ? ? ? 我們接下來再進一步用log-linear model來表示我們的Language model: ? ? ? ? 我們有一個X是input空間,Y是一個有限的詞語空間,我們使: ? ? ? ? ? ? ?? ? ? ? ? ?這就是我們的log-linear模型下的語言模型了,注意e的指數其實就是我們上面所說的"score" ? ? ? ? ?為什么叫log linear 模型呢?我們對兩邊取log看一下: ? ? ? ? ? ? ? ? ? ? ?一目了然了是吧? ? 2.4 for other problem
? ? ? ? ? 除了Language Model,log liner的方法還可以用到其他問題上,比如說tagging problem(這個問題的描述在之前的日志有講:點擊打開) ? ? ? ? ? 我們要做的是重新設計feature函數,以及改變一下 history的的定義(也就是上面的x),上面我們是使x=w1,w2…wi-1 ? ? ? ? ? 在tagging problem中我們使: ? ? ? ? ??? ? ? ? ?這樣就是 tagging problem 的log linear模型了,所以說log linear可以應用于比較廣的范圍。下面我們會詳細講 Tagging Problem中的log-linear model
3.Maximum-Likelihood Estimation for Log-liner Model
? ? 3.1 introduction
? ? ? ? ?下面介紹下怎么從訓練數據中得到參數,選擇的方法叫做ML(最大似然估計) ? ? ? ? ?我們有的就是一系列的x和y ? ? ? ? ?首先選擇v: ? ? ? ? ? ?? ? ? ? ? ?其中L(v)為: ? ? ? ? ? ? ? ?? ? ? ? ? ?它叫做似然函數。 ? ? ? ? ?有了似然函數,我們就可以選擇一種叫做Gradient Ascent的方法,也就是求使L函數最大的v ? ? ? ? ?這個其實就是梯度上升,就是在L上對v求導,得到梯度,然后一步步用梯度趨近最大值(這其實和梯度下降是相似的,具體可以見這里的部分內容) ? ? ? ? ? ? ? ? ? ? ? ? ?然后我們每次迭代使v加上 (β乘以這個導數),β是學習時選擇的參數,叫做學習速率。? ?3.2?Regularization
? ? ? ? ? 如果L只是簡單地上面那種形式,算法很可能會過擬合,一些v會變成非常大來更好地增大似然函數,但這種增大是畸形的,叫做overfitting ? ? ? ? ? 解決的方法很多,最簡單的一種就是加入regularization的部分,也就是: ? ? ? ? ?? ? ? ? ? ? 這樣的話如果v過大就會招致penalty ? ? ? ? ? 那么: ? ? ? ? ?########下面的課程相對細講了log linear model對于Tagging和Parse問題的方案,我選簡單的寫一個========= ########其實模型都是相似的===============================================================
4、Log-Linear Models for History-based Parsing
4.1回顧下Log-Linear Taggers
? ? ? ? ? 好吧,這段我懶了,沒有寫log linera tagger的內容,所以在這補充總結一下,其實也不是很復雜 ? ? ? ? ?? ? ? ? ? ? 大概就是這樣的一個模型,可以看出其實就是2.4的內容。4.2?History-Based Models
? ? ? ? ?有了tag以后,我們可能還會有需求去求的一個parse,也就是語法樹,一步步來。 ? ? ? ? ?假設我們能夠將一顆樹表示為一系列的decisions,假設為m個,我們有: ? ? ? ? ? ? ? ? ? ? ?注意這里的m不一定是句子的長度,我們可以做很多decision來表示句子樹的結構 ? ? ? ? 然后我們定義: ? ? ? ? ? ? ? ?表示這個句子 ? ? ? ? 那么對于一棵樹的probability就是: ? ? ? ? ? ?? ? ? ? ? Over------就這么簡單,關鍵是我們要怎么來設計我們的decision ? ? ? ? 注意和4.1對比一下,我們如果把decision換成tag的內容,就變成了Tagger的問題4.3Ratnaparkhi's Parser:
? ? ? ?再繼續我們的內容之前,先放一個例子在這,好繼續描述: ? ? ? ? ? ? ? ?下面主要講的是一個叫做Ratnaparkhi的人的model,好吧,又是一個90后的model…… ? ? ?他的模型主要分三層:1. Part-of-speech tags?
? ? ? ? ? ? ? ? ? ? ? ? 這部分就是簡單的tag的model,每個decision就是一個tag的選擇 ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ??
2. Chunks ??
? ? ? ? ? ? ? ? ? ? ?Chunks其實就是短語部分的模型: ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? 也就是上面那一排tag,其正式點的定義就是:所有兒子都是?Part-of-speech tags的節點 ? ? ? ? ? ? ? ? ? ? ? 如何表示它的decision呢?我們用SART和JOIN來表示 ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? 一目了然?再加上第一層的模型,現在我們的decision已經有2*n個了: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??3. Remaining structure
? ? ? ? ? ? ? ? ? ? ? Remaining structure,我們看一下這顆tree還有什么remaining了呢?更高層的樹的結構 ? ? ? ? ? ? ? ? ? ? ? 我們將用Check來在第二層的基礎上來表示這棵樹:Check=NO 或者 YES ? ? ? ? ? ? ? ? ? ? ? 首先我們跑一次第二層,Check一直設置為NO,不增加什么操作,直到: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 我們設置Check=YES,那么發生奇跡的時刻到了,看到沒,一組Start和Join消失了,取而代之的是一個Chunk:PP ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? 我們再繼續,CHECK繼續為NO: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 看到沒,在選擇Check為YES的時候就把上一個start的部分合并成一個符號!!! ? ? ? ? ? ? ? ? ? ?這樣繼續到最后,我們就得到了最終的decision: ? ? ? ? ? ? ? ? ? ? ? ?4.4?Applying a Log-Linear Model
? ? ? ? ? ? ? ? 其實比較簡單,就是di作為輸入,而<d1…di-1,S>作為history ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 其中A表示所有可能的action(decision) ? ? ? ? ? ? ? ? 那么現在還有一個最大的問題,怎么設計我們的 f ?!! ? ? ? ? ? ? ? ?Ratnaparkhi的模型中主要還是關聯了decision的部分,我們同樣可以對decision進行trigram或者bigram模型的設計,這是和以前的定義一樣的,然后將各部分混雜起來就會得到很多的f了。4.5 Search Problem
? ? ? ? ? ? 在POS tagging問題中我們能夠使用Viterbi algorithm的原因是我們有如下假設: ? ? ? ? ?? ? ? ? ? ? ? 但是現在的decision可能依靠之前的任意一個decision,動態規劃是沒轍了。。。。 ? ? ? ? ? ? 這一部分會在下一周的課程講到。^_^轉載于:https://www.cnblogs.com/nlpowen/p/3613578.html
總結
以上是生活随笔為你收集整理的NLP - Log-linear Models的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Asp.Net异常:由于代码已经过优化或
- 下一篇: Linuxnbsp;JDK1.4卸载与1