“知物由學”是網易易盾打造的一個品牌欄目,詞語出自漢·王充《論衡·實知》。人,能力有高下之分,學習才知道事物的道理,而後才有智慧,不去求問就不會知道。“知物由學”希望透過一篇篇技術乾貨、趨勢解讀、人物思考和沉澱給你帶來收穫的同時,也希望開啟你的眼界,成就不一樣的你。當然,如果你有不錯的認知或分享,也歡迎在“網易易盾”公眾號後臺投稿。
導讀:自然語言處理的ESIM模型目前已在多家公司的內容相關性搜尋模型、人機對話模型上較為廣泛的使用,業內不少人對ESIM模型也耳熟能詳。實際上,ESIM模型只是本篇文章要介紹的HIM模型的閹割版,後者潛力很大,能應用在包括內容安全在內的多個領域。近日,網易易盾實驗室的研究員撰寫了此篇文章,對HIM模型進行簡單解讀。
大家對自然語言處理的ESIM模型可能已經耳熟能詳,但是它其實是這裡介紹的HIM模型的閹割版。
自然語言推理NLI(natrual language inferrence,NLI)一直是人工智慧自然語言處理研究的一個熱門方向。但人類語言的推理也一直是一個極具挑戰的任務。舉個例子,文字蘊含關係描述的是兩個文字之間的推理關係,其中一個文字作為前提(premise),另一個文字作為假設(hypothesis),如果根據前提P能夠推理得出假設H,那麼就說P蘊含H,記做P→H。這跟一階邏輯中的蘊含關係是類似的。
這裡解釋也許還有些抽象,在實際的應用中,前提句子可以是使用者輸入的query查詢短語,假設句子可以是新聞庫中一篇新聞的標題、正文、摘要,或者是網路音樂曲庫庫中一首歌曲的介紹、歌詞。推理出來的關係,就是搜尋查詢與搜尋結果物件的相關性。
在內容安全檢測應用中,前提句子亦可以是一條待檢測的資料,假設句子就是舉報違禁樣本庫中一條樣本記錄,推理出來的關係,就是待檢測資料是否和違禁內容相關。
要完成自然語言的文字推理任務,最近stanford大學貢獻了一個重要的資料集——SNLI。這幫助廣大研究人員能夠訓練更復雜的模型。使用這個資料訓練的序列推理模型能夠得到比之前已有的各種最先進的模型更優秀的模型。這也預示著,很多已有的序列推理演算法的潛力都還沒有挖掘出來。
由於句法和語義聯絡緊密,在自然語言推理任務中,挖掘句法對我們十分的重要。因此在自然語言研究任務中,我們需要把大部分的精力投入到利用迴圈神經網對句法分析樹資訊進行編碼。在神經網路中對區域性推理和推理組合進行建模。
1、混合神經網路推理模型
在自然語言推理神經網路中,有三個組成部分:輸入編碼、區域性推理和推理組合。圖一展示的是這種結構的高層架構的三個重要組成部分。左邊展示的是序列推理模型ESIM,右邊展示是融合句法分析資訊的樹形LSTM。
圖 1推理神經網路模型的組成
首先我們介紹輸入編碼的部分。
在輸入編碼的部分中,使用的是雙向LSTM(BILSTM)作為自然語言推理的基本模組。BILSTM用來對輸入的前提和假設進行以下的編碼:
在基本的LSTM單元中,LSTM使用一組soft門限開關和記憶單元來控制資訊的傳遞,這種結構能夠有效地跟蹤序列中長距離的資訊和語法依賴關係。而且雙向LSTM從句子序列的最左端和最右端進行了前向和後向的計算,兩個方向計算所得的隱層向量在每個時刻點連線起來,在效果上比其他的遞迴記憶模組(比如GRU單元)來的好。
為了有效分析自然語言推理中句法結構,在推理中,我們使用瞭如圖2所示的樹形LSTM。透過樹形LSTM,我們把前提和假設兩個句子的句法分析樹的資訊編碼起來。
圖 2樹形LSTM
根據以下(3)-(10)的計算,句法分析樹中的每個節點使用如圖2所示的tree-LSTM的記憶單元進行計算。每個節點中,輸入向量
和這個節點的兩個子節點的隱藏向量
,
作為輸入資訊進行計算,得到當前節點的隱藏向量
。一個節點的輸入用來設定4個門限開關的閾值:輸入門,輸出門,兩個遺忘門。而且記憶單元
的門閥閾值也由左遺忘門和右遺忘門的閾值計算得到。在當前的輸入編碼層中,輸入
是葉子節點的詞嵌入編碼向量,而非葉子節點由於沒有對應的具體的詞語,我們使用一個特殊的向量
作為輸入。
類似於未登入詞所對用的詞嵌入向量。
值得一提的是,這與下面我們要介紹的推理組合層有很大的不同。在推理組合層中,樹形LSTM使用的輸入資訊是區域性推理資訊的編碼,而且在樹裡面的所有節點上都是有具體對應的,也就是說在推理組合層中,不需要用未登入詞向量的手段來解決問題。
2.區域性推理建模
對前提句子和假設句子進行子句子級別的區域性推理建模是決定整個推理的重要環節。為了更仔細地進行區域性推理,我們對序列和句法樹模型繼續做更進一步地挖掘。其中序列模型對詞和詞的上下文進行區域性推理相關資訊的收集;樹形LSTM進行對片語和從句級別的區域性資訊收集。
這裡的區域性資訊推理模型涉及到對前提句子/假設句子相互之間各個句子子部分的硬對齊操作和軟對齊操作。這種對齊操作和傳統自動機器翻譯中的對齊方法很相近。具體的實現過程,可以透過計算soft的注意力分數實現。
前人的工作將這種操作分解成一下過程:
前提句子或者是假設句子的序列轉化成詞嵌入向量的詞袋。前提句子內的每個詞各自與假設句子中的每個詞計算得到的注意力分數作為soft對齊的關聯程度。值得注意的是,這種基本做法儘管有效並且是目前能夠取得最好結果的做法,但是使用預訓練的詞嵌入向量本身忽視了NLI任務中詞語的上下文資訊。
這裡的軟對齊操作是使用一下計算公式的注意力權重計算。
它是前提句子序列和假設句子序列的隱狀態之間的相似度計算。這是透過多次實驗得到的,使用更復雜的關係計算方式,並不能得到更好的效果提升。這裡公式中的計算物件,是前面BILSTM計算得到的隱狀態向量,也可以是樹形LSTM計算得到的隱狀態向量
。
序列上的區域性推理資訊
區域性推理主要是由注意力權重
決定的,它代表了前提句子和假設句子的區域性相關性。舉個例子,前提句子某個詞語的隱狀態向量
,它已經包含了詞語本身和詞語上下文的資訊,而且在假設語句中和它相關的語義資訊透過
進行識別和組合。比如,兩個句子間的相互關聯和組合表達,可以透過以下方式:
假設語句中內容
會透過與
的相關性進行選擇和參與加權表示。
句法分析樹上的區域性推理資訊
這裡所討論的句法分析樹是成分句法分析樹(constituency parser.),而不是依存句法分析樹(Dependency Parsing)。成分句法分析樹用來收集片語和從句的區域性推理資訊。當分析樹中的每個節點的隱狀態都計算好了之後,這些分析樹中的節點都是沒有區別的,唯一要做的就是使用注意力分值來分析它們之間的關係。我們還是使用
來計算前提句子和假設句子的所有節點配對之間的注意力權重。這種做法把前提句子、假設句子中含有的所有的詞語、成分片語和從句都聯絡起來了。我們計算得到這種關係資訊,並把它們傳遞到接下來的神經網路層。
增強區域性推理資訊
我們進一步增強區域性資訊收集。我們計算隱狀態向量兩兩之間的差值向量和元素點積結果向量。這種操作能夠幫助獲得區域性推理過程中比較突出和明顯的特徵資訊,或者獲得一些類似矛盾關係的推理資訊。差異向量和元素點積結果向量透過和原始的隱狀態向量連線起來,得到增強後的特徵。
這種隱狀態的增強操作,對句子序列BILSTM模型和樹形LSTM模型的隱狀態向量都進行操作。這種操作是一種對序列特徵進行抽取高階互動特徵的方法。然而,根據實驗的嘗試,我們也發現對這種高階的互動特徵進行進一步的前向神經網路的計算,增加頂層隱狀態向量到前面我們討論的特徵連線的結果向量上,並不會得到更好的效果。
3.推理組合
在推理組合環節中,我們將最終確定前提句子和假設句子的全域性關係。在組合層我們對增強版的區域性推理資訊
和
進行組合。我們進行句子序列的組合或者進行上下文句法分析樹形的組合。
在句子序列的推理模型中,同樣也使用BILSTM模型進行組合推理資訊
和
,計算方式和前面提到的輸入編碼的操作相同,但是目的不一樣。這裡的主要目的是獲得區域性推理資訊和以及上下文資訊進行組合。
在樹形組合過程中,每個樹上的節點的高層次計算主要是進行組合區域性推理資訊。
在這種組合過程中,由於向量的連線操作,會使得BILSTM、樹形LSTM模型的輸入維度翻倍的增加,導致模型引數的成倍增加。眾所周知,這種引數的成倍增加很容易導致模型潛在的過擬合。為了避免這種過擬合的後果,在模型中需要對輸入增加一層帶ReLU啟用函式的前向神經網路。
推理的最後是透過池化技術將推理組合得到的結果向量轉化成一個固定長度向量,並且輸入到最終的分類器中來決定最終的全域性推理關係。前人的一些向量求和池化方法都對序列長度很敏感並且欠缺魯棒性。我們使用新的策略:同時計算平均池化和最大值池化,把結果串聯連線成一個最終的固定長度的向量。具體的計算方式如下:
這種方法透過多次實驗比較,顯示能夠比求和池化的結果有明顯的提升。在樹形推理組合中,最後一步向量的串聯連線稍微有所不同。樹形組合需要將根節點隱狀態向量連線起來。
在最後的分類環節中,模型把得到
的輸入到最後的多層感知器MLP分類器中。MLP有一個tanh啟用函式和一個softmax輸出層。帶有輸入編碼、區域性推理和推理組合三個模組的整個模型,本質上還是一個端到端訓練的模型,訓練的損失函式也採用多分類交叉熵的損失函式。
這裡介紹的模型,當只保留對序列句子的推理,捨棄句法分析樹相關的分析推理元件,這時候模型就是增強化的序列推理模型ESIM。ESIM在競賽中已經取得了很不錯的結果。當考慮句法分析樹的資訊,透過多層次的樹形LSTM編碼,把這部分的資訊和ESIM模型的資訊結合起來,比如使用取預測機率的平均值得到句子配對的最終關係標籤,這就是混合推理模型HIM。透過實驗的驗證,融合句法分析的資訊的HIM能夠比ESIM模型進一步提升推理的效果(文/易盾實驗室)。
歡迎點選免費體驗網易易盾安全解決方案。