鄒 傲, 郝文寧, 田 媛
(陸軍工程大學(xué) 指揮控制工程學(xué)院, 南京 210007)
文本數(shù)據(jù)是信息時(shí)代最常見(jiàn)的數(shù)據(jù)載體形式之一,廣泛存在于各種網(wǎng)頁(yè)、書(shū)籍、報(bào)紙、期刊當(dāng)中, 對(duì)文本數(shù)據(jù)的挖掘利用一直是學(xué)界多年來(lái)廣泛關(guān)注的研究方向. 不同于一般的數(shù)值型數(shù)據(jù), 采用機(jī)器學(xué)習(xí)的方法對(duì)文本數(shù)據(jù)進(jìn)行處理首先需要將文本轉(zhuǎn)換為計(jì)算機(jī)可處理的表示形式, 如向量(vector)或張量(tensor), 一個(gè)好的表示形式需要盡可能地將原始數(shù)據(jù)中的語(yǔ)義特征保存在該表示所構(gòu)成的高維向量空間中. 為不斷提高機(jī)器學(xué)習(xí)系統(tǒng)的準(zhǔn)確率, 需要一種算法能夠自動(dòng)地從輸入樣本中學(xué)習(xí)出有效的特征, 這種學(xué)習(xí)方式被稱作表示學(xué)習(xí)(representation learning).
文本表示學(xué)習(xí)的意義在于將非結(jié)構(gòu)化的文本數(shù)據(jù)轉(zhuǎn)換成計(jì)算機(jī)可處理的結(jié)構(gòu)化文本數(shù)據(jù). 對(duì)文本數(shù)據(jù)的表示學(xué)習(xí)可追溯到獨(dú)熱編碼(one-hot code)為代表的詞袋模型(bag-of-words, BoW), 這種表示方法被稱作局部表示(local representation), 對(duì)語(yǔ)義特征的保留較低, 即使再引入詞頻-逆文本頻率(term frequencyinverse document frequency, TF-IDF)等權(quán)重因子后仍然只能保留有限的語(yǔ)義特征. 2003 年Bengio 等人的研究[1]中采用了全連接網(wǎng)絡(luò)訓(xùn)練一個(gè)語(yǔ)言模型, 這是將深度學(xué)習(xí)應(yīng)用于文本數(shù)據(jù)的首次嘗試, 在十幾年的發(fā)展中, 基于深度學(xué)習(xí)的文本處理方法不斷發(fā)展, 并在自然語(yǔ)言處理(natural language processing, NLP)中的各項(xiàng)子任務(wù)中都取得了較好效果. 在文本數(shù)據(jù)的表示學(xué)習(xí)方面, 基于深度學(xué)習(xí)的表示方法經(jīng)歷了從單詞的分布式表示(distributed representation)到基于大規(guī)模預(yù)訓(xùn)練語(yǔ)言模型(pre-trained language model, PLM)的單詞上下文表示(contextual representation), 使得模型的表示學(xué)習(xí)能力取得了顯著提升, 并推動(dòng)在此基礎(chǔ)上的各種算法在一系列下游任務(wù)中不斷取得性能突破.
機(jī)器學(xué)習(xí)算法的性能在很大程度上依賴于數(shù)據(jù)表示的方法, 一個(gè)好的表示學(xué)習(xí)算法能夠直接影響整個(gè)算法的表現(xiàn), 有關(guān)表示學(xué)習(xí)的研究也逐漸從機(jī)器學(xué)習(xí)中的一個(gè)處理步驟逐漸演變?yōu)橐粋€(gè)獨(dú)立的研究方向.
在文本表示學(xué)習(xí)領(lǐng)域, 隨著最新發(fā)布的預(yù)訓(xùn)練模型的參數(shù)數(shù)量呈指數(shù)增長(zhǎng), 基于大規(guī)模預(yù)訓(xùn)練深度模型的訓(xùn)練和使用成本對(duì)普通研究者來(lái)說(shuō)越來(lái)越難以承受: 一方面, PLM 本身的訓(xùn)練需要大量語(yǔ)料和較大規(guī)模的算力資源作支撐; 另一方面, 即使可以通過(guò)現(xiàn)成的PLM 獲得較高質(zhì)量的文本表示, 由于PLM 的模型規(guī)模不斷擴(kuò)大, 通過(guò)PLM 獲得的單詞實(shí)向量表示的維度已經(jīng)達(dá)到了1 03的數(shù)量級(jí), 依然有較高的算力門檻.
本文的主要工作在于提出了一種基于大規(guī)模預(yù)訓(xùn)練語(yǔ)言模型和深度哈希的文本表示學(xué)習(xí)方法, 以期算法所學(xué)習(xí)到的語(yǔ)義表示既能夠包含較高質(zhì)量的語(yǔ)義信息, 且在此基礎(chǔ)上大幅減少其存儲(chǔ)開(kāi)銷以及在下游任務(wù)中的計(jì)算開(kāi)銷. 通過(guò)充分的實(shí)驗(yàn)驗(yàn)證, 本文方法所學(xué)習(xí)到的文本表示在短文本檢索、語(yǔ)義相似度匹配以及文本釋義等任務(wù)中均取得了較好的性能表現(xiàn), 并相較于以往方法獲得了效率上的提升.
本文提出的新的文本表示學(xué)習(xí)方法涉及深度語(yǔ)義挖掘和深度哈希的相關(guān)研究. 本部分將對(duì)文本語(yǔ)義挖掘和深度哈希的內(nèi)容做簡(jiǎn)要介紹.
近年來(lái), 文本語(yǔ)義挖掘的研究經(jīng)歷了3 個(gè)階段: 神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型、詞向量(詞嵌入) 和預(yù)訓(xùn)練語(yǔ)言模型. 文獻(xiàn)[1]的研究中采用一個(gè)由全連接神經(jīng)網(wǎng)絡(luò)組成的模型進(jìn)行語(yǔ)言模型任務(wù)的訓(xùn)練, 并將詞向量矩陣作為模型訓(xùn)練的副成果, 這種詞向量表示相較于傳統(tǒng)基于統(tǒng)計(jì)的向量空間模型維度更低, 且能夠在高維空間中保留更多的語(yǔ)義信息. 詞向量技術(shù)是將文本表示學(xué)習(xí)直接作為模型的訓(xùn)練目標(biāo), Mikolov 等人所提出的Word2Vec 模型是最早關(guān)于詞向量的研究[2–4]. 該模型采用連續(xù)詞袋模型(continuous bag-of-words, CBOW)和跳字模型訓(xùn)練作為詞向量的訓(xùn)練任務(wù). 之后也出現(xiàn)了許多對(duì)詞向量進(jìn)行改進(jìn)的研究[5–7], 也有后續(xù)工作將詞向量的方法用于更高文本單位的表示學(xué)習(xí)[8]. 預(yù)訓(xùn)練語(yǔ)言模型的出現(xiàn)是文本表示學(xué)習(xí)的最新成果, 但其意義又超越了單純的表示學(xué)習(xí)并成為NLP 領(lǐng)域的第三范式[9], 與深度學(xué)習(xí)早期的基于單詞嵌入的方法相比,它能夠更充分地挖掘文本中包含的語(yǔ)義信息[4,5,7]. 預(yù)訓(xùn)練語(yǔ)言模型不僅在各種任務(wù)的公開(kāi)數(shù)據(jù)集(如GLUE[10]、SQuAD[11]和RACE[12])上取得了顯著的結(jié)果, 而且在工業(yè)上也有許多成熟的落地應(yīng)用.
根據(jù)模型結(jié)構(gòu)和訓(xùn)練方式, 預(yù)訓(xùn)練語(yǔ)言模型可分為3 種: 以BERT[13]和RoBERTa[14]為代表的自編碼語(yǔ)言模型(autoencoding language model), 以GPT[15]和XLNet[7]為代表的自回歸語(yǔ)言模型(autoregressive language model), 以及以BART[16]和UniLM[17]為代表的端到端模型(sequence-to-sequence language model).
預(yù)訓(xùn)練語(yǔ)言模型強(qiáng)大的語(yǔ)義表示能力主要來(lái)源于其內(nèi)部的Transformer[18]結(jié)構(gòu). 具體而言, Transformer Encoder 的內(nèi)部作用主要是多頭注意機(jī)制[19], 以及殘差連接結(jié)構(gòu)[20], 一系列研究表明, 該結(jié)構(gòu)能夠比卷積神經(jīng)網(wǎng)絡(luò)捕獲更多語(yǔ)義信息, 并且相較于循環(huán)神經(jīng)網(wǎng)絡(luò)具有更快的訓(xùn)練速度, 并能夠較好地解決以往方法對(duì)輸入樣本的長(zhǎng)距離依賴不足的問(wèn)題, 使其成為目前NLP領(lǐng)域中使用最廣泛的特征提取器.
在過(guò)去的幾年中, 哈希已經(jīng)成為解決大規(guī)模機(jī)器學(xué)習(xí)問(wèn)題的一種較常用的方法[21–27]. 概括地來(lái)講, 這種方法一般采用人工設(shè)計(jì)或系統(tǒng)自動(dòng)學(xué)習(xí)的哈希函數(shù)將數(shù)據(jù)從高維的分布式表示映射到漢明空間(Hamming space)的二進(jìn)制表示, 基于二進(jìn)制碼的表示方法在具體下游任務(wù)的訓(xùn)練和使用中能夠顯著降低數(shù)據(jù)存儲(chǔ)成本和通信開(kāi)銷. 緊湊的二進(jìn)制碼能夠?qū)?shù)據(jù)壓縮到更小的存儲(chǔ)空間中, 并依然能夠保留足夠的特征信息用于各種下游任務(wù). 具體來(lái)說(shuō), 哈希學(xué)習(xí)的目標(biāo)在于學(xué)習(xí)數(shù)據(jù)樣本的漢明空間表示, 使得哈希碼能夠盡可能地保持?jǐn)?shù)據(jù)樣本在原始語(yǔ)義空間中的最近鄰關(guān)系, 從而維持其相似性. 因此, 每個(gè)數(shù)據(jù)樣本將由一個(gè)緊湊的二進(jìn)制碼編碼, 并且原始特征空間中相似的兩個(gè)點(diǎn)應(yīng)能夠映射到漢明空間中相似的兩個(gè)點(diǎn).
深度哈希已經(jīng)在大規(guī)模圖像檢索任務(wù)中得到了廣泛的應(yīng)用. 這種基于哈希的檢索方法的基本思想是構(gòu)造一系列哈希函數(shù), 根據(jù)這一組哈希函數(shù)將每個(gè)文本對(duì)象映射到一個(gè)二進(jìn)制的特征向量. 將高維實(shí)數(shù)特征向量編碼為低維緊致的二進(jìn)制碼可以顯著加快語(yǔ)義相似度的計(jì)算并能節(jié)省內(nèi)存中的存儲(chǔ)空間. 現(xiàn)有的基于哈希的方法分為兩大類: 獨(dú)立于數(shù)據(jù)(data-independent)的和依賴于數(shù)據(jù)(data-dependent)的. 第一種方法通常使用隨機(jī)的映射函數(shù)將樣本映射到特征空間, 然后再得到二進(jìn)制碼, 代表方法是局部敏感哈希(LSH)[28]及其擴(kuò)展方法歐式局部敏感哈希(E2LSH)[29]等. 第二種方法是數(shù)據(jù)驅(qū)動(dòng)(data-driven)的, 使用統(tǒng)計(jì)學(xué)習(xí)方法學(xué)習(xí)哈希函數(shù), 將樣本映射為二進(jìn)制代碼. 其代表方法是譜哈希(spectral hash)[30]等.
自2014 年以來(lái), 在圖像檢索領(lǐng)域出現(xiàn)了一系列將深度神經(jīng)網(wǎng)絡(luò)與哈希函數(shù)相結(jié)合的方法[31–34], 被稱為深度哈希. 深度哈希學(xué)習(xí)的方法同樣是數(shù)據(jù)驅(qū)動(dòng)的, 相較于傳統(tǒng)機(jī)器學(xué)習(xí)方法所采用的若干個(gè)隨機(jī)的哈希函數(shù), 該方法在訓(xùn)練過(guò)程中能夠通過(guò)深度神經(jīng)網(wǎng)絡(luò)自動(dòng)地學(xué)習(xí)生成哈希函數(shù), 并進(jìn)而獲得每個(gè)輸入樣本的唯一哈希表示.
在自然語(yǔ)言處理中, 文本的表示學(xué)習(xí)是非常重要一個(gè)步驟, 為了提高機(jī)器學(xué)習(xí)系統(tǒng)在下游任務(wù)的準(zhǔn)確率, 首先需要將輸入樣本轉(zhuǎn)換為有效的特征, 或更一般性地稱為表示(representation). 圍繞表示學(xué)習(xí)的是兩個(gè)核心問(wèn)題: 一是“什么是一個(gè)好的表示”; 二是“如何學(xué)習(xí)到好的表示”.
在傳統(tǒng)機(jī)器學(xué)習(xí)時(shí)代, 文本的表示學(xué)習(xí)更多地被看作是一種特征獲取的步驟, 即通過(guò)設(shè)計(jì)特定的特征工程手段獲得每個(gè)輸入文本樣本的表示, 然后再將該表示作為后續(xù)解決特定下游任務(wù)模型的輸入特征. 這種文本表示學(xué)習(xí)與模型在特定任務(wù)上訓(xùn)練被割裂成兩部分的狀況一直延續(xù)到深度學(xué)習(xí)的詞向量時(shí)代. 無(wú)論是詞向量Word2Vec[2–4]、GloVe[5]還是語(yǔ)句向量或是文檔向量等類似的方法[8], 都是先根據(jù)特定任務(wù)專門訓(xùn)練出特定文本粒度單元的分布式表示, 再將其應(yīng)用于具體任務(wù)的優(yōu)化過(guò)程, 由于這些表示并不會(huì)在訓(xùn)練中得到更新, 因此也被稱作靜態(tài)表示(static representation).這類方法通過(guò)設(shè)計(jì)準(zhǔn)則或訓(xùn)練任務(wù)依靠這些準(zhǔn)則或任務(wù)來(lái)從輸入樣本中選取有效的特征, 而特征的學(xué)習(xí)和最終預(yù)測(cè)模型的學(xué)習(xí)是分開(kāi)進(jìn)行的, 因此即使學(xué)習(xí)到的特征質(zhì)量很高也不一定可以提升最終模型的性能.在本文中, 文本的表示學(xué)習(xí)與下游任務(wù)的優(yōu)化目標(biāo)被當(dāng)作一個(gè)整體在訓(xùn)練中同時(shí)進(jìn)行. 實(shí)驗(yàn)證明, 良好的特征表示可以捕捉輸入樣本的本質(zhì)結(jié)構(gòu), 完成輸入文本語(yǔ)義空間到高維向量空間的映射, 并在映射的向量空間中反映輸入之間的語(yǔ)義關(guān)系.
在本文的工作中, 我們從自然語(yǔ)言處理領(lǐng)域的3 個(gè)子任務(wù): 短文本檢索、文本相似性度量和文本釋義分別探索基于深度哈希的文本表示學(xué)習(xí). 初步實(shí)驗(yàn)也驗(yàn)證了深度哈希方法在文本深度表示中的可行性和有效性.
基于深度哈希的文本表示學(xué)習(xí)的基本結(jié)構(gòu)如圖1所示, 其核心思想是使用預(yù)訓(xùn)練語(yǔ)言模型作為模型的主干, 并利用其參數(shù)來(lái)初始化所提出的模型. 然后, 根據(jù)特定下游任務(wù)的特點(diǎn), 在模型末尾添加與任務(wù)高度相關(guān)的哈希學(xué)習(xí)層和結(jié)果輸出層, 從而構(gòu)建完整的深度哈希模型. 具體來(lái)講, 圖1 的模型可以接受單一或者成對(duì)語(yǔ)句這兩種輸入方式. 對(duì)于單一語(yǔ)句的輸入, 模型首先使用一個(gè)堆疊的Transformer Encoder 結(jié)構(gòu)對(duì)其進(jìn)行處理, 對(duì)于該步驟的輸出, 池化層提供了3 種池化方式以供選擇: “[CLS]”池化、最大值池化以及均值池化.若輸入為成對(duì)語(yǔ)句, 則使用一個(gè)孿生堆疊Transformer Encoder 結(jié)構(gòu)對(duì)兩個(gè)語(yǔ)句分別編碼并輸出. 在池化層之后, 模型由一個(gè)全連接層、一個(gè)哈希學(xué)習(xí)層和一個(gè)面向具體下游任務(wù)訓(xùn)練的輸出層組成, 全連接層的目的是進(jìn)一步擴(kuò)大模型的表示空間, 哈希學(xué)習(xí)層由一個(gè)閾值函數(shù)組成, 作用是實(shí)現(xiàn)從實(shí)向量空間到漢明空間的轉(zhuǎn)換. 面向下游任務(wù)的輸出層將根據(jù)具體的訓(xùn)練任務(wù),如短文本檢索、語(yǔ)義相似度匹配等進(jìn)行不同優(yōu)化函數(shù)的選擇(均方差或二值交叉熵), 計(jì)算結(jié)果將用于整個(gè)模型的參數(shù)更新.
圖1 基于深度哈希的文本表示學(xué)習(xí)模型總體結(jié)構(gòu)
在對(duì)特定下游任務(wù)進(jìn)行微調(diào)的過(guò)程中, 根據(jù)模型輸出和真實(shí)數(shù)據(jù)標(biāo)簽計(jì)算的優(yōu)化目標(biāo)可以同時(shí)學(xué)習(xí)和優(yōu)化模型參數(shù)、哈希函數(shù)和每個(gè)輸入的深度哈希表示.我們期望通過(guò)這種學(xué)習(xí)方法獲取一種高效的文本表示方法, 以便將其應(yīng)用于各種下游任務(wù), 并期望達(dá)到或接近當(dāng)前最先進(jìn)水平(state-of-the-art, SOTA)的性能, 盡管其在準(zhǔn)確率等指標(biāo)上的表現(xiàn)可能達(dá)不到最優(yōu)水平,但它在特征表示的空間成本和模型預(yù)測(cè)的時(shí)間成本方面具有較大的優(yōu)勢(shì), 這也是選擇深度哈希技術(shù)的主要原因.
在這項(xiàng)工作中, 使用了Huggingface 提供的開(kāi)源預(yù)訓(xùn)練語(yǔ)言模型庫(kù)Transformers[35]. 該語(yǔ)料庫(kù)中的所有模型都經(jīng)過(guò)大規(guī)模語(yǔ)料庫(kù)的訓(xùn)練, 具有豐富的語(yǔ)義先驗(yàn)知識(shí). 以實(shí)驗(yàn)中使用的一個(gè)模型RoBERTa base 為例,該模型使用16 GB 的英語(yǔ)語(yǔ)料庫(kù)進(jìn)行10 萬(wàn)次迭代訓(xùn)練. 實(shí)驗(yàn)中使用的其他預(yù)訓(xùn)練模型也使用類似級(jí)別的數(shù)據(jù)和訓(xùn)練進(jìn)行預(yù)訓(xùn)練.
基于預(yù)訓(xùn)練模型的下游任務(wù)應(yīng)用分為基于特征和微調(diào)兩種方法. 基于特征是指使用語(yǔ)言模型的中間結(jié)果作為特征提取, 直接引入特定的下游任務(wù)作為輸入;微調(diào)是根據(jù)特定的下游任務(wù)修改模型的輸出層, 添加少量與任務(wù)相關(guān)的參數(shù), 然后在新的下游任務(wù)中重新訓(xùn)練整個(gè)模型的方法. 在實(shí)驗(yàn)中, 我們首先嘗試將基于特征的方法應(yīng)用于下游任務(wù), 使用最后一刻[CLS]標(biāo)簽輸出的向量表示作為輸入文本的向量表示(我們還使用每個(gè)維度上輸出層的最大池和平均池的方法來(lái)獲得相應(yīng)的表示), 然后, 通過(guò)設(shè)置閾值, 實(shí)數(shù)字段的向量表示被轉(zhuǎn)換為散列碼.
下游任務(wù)有多種形式的特定輸入. 在短文本檢索、文本語(yǔ)義相似度度量和釋義任務(wù)中, 輸入可以分為單個(gè)文本和文本對(duì). 對(duì)于兩種不同的輸入, 分別采用單網(wǎng)絡(luò)和雙網(wǎng)絡(luò)的模型結(jié)構(gòu). 建議的模型如圖1 所示.以單一輸入為例, 假設(shè)輸入文本樣本為S=(s(1),s(2),···,s(|S|)), 首先通過(guò)輸入端的詞向量映射矩陣和位置向量映射矩陣將其轉(zhuǎn)化成初始分布式表示X=(x(1),x(2),···,x(len)),len是模型的超參數(shù), 設(shè)置輸入樣本的序列長(zhǎng)度,若輸入長(zhǎng)度超過(guò)或小于len, 則通過(guò)截?cái)嗷蛱畛涞姆绞綄⑵溟L(zhǎng)度限定在len. 其中每個(gè)xi(1 ≤i≤len)計(jì)算如下:
最終多頭自注意力層的輸出將是所有注意力頭的拼接再經(jīng)過(guò)一個(gè)線性轉(zhuǎn)換層的結(jié)果:
最大值池化即對(duì)輸出的文本表示矩陣Z∈Rlen×dmdl按列依次選取最大值, 即對(duì)輸出的表示空間的每一維都在輸出值中選取最大值:
至此, 我們可以獲得每個(gè)輸入的文本樣本S在經(jīng)過(guò)預(yù)訓(xùn)練語(yǔ)言模型后的初步表示z. 在哈希層,z將與下游任務(wù)特定訓(xùn)練目標(biāo)的優(yōu)化過(guò)程中實(shí)現(xiàn)從實(shí)向量空間到漢明空間的映射, 具體細(xì)節(jié)將在下一節(jié)中對(duì)各個(gè)任務(wù)進(jìn)行分別實(shí)現(xiàn)時(shí)闡明.
實(shí)驗(yàn)選取了NLP 領(lǐng)域的短文本檢索、語(yǔ)義相似度匹配以及文本釋義3 個(gè)子任務(wù)進(jìn)行實(shí)驗(yàn), 并在所有的這些任務(wù)上都分別進(jìn)行了中文語(yǔ)料數(shù)據(jù)集和英文語(yǔ)料數(shù)據(jù)集的實(shí)驗(yàn), 從而證明本文所提出的方法具有較強(qiáng)的普適性.
在本任務(wù)中采用MRPC[36]數(shù)據(jù)集和GLUE[9]中的STS-B 數(shù)據(jù)集作為實(shí)驗(yàn)的英文數(shù)據(jù)源. 這兩個(gè)數(shù)據(jù)集屬于自然語(yǔ)言理解領(lǐng)域, 屬于文本相似性任務(wù), 不能直接用于本實(shí)驗(yàn). 因此, 我們需要對(duì)數(shù)據(jù)集進(jìn)行預(yù)處理以適應(yīng)這個(gè)實(shí)驗(yàn). MRPC 數(shù)據(jù)集本身是一個(gè)句子級(jí)的相似性匹配問(wèn)題, 其中輸入是一個(gè)句子對(duì), 輸出是一個(gè)標(biāo)簽, 用來(lái)標(biāo)記兩個(gè)輸入句子是否相似. 對(duì)該數(shù)據(jù)集進(jìn)行修改的方法如下: 在訓(xùn)練集和驗(yàn)證集中, 分別集成判斷為“1” (即相似)的句子對(duì)和判斷為“0” (不相似)的句子對(duì). 類似地, 在STS-B 數(shù)據(jù)集中被判斷為“5” (相似)和“0” (不相似)的句子對(duì)可以分別被集成. 經(jīng)過(guò)上述預(yù)處理, 共獲得5173 條數(shù)據(jù). 在實(shí)驗(yàn)中, 我們按照80%、10%和10%的比例將數(shù)據(jù)集分為訓(xùn)練集、驗(yàn)證集和測(cè)試集. 在實(shí)驗(yàn)中, 深度哈希模型采用了圖1 中設(shè)計(jì)的架構(gòu), 模型在短文本檢索任務(wù)中的結(jié)構(gòu)如圖2 所示. 在進(jìn)行訓(xùn)練后, 對(duì)于任意短文本的輸入, 模型能夠輸出其對(duì)應(yīng)的唯一哈希表示. 將查詢文本的哈希碼與全部帶檢索文本的哈希碼進(jìn)行漢明距離的比較, 選取與其漢明距離最近的K個(gè)文本組成top-K 被檢索文本集并輸出.
圖2 基于深度哈希表示的短文本檢索流程
除在英文數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)外, 本部分還使用CLUE[37]中文數(shù)據(jù)集中的AFQMC 數(shù)據(jù)集進(jìn)行了補(bǔ)充實(shí)驗(yàn). 從格式上來(lái)看, AFQMC 的數(shù)據(jù)形式與MRPC 數(shù)據(jù)集類似, 因此我們采用與MRPC 相同的預(yù)處理方式進(jìn)行處理, 并按照該數(shù)據(jù)集原本的劃分將其分為訓(xùn)練集(包含34334 個(gè)樣本)、驗(yàn)證集(包含4316 個(gè)樣本)和測(cè)試集(包含3861 個(gè)樣本).
在訓(xùn)練過(guò)程中, 采用成對(duì)輸入相似度比較的方式進(jìn)行間接訓(xùn)練, 假設(shè)一個(gè)訓(xùn)練樣本包含的兩個(gè)文本輸入分別為S1和S2, 經(jīng)過(guò)預(yù)訓(xùn)練語(yǔ)言模型層所獲得的初步表示為z1和z2, 標(biāo)簽為label∈{0,1}, 則優(yōu)化目標(biāo)可表示如下:
在文本語(yǔ)義相似性匹配任務(wù)中, 我們使用GLUE中的STS-B 數(shù)據(jù)集, 該數(shù)據(jù)集是從新聞標(biāo)題、視頻標(biāo)題、圖像標(biāo)題和自然語(yǔ)言推理數(shù)據(jù)中提取的句子對(duì)的集合. 每個(gè)句子對(duì)都由人工標(biāo)注, 其相似度得分為0–5.任務(wù)的目標(biāo)是預(yù)測(cè)輸入句子對(duì)的相似度得分. 樣本數(shù)量如下: 序列集5749、驗(yàn)證集1379、測(cè)試集1377.
如第2 節(jié)所述, 文本相似性任務(wù)的輸入是語(yǔ)句對(duì),利用均方誤差損失(mean square error loss, MSELoss)目標(biāo)函數(shù)優(yōu)化模型參數(shù), 從而可以同時(shí)學(xué)習(xí)顯式的模型參數(shù)和隱式的哈希函數(shù), 并進(jìn)而根據(jù)隱式的哈希函數(shù)間接地獲得每個(gè)輸入樣本的哈希表示. 第一種映射函數(shù)類似于所有傳統(tǒng)的深度神經(jīng)網(wǎng)絡(luò)模型, 能夠?qū)⑤斎胛谋緩恼Z(yǔ)義空間映射到高維實(shí)向量空間, 具有很強(qiáng)的相似性保持能力; 第二個(gè)映射函數(shù)是該模型所特有的, 它可以將輸入從高維實(shí)向量空間映射到漢明空間.因此, 我們可以獲得一個(gè)自學(xué)習(xí)哈希函數(shù)和對(duì)應(yīng)于每個(gè)輸入的唯一哈希代碼表示. 使用此哈希代碼, 我們可以更有效地完成文本相似性任務(wù).
在語(yǔ)義相似度任務(wù)中, 訓(xùn)練中的優(yōu)化目標(biāo)采用類似于3.1 節(jié)中的均方差損失, 哈希層的機(jī)制參照式(7)的規(guī)則計(jì)算.
在文本釋義任務(wù)中, 本實(shí)驗(yàn)使用了GLUE 的MRPC數(shù)據(jù)集. 根據(jù)慣例, 樣本數(shù)量如下: 序列集3668、驗(yàn)證集408、測(cè)試集1725. 發(fā)布該數(shù)據(jù)集的目的是鼓勵(lì)在與釋義和句子同義詞及推理相關(guān)的領(lǐng)域進(jìn)行研究, 并幫助建立一個(gè)關(guān)于正確構(gòu)建訓(xùn)練和評(píng)估用釋義語(yǔ)料庫(kù)的論述.
同樣地, 除英文數(shù)據(jù)集外, 本部分也采用了中文數(shù)據(jù)集AFQMC 進(jìn)行補(bǔ)充實(shí)驗(yàn), AFQMC 是與MRPC 相同的子任務(wù), 在數(shù)據(jù)格式完全一樣, 只不過(guò)數(shù)據(jù)集全部采用中文語(yǔ)料.
盡管文本語(yǔ)義相似性任務(wù)和文本相似性任務(wù)都涉及到文本語(yǔ)義相似性, 但文本短語(yǔ)的輸出是一個(gè)二元結(jié)果, 即“是” (用1 表示)或“非” (用0 表示). 因此, 在任務(wù)的微調(diào)中, 我們不使用mselo, 而是使用二進(jìn)制交叉項(xiàng)的目標(biāo)函數(shù)來(lái)優(yōu)化模型參數(shù), 隱式地研究了hash 函數(shù)和相應(yīng)的輸入hash 碼. 類似地, 與短文本檢索和文本相似性一樣, 模型輸出的哈希碼之間的漢明距離也用于測(cè)試集中, 以獲得模型的最終判斷輸出.
如上所述, 我們希望在每個(gè)下游任務(wù)中使用哈希代碼來(lái)提高模型的效率. 根據(jù)前3 部分描述的方法, 我們對(duì)3 個(gè)任務(wù)的數(shù)據(jù)集進(jìn)行了實(shí)驗(yàn). 實(shí)驗(yàn)中使用的超參數(shù)設(shè)置如表1 所示.
表1 實(shí)驗(yàn)中采用的主要超參數(shù)
具體的實(shí)驗(yàn)結(jié)果如表2 所示. 從表中可以看出, 本文在短文本檢索、語(yǔ)義相似度匹配以及文本釋義3 種子任務(wù)的5 個(gè)數(shù)據(jù)集上進(jìn)行了充分實(shí)驗(yàn), 其中短文本檢索選取top-5 結(jié)果的準(zhǔn)確率作為評(píng)測(cè)指標(biāo), 語(yǔ)義相似度匹配選取相似度得分作為評(píng)測(cè)指標(biāo), 文本釋義任務(wù)選取準(zhǔn)確率作為評(píng)測(cè)指標(biāo). 除這些指標(biāo)以外, 本文還對(duì)不同種類方法在預(yù)測(cè)階段的時(shí)間進(jìn)行了比較. 實(shí)驗(yàn)結(jié)果表明, 首先, 盡管微調(diào)方法需要對(duì)下游任務(wù)數(shù)據(jù)集進(jìn)行額外的訓(xùn)練, 但它在性能上比基于特征的方法要好得多. 重要的是, 與動(dòng)態(tài)上下文詞嵌入方法相比, 文本表示學(xué)習(xí)的深度哈希方法在準(zhǔn)確性和其他指標(biāo)上有大約3%–5%的性能損失, 但空間成本和時(shí)間成本大大降低, 直接提升了模型在下游任務(wù)預(yù)測(cè)階段的處理效率.這在涉及大規(guī)模語(yǔ)義表示學(xué)習(xí)(如文本檢索)的任務(wù)中尤其重要.
表2 基于深度哈希的文本表示學(xué)習(xí)在3 個(gè)子任務(wù)上的實(shí)驗(yàn)結(jié)果
本文探究了深度哈希技術(shù)在自然語(yǔ)言處理領(lǐng)域的一些應(yīng)用場(chǎng)景. 其主要思想是使用深度哈希技術(shù)進(jìn)行文本表示學(xué)習(xí). 與傳統(tǒng)的用高維實(shí)向量嵌入文本的深度學(xué)習(xí)方法不同, 本文設(shè)計(jì)了一種特定的深度神經(jīng)網(wǎng)絡(luò)模型. 在傳統(tǒng)的深度神經(jīng)網(wǎng)絡(luò)模型的基礎(chǔ)上, 增加了針對(duì)不同下游任務(wù)的哈希學(xué)習(xí)層和輸出層. 最后, 可以通過(guò)訓(xùn)練學(xué)習(xí)每個(gè)輸入樣本對(duì)應(yīng)的唯一哈希表示. 實(shí)驗(yàn)結(jié)果表明, 只要適當(dāng)設(shè)計(jì)模型結(jié)構(gòu)和訓(xùn)練過(guò)程, 可以在盡可能少的語(yǔ)義信息損失的情況下, 顯著降低存儲(chǔ)空間開(kāi)銷和計(jì)算時(shí)間開(kāi)銷, 從而極大地提高相關(guān)任務(wù)的處理效率.