Lattice LSTM
Lattice LSTM
由于中文的實體一般都是由詞語組成的,所以分詞與NER在中文領域具有很強的相關性,一般操作是先分詞,再做詞序列標注。很明顯的,分詞錯誤會導致ner的錯誤,尤其在開放領域,跨領域分詞仍然是一個難題。
簡單來說Lattice LSTM是利用字符作為輸入的基礎上,加上了分詞的信息,就這樣,沒了,具體怎么加的,看一下文章接下來來講
1、文章首先介紹了關于中文的兩種實體識別的方法,主題框架都是BiLSTM+CRF,原理上個博客都介紹過了,過程就是那樣,找最優(yōu)路徑就是維特比算法。兩種方法只是LSTM的輸入不同:
? ? ? 先定義一些符號方面下面的講解,一步一步看,絕對容易讀懂,即使是復雜的公式:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?s=c1, c2,…… cm,其中每個小c表示每個字符
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?s=w1, w2,…… wn,其中每個小w表示每個詞
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?t(i,k)表示第i個詞中的第k個字,例如“南京市 長江大橋”,t(2,1)=4(長)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?BIOES是標簽
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
?????????? 字向量的表示是啥呢?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
???????? ec就是計算字向量的操作,有輸入了,就可以得到雙向lstm的兩個方向隱含層的輸出啦,那么
???????? 第j個字的輸出就是兩個方向的合并啦,再放入CRF就ok了。
? ? ? ? ?稍微改進1:char+bichar
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ?也就是在計算輸入向量的時候把這個字和下一個字合并詞的向量說是這樣可以加強相鄰間的語義信息。
? ? ? ? ? 稍微改進2:char+softword
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ?加入分詞的信息,和bichar的差別應該很明顯。但這個加入的過程和Lattice存在差別。
2、詞向量:word-based-model
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
???????? ???????? 和字向量一樣,合并兩個方向的h作為CRF層的輸入。
?????????????????? integrating character representations
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
?????????????????? 就是加入了字向量
? ? ? ? ? ? ? ? ? ?稍微改進1:word + char LSTM
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
??????????????????????????我個人理解這里是兩層LSTM,第一層是計算每個詞中所有字向量的輸出作為公式
??????????????????????????7中的第二個元素,然后呢,公式8中的元素含義:第一個->第i個詞最后一個字的
??????????????????????????正向的隱含層h;第二個->第i個詞第一個字的反向的隱含層h。
? ? ? ? ? ? ? ? ? ? 稍微改進2:word + char LSTM2222222
? ? ? ? ? ? ? ? ? ? ? ? ? ?作者說他調研了一些只使用單個LSTM獲取兩個方向h的word+charLSTM模型,但是沒有使用高層。
? ? ? ? ? ? ? ? ? ? 稍微改進3:word + char CNN
? ? ? ? ? ? ? ? ? ? ? ? ? ? 沒啥說的
3、Lattice Model
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? 個人理解,這種模型和之前char+word的意思一樣,但就是加入的方法和過程不一樣,這也就導致模型學習到的內容不一? ? ? ? ? ? ? 樣。該模型加入了word-based cells和additional gates,說白了就是新加了word單元和控制信息流的。
? ? ? ? ? ? 還有一個東西就是分詞的字典D,其中wdb,e的含義是這個詞的begin和end位置,例如“南京市 長江大橋”中wd1,3是南? ? ? ? ? ? ? 京市,wd4,7是長江大橋。(氣死我了,d是w的上標,b,e是w的下標,一復制黏貼全都變了,下面如果看到一連串字? ? ? ? ? ? ? ? 母,實際上是一個符號,一般情況下c、d和w是上標,c指的是字,d和w指的是詞,接下來的一個或兩個字母是下標,像? ? ? ? ? ? ? b,e或者一個j或者一個e)
? ? ? ? ? ? 四種向量:
? ? ? ? ? ? ? ? ? ?input vectors:就是公式1
?????????????????? output hidden vectors: hcj,就是隱含層向量嘛,第j的詞的
???????? ???????? cell vectors:ccj,就是從句子開始到現(xiàn)在的一個信息流
?????????????????? gate vectors:就是LSTM的各個門
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
??????????????????其中那個i,f,o就是輸入門,忘記門和輸出門,W就是模型參數(shù)矩陣,還有那個符號是激活函數(shù)。
??????????????????和char-based model不同的是,新包含了詞wdb,e的計算,每一個詞的向量計算如下:
???????????????????????????????????????????????????????
???????????????????如何利用這個Xwb,e呢?看公式13:
???????????????????????????????????????????????????????
???????????????????這個Cwb,e是新加的cell,保留了從句子開始到現(xiàn)在Xwb,e的狀態(tài),大概也就是信息流,歷史信息嘛。然后這里的i? ? ? ? ? ? ? ? ? ? ?和f指的的輸入和忘記門,沒有輸出門是因為標簽是在字而不是在詞
???????????????????我們知道,公式11中的Ccj是字方面的信息流,也就是cell,然后Cwb,e是詞方面的信息流,例如對“南京市長江大? ? ? ? ? ? ? ? ? ? ? ?橋”這句話,第7個字此時為Cc7的輸入包含了Xc7(橋)、Cw6,7(大橋)和Cw4,7(長江大橋)這三方面的信息。是? ? ? ? ? ? ? ? ? ? ?不是看起來字和詞兩者融合起來就可以得到更完善的信息了(實驗結果證明是這樣,那就暫且這么理解吧)。然后? ? ? ? ? ? ? ? ? ? ? ? 呢,就像上面例子,“橋”的輸入包含的詞信息流中包含有多個詞的“大橋”“長江大橋”,所以用公式所有存在的詞表達? ? ? ? ? ? ? ? ? ? ? ? 出來:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
?????????????????????Cce中的e指的就是“橋”這個字的位置,以它為結尾的所有出現(xiàn)在字典D中的詞。然后新加一個門Icb,e來控制每個? ? ? ? ? ? ? ? ? ? ? ??Cwb,e進入Cce的信息的多少。(論文中我覺得這個應該是Cce,而不是Ccb,e,因為上面已經(jīng)說了,上面計算的? ? ? ? ? ? ? ? ? ? ? ?Cwb,e的信息是作為計算Ccj的一個輸入的,所以這里應該是Cce,j和e是一個意思。而是Ccb,e右上角的c指的? ? ? ? ? ? ? ? ? ? ? ? ?是字,右下角b和e指的是一個詞的開始和結束位置。)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ?閑話扯完了,下面看具體怎么控制。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? 看起來雖然有點復雜,但每個元素的含義上面都已經(jīng)解釋清楚了,例如Cc7為橋時,Icb,e就包含兩個詞的信息:? ? ? ? ? ? ? ? ? ? ? ? Ic6,7(大橋)和Ic4,7(長江大橋)。xc7我們是知道的向量計算出來這兩個門之后,計算Cc7時就是公式15了,? ? ? ? ? ? ? ? ? ? ? 相當于來說計算的時候就不用公式11中上一個Cc6了,(我覺得是不用了,如果用了的話在公式15中根本找不到呀)? ? ? ? ? ? ? ? ? ? 而是使用之前的詞信息。懂了吧。再舉個例子,當j=6(大)時,不存在以“大”結尾的詞,也就是說不存b,那么公式? ? ? ? ? ? ? ? ? ? ? 15的計算就是公式11了。
總結
以上是生活随笔為你收集整理的Lattice LSTM的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android OpenGL探索之纯色背
- 下一篇: SAP PO750 Process Or