閱讀理解中對於doc和q的表示方法

2021-08-15 17:40:37 字數 1443 閱讀 4717

方法一:

最常見的一種方法是將一篇文章看成乙個有序的單詞流序列,如下模型所示,圖中的每個圓圈代表某個單詞的神經網路語義表達,圖中的birnn代表雙向rnn模型。

在這個序列上使用rnn來對文章進行建模表達,每個單詞對應rnn序列中的每個時間步的輸入,rnn的隱層狀態代表融合了本身單詞以及其上下文語義的語言編碼。

這種表示方法的特點就是,它不對文章的整體語義進行編碼,而是對每個單詞及其上下文語義進行編碼,在實際的使用過程中是使用每個單詞的rnn隱層狀態來進行相關計算。

方法一往往在機器閱讀理解系統的原始輸入部分對文章進行表示,因為對於很對閱讀理解任務來說,本質上是從文章中推導出某個概率最大的單詞作為問題的答案,所以文章以單詞的形式來表徵非常自然。方法二:

另一種常見的文章內容表達方式則是從每個單詞的語義表達推導出文章整體的doc embedding表達,這種形式往往是在對問題和文章進行推理的內部過程中使用的表達方式。表達過程如下:

圖中模型的具體表示含義是,類似於上乙個圖,先用雙向rnn來對每個單詞及其上下文進行語義表徵,形成隱層狀態表示,然後對於向量的每一維數值,乘以某個係數,這個係數代表了單詞對於整個文章最終語義表達的重要程度,將每個單詞的係數調整後的隱層狀態累加即可得到文章的word embedding 語義表達,而每個單詞的權重係數通常是由attention計算機制來計算獲得。

如果將query看做一種特殊的doc的話,很明顯doc的語義表達方式同樣也可以用來表徵query的語義,也就是類似於doc的表示方法的方法一和方法二,在此就不再贅述

方法三:

query的第三種表示方法如下圖所示

方法三可以看作是在方法一的基礎之上的改進模型,也是nlp任務中表達句子語義的最常見的表達方式。首先類似於方法一,使用雙向rnn來表徵每個單詞及其上下文的語義資訊。

對於正向rnn來說,其尾部單詞(句尾詞)rnn隱節點代表了融合了整個句子語義的資訊;而反向rnn的尾部單詞(句首詞)則逆向融合了整個句子的語義資訊,將這兩個時刻rnn節點的隱層狀態拼接起來則可以表徵問題的整體語義

理論上對於query的表示方法三也可以用來表示doc的語義資訊,但是一般不會這麼用,主要原因就是doc往往都比較長,rnn對於太長的內容表達能力不足,所以類似方法三的方法會存在大量的資訊丟失,而query一般來說都是比較短的一句話,所以用方法三是比較合適的。

向量叉乘矩陣表示 對於向量和矩陣的理解

學數值計算還有復變函式了喔,矩陣忘乾淨了。又看了一遍 藍棕 的相關的講解,總結一下。1.向量是什麼?從初到末的箭頭 物理角度,表示一種運動過程 有序的數字列表 計算機 數學角度 1,2 加和數乘運算有意義的anything 抽象意義 12兩種理解之間的關係就是線性代數的奧秘,即幾何角度與數值角度。乙...

對於equals和 的理解

很多時候equals和 大家都分不太清楚怎麼樣來使用,今天小編就來教大家怎麼使用 equals比較的是兩個變數的值是否相等 而 則比較的是這個變數的記憶體位址是否相同 打個比方來說 string a new string a string b new string a system.out.prin...

js中對於框架和庫的理解

簡易理解 框架和庫的區別在於,控制權是否反轉。一.使用的控制權不同 框架就像乙個模具,它需要你把原材料放在模具裡面,然後成品就出來了,由於模具已經造好,所以原材料不能亂加,人家要什麼你就給什麼,控制權在模具。庫的區別是,控制權在你手中,想實現什麼功能就實現什麼功能,類庫只是幫你封裝好了大量實用的函式...