日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

序列标注模型综述

發布時間:2023/12/9 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 序列标注模型综述 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

命名實體識別是序列標注的子問題,需要將元素進行定位和分類,如人名、組織名、地點、時間、質量等。命名實體識別的任務就是識別出待處理文本中三大類(實體類、時間類和數字類)、七小類(人名、機構名、地名、時間、日期、貨幣和百分比) 命名實體。

一般來說進行命名實體識別的方法可以分成兩大類:基于規則的方法和基于統計的方法。
基于規則的方法是要人工建立實體識別規則,存在著成本高昂的缺點。
基于統計的方法一般需要語料庫來進行訓練,常用的方法有最大熵、CRF、HMM、神經網絡等方法。

逐一介紹。

1. 必備知識點

1.1 概率圖

1.1.1 概覽

在統計概率圖(probability graph models)中,參考宗成慶老師的書,是這樣的體系結構:

在概率圖模型中,數據(樣本)由公式G=(V,E)G=(V,E)G=(V,E)建模表示:

  • VVV表示節點,即隨機變量(可以是一個token或者一個label),具體地,用Y=(y1,y2,...yn)Y=(y_1,y_2,...y_n)Y=(y1?,y2?,...yn?)為隨機變量建模,注意YYY現在是代表了一批隨機變量(想象對應一條sequence,包含了很多的token),P(Y)P(Y)P(Y)為這些隨機變量的分布;
  • EEE表示邊,即概率依賴關系。后面結合HMM或CRF的graph具體解釋。

1.1.2 有向圖 vs 無向圖

上圖可以看到,貝葉斯網絡(信念網絡)都是有向的,馬爾可夫網絡無向。所以,貝葉斯網絡適合為有單向依賴的數據建模,馬爾可夫網絡適合實體之間互相依賴的建模。具體地,他們的核心差異表現在如何求P=(Y)P=(Y)P=(Y),即怎么表示 Y=(y1,? ,yn)Y=(y_{1},\cdots,y_{n})Y=(y1?,?,yn? 這個的聯合概率。

  • 有向圖
    對于有向圖模型,這么求聯合概率:

    舉個例子,對于下面的這個有向圖的隨機變量:

    應該這樣表示他們的聯合概率:

  • 無向圖
    對于無向圖,一般就指馬爾可夫網絡。

    如果一個圖太大,可以用因子分解將 P=(Y) 寫為若干個聯合概率的乘積。將一個圖分為若干個“小團”,注意每個團必須是“最大團”。則有:

    其中:

    所以像上面的無向圖:

    其中, ψc(Yc)\psi_{c}(Y_{c} )ψc?(Yc?) 是一個最大團 C 上隨機變量們的聯合概率,一般取指數函數的:

    上面的函數叫做勢函數。注意 e∑kλkfk(c,y∣c,x)e^{\sum_{k}\lambda_{k}f_{k}(c,y|c,x)}ek?λk?fk?(c,yc,x) 即有CRF的影子~

    那么概率無向圖的聯合概率分布可以在因子分解下表示為:

    上述公式是CRF的開端~

  • 1.1.3 齊次馬爾可夫假設&馬爾可夫性

  • 齊次馬爾科夫假設
    齊次馬爾科夫假設,這樣假設:馬爾科夫鏈(x1,x2,...,xn)(x_1,x_2,...,x_n)(x1?,x2?,...,xn?) 里的xix_ixi?總是只受xi?1x_{i-1}xi?1?一個參數的影響。
    馬爾科夫假設這里相當于就是個1-gram。

    馬爾科夫過程呢?即,在一個過程中,每個狀態的轉移只依賴于前n個狀態,并且只是個n階的模型。最簡單的馬爾科夫過程是一階的,即只依賴于其哪一個狀態。

  • 馬爾科夫性馬爾科夫性是是保證或者判斷概率圖是否為概率無向圖的條件。
    三點內容:a. 成對,b. 局部,c. 全局。

  • 1.2 判別式(discriminative)模型 vs. 生成式(generative)模型

    在監督學習下,模型可以分為判別式模型與生成式模型。
    根據經驗,A批模型(神經網絡模型、SVM、perceptron、LR、DT……)與B批模型(NB、LDA……)的區別:

  • A批模型是這么工作的,他們直接將數據的Y(或者label),根據所提供的features,學習,最后畫出了一個明顯或者比較明顯的邊界(具體怎么做到的?通過復雜的函數映射,或者決策疊加等等mechanism),這一點線性LR、線性SVM很明顯。
  • B批模型是這么工作的,他們先從訓練樣本數據中,將所有的數據的分布情況摸透,然后最終確定一個分布,來作為所有的輸入數據的分布,并且他是一個聯合分布P(X,Y)P(X,Y)P(X,Y) (注意 XXX包含所有的特征 xix_ixi?YYY包含所有的label)。然后來了新的樣本數據(inference),通過學習來的模型的聯合分布P(X,Y)P(X,Y)P(X,Y) ,再結合新樣本給的XXX,通過條件概率就能出來YYY
    • 判別式模型

      A批模型對應了判別式模型。根據上面的兩句話的區別,可以知道判別模型的特征了,所以有句話說:判別模型是直接對P(Y∣X)P(Y|X)P(YX)建模,即直接根據X特征來對Y建模訓練
      具體地,訓練過程是確定構件P(Y∣X)P(Y|X)P(YX) 模型里面“復雜映射關系”中的參數,然后再去inference一批新的sample。

      • 所以判別式模型的特征總結如下:
    • 對 P(Y|X) 建模
    • 對所有的樣本只構建一個模型,確認總體判別邊界
    • 根據新輸入數據的特征,預測最可能的label
    • 判別式的優點是:對數據量要求沒生成式的嚴格,速度也會快,小數據量下準確率也會好些。
    • 生成式模型
      B批模型對應了生成式模型。并且需要注意的是,在模型訓練中,學習到的是X與Y的聯合模型P(X,Y)P(X,Y)P(X,Y) ,也就是說,在訓練階段是只對P(X,Y)P(X,Y)P(X,Y) 建模,需要確定維護這個聯合概率分布的所有的信息參數。完了之后在inference再對新的sample計算P(Y∣X)P(Y|X)P(YX) ,導出YYY ,但這已經不屬于建模階段了。

      結合NB過一遍生成式模型的工作流程。學習階段,建模: P(X,Y)=P(X∣Y)P(Y)P(X,Y)=P(X|Y)P(Y)P(X,Y)=P(XY)P(Y),然后 P(Y∣X)=P(X,Y)P(X)P(Y|X) = \frac{P(X,Y)}{P(X)}P(YX)=P(X)P(X,Y)? 。另外,LDA也是這樣,只是需要確定很多個概率分布,并且建模抽樣都比較復雜。

      • 所以生成式總結下有如下特點:
    • P(X,Y)P(X,Y)P(X,Y) 建模
    • 這里我們主要講分類問題,所以是要對每個label(yiy_iyi?)都需要建模,最終選擇最優概率的label為結果,所以 沒有什么判別邊界。(對于序列標注問題,那只需要構件一個model)
    • 中間生成聯合分布,并可生成采樣數據。
    • 生成式模型的優點在于,所包含的信息非常齊全,所以不僅可以用來輸出label,還可以干其他的事情。生成式模型關注結果是如何產生的。但是生成式模型需要非常充足的數據量以保證采樣到了數據本來的面目,所以速度相比之下,慢。

    最后identity the picture below:

    1.3 序列建模

    常見的序列有如:時序數據、本文句子、語音數據等等。廣義下的序列有這些特點:

    • 節點之間有關聯依賴性/無關聯依賴性序列的
    • 節點是隨機的/確定的
    • 序列是線性變化/非線性的……

    對不同的序列有不同的問題需求,常見的序列建模方法總結有如下:

  • 擬合,預測未來節點(或走勢分析):
    a. 常規序列建模方法:AR、MA、ARMA、ARIMA
    b. 回歸擬合
    c. Neural Networks

  • 判斷不同序列類別,即分類問題:HMM、CRF、General Classifier(ML models、NN models)

  • 不同時序對應的狀態的分析,即序列標注問題:HMM、CRF、RecurrentNNs

  • 本文只關注在2. & 3. 類問題下的建模過程和方法。

    1. 最大熵模型

    2. 隱馬爾可夫模型HMM

    2.1理解HMM

    HMM屬于典型的生成式模型。對照1.2的講解,是要從訓練數據中學到數據的各種分布,這正是HMM的5要素,其中有3個就是整個數據的不同角度的概率分布:

    • QQQ, 隱藏狀態集N={q1,q2,...,qN}N=\{q_1,q_2,...,q_N\}N={q1?,q2?,...,qN?} , 隱藏節點不能隨意取,只能限定取包含在隱藏狀態集中的符號。 ,
    • VVV, 觀測集 M={v1,v2,...vM}M=\{v_1,v_2,...v_M\}M={v1?,v2?,...vM?} , 同樣觀測節點不能隨意取,只能限定取包含在觀測狀態集中的符號。
    • A ,狀態轉移概率矩陣,這是其中一個概率分布。A=[aij]N?MA=[a_{ij}]_{N*M}A=[aij?]N?M? (N為隱藏狀態集元素個數),其中 aij=P(it+1=qj∣it=qi)a_{ij}=P(i_{t+1}=q_j|i_t=q_i)aij?=P(it+1?=qj?it?=qi?)即第i個隱狀態節點在t時刻處于狀態qiq_iqi?的條件下在t+1轉移到qjq_jqj?的概率。
    • B,觀測概率矩陣,這個就是另一個概率分布。B=[bij]N?MB=[b_{ij}]_{N*M}B=[bij?]N?M?(N為隱藏狀態集元素個數,M為觀測集元素個數),其中bij=P(ot=vk∣it=qj)b_{ij}=P(o_t=v_k|i_t=q_j)bij?=P(ot?=vk?it?=qj?) 即第i個觀測節點時刻t處于狀態qjq_jqj?的條件下生成觀測vkv_kvk?的概率。
    • πππ,初始狀態概率向量:π=(πi)π=(π_i)π=(πi?),其中,πi=P(i1=qi)π_i=P(i_1=q_i)πi?=P(i1?=qi?),是時刻t=1處于狀態qiq_iqi?的概率。

    隱馬爾科夫模型由初始狀態向量πππ,狀態轉移矩陣A和觀測概率矩陣B決定。。πππ和A決定狀態序列,B決定觀測序列。因此,馬爾科夫模型可以用三元符號表示,即 λ\lambdaλ=(A,B,πππ),A,B,πππ稱為隱馬爾科夫模型的三要素。

    狀態轉移概率矩陣A與初始狀態概率向量πππ確定了隱藏的馬爾科夫鏈,生成不可觀測的狀態序列。
    觀測概率矩陣B與狀態序列綜合確定了如何產生觀測序列。

    模型先去學習確定以上5要素,之后在inference階段的工作流程是:首先,隱狀態節點 iti_tit?是不能直接觀測到的數據節點,oto_tot?才是能觀測到的節點,并且注意箭頭的指向表示了依賴生成條件關系,iti_tit?在A的指導下生成下一個隱狀態節點it+1i_{t+1}it+1?,并且iti_tit? 在 B 的指導下生成依賴于該 iti_tit? 的觀測節點 , 并且只能觀測到序列(o1,o2,...oi)(o_1,o_2,...o_i)(o1?,o2?,...oi?)
    舉例子說明(序列標注問題,POS,標注集BES):
    input: “學習出一個模型,然后再預測出一條指定”
    expected output: 學/B 習/E 出/S 一/B 個/E 模/B 型/E ,/S 然/B 后/E 再/E 預/B 測/E ……
    其中,input里面所有的char構成的字表,形成觀測集 ,因為字序列在inference階段是我所能看見的;
    標注集BES構成隱藏狀態集 ,這是無法直接獲取的,也是預測任務;至于A,B,πππ ,這些概率分布信息都是在學習過程中所確定的參數。

    高層次的理解:

  • 根據概率圖分類,可以看到HMM屬于有向圖,并且是生成式模型,直接對聯合概率分布建模:

    (注意,這個公式不在模型運行的任何階段能體現出來,只是都這么來表示HMM是個生成式模型,他的聯合概率 P(O,I)P(O,I)P(O,I)就是這么計算的)。
  • 并且B中 bij=P(ot∣it)b_{ij}=P(o_t|i_t)bij?=P(ot?it?) ,這意味著o對i有依賴性。
  • 在A中, aij=P(it+1∣it)a_{ij}=P(i_{t+1|i_t})aij?=P(it+1it??),也就是說只遵循了一階馬爾科夫假設,1-gram。試想,如果數據的依賴超過1-gram,那肯定HMM肯定是考慮不進去的。這一點限制了HMM的性能。
  • 2.2 模型運行過程

    模型的運行過程(工作流程)對應了HMM的3個問題。
    2.2.1 學習訓練過程
    對照1.2的講解,HMM學習訓練的過程,就是找出數據的分布情況,也就是模型參數的確定。
    主要學習算法按照訓練數據除了觀測狀態序列(o1,o2,...oi)(o_1,o_2,...o_i)(o1?,o2?,...oi?) 是否還有隱狀態序列(i1,i2,...ii)(i_1,i_2,...i_i)(i1?,i2?,...ii?) 分為:

    • 極大似然估計, with 隱狀態序列
    • Baum-Welch(前向后向), without 隱狀態序列
      這里不展開講~

    3. 條件隨機場CRF

    4. Bi-LSTM+CRF

    該命名實體識別方法是一種將深度學習方法和機器學習方法相結合的模型。

    Bi-LSTM+CRF模型結構圖

    如圖:

  • 輸入層是一個將文本序列中的每個漢字利用預先訓練好的字向量進行向量化,作為Bi-LSTM層的輸入。
  • 利用一個雙向的LSTM(Bi-LSTM)對輸入序列進行encode操作,也就是進行特征提取操縱。采用雙向LSTM的效果要比單向的LSTM效果好,因為雙向LSTM將序列正向和逆向均進行了遍歷,相較于單向LSTM可以提取到更多的特征。
  • 在經過雙向LSTM層之后,我們這里使用一個CRF層進行decode,將Bi-LSTM層提取到的特征作為輸入,然后利用CRF從這些特征中計算出序列中每一個元素的標簽。
  • CRF是機器學習的方法,機器學習中困難的一點就是如何選擇和構造特征。Bi-LSTM屬于深度學習方法,深度學習的優勢在于不需要人為的構造和選擇特征,模型會根據訓練語料自動的選擇構造特征。因此采用Bi-LSTM進行特征的選擇構造,然后采用CRF根據得到的特征進行decode,得到最終的序列標注的結果。這樣講深度學習和機器學習相結合的,互相取長補短。

    參考:https://www.zhihu.com/search?type=content&q=條件隨機場
    https://www.zhihu.com/question/35866596/answer/236886066

    總結

    以上是生活随笔為你收集整理的序列标注模型综述的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。