摘要:搜尋引擎作為上網衝浪的直接入口,其檢索能力的強弱直接影響使用者的上網體驗。深度學習技術近期的爆發式發展也深刻影響著資訊檢索技術的革新程式,目前已有越來越多的深度學習模型成功應用於資訊檢索領域併發揮著重要的作用。緊跟學術界的研究進展,搜狗搜尋引入了諸多前沿技術用於解決資訊檢索中的語義匹配問題,例如本文將要介紹的IR-transformer模型和IRGAN強化學習訓練框架。我們的研究結果顯示,由於IR-Transformer模型使用的multi-head attention技術可以很好的結合上下文語境分析語義,所以IR-Transformer的語義匹配準確度大幅超越瞭如DSSM、K-NRM等諸多深度學習模型;使用IRGAN框架進行模型訓練,可以動態的“提純”訓練資料,部分消除預測精度隨訓練時間增長而產生的波動性,從而極大地提高訓練效率。
1 序言
1.1 搜尋引擎與資訊檢索技術
隨著網際網路技術的飛速發展,網路資訊的數量也在爆炸式地增長。資訊數量的增長一方面使得使用者有機會獲取更多內容豐富、滿足個性化需求的資訊;另一方面也可能給使用者準確定位其目標需求增加了難度。面對日益豐富的搜尋需求,作為獲取資訊好助手的搜尋引擎,也在不斷革新其核心技術——資訊檢索技術(Information Retrieval,IR)。
那麼,資訊檢索技術是如何在搜尋引擎中發揮作用的呢?使用者在資訊檢索時,會向搜尋引擎輸入需要查詢的語句(query)。基於使用者的查詢語句以及特定的IR演算法,搜尋引擎會計算得到與使用者查詢匹配度最高的一些網頁,並將它們返回給使用者。
傳統的資訊檢索演算法有BM25等。BM25演算法通過網頁欄位對查詢欄位的覆蓋程度來計算兩者間的匹配得分,得分越高的網頁與查詢的匹配度更好。雖然如BM25等經典檢索方法具有邏輯簡潔、計算效率高等優勢,但是它們也存在忽略字詞間的語序邏輯、難以處理近義詞間的匹配關係、無法定量表述語義等問題。簡言之,經典方法在查詢-網頁的語義匹配上存在硬傷,而該問題的存在直接導致了傳統的檢索演算法越來越難以滿足使用者日趨複雜的查詢需求。
1.2 經典的深度語義匹配模型
為了解決傳統演算法在語義感知和匹配上的瓶頸,人們開始將深度學習演算法應用於資訊檢索應用中。深度學習的概念最早由Hinton等人於2006年提出,它利用多層堆垛的非線性感知器對輸入資料進行抽象和分析。隨著大資料技術的蓬勃發展以及雲端計算能力的不斷增強,深度學習技術開始異軍突起,在影象分析、自然語言處理(Natural Language Processing, NLP)、語音識別等應用中發揮威力。
已廣泛應用於查詢-網頁語義匹配的深度學習模型有DSSM(Deep Structured Semantic Model)、CDSSM(Convolutional DSSM)、K-NRM(Kernel based Neural Ranking Model)等。DSSM利用全連線神經網路把查詢-網頁標題資訊抽象表示為高維向量,並利用特定的匹配演算法計算查詢和網頁資訊之間的相關性。K-NRM方法首先計算查詢和網頁標題之間的相似度矩陣,再利用特定的核函式對相似度矩陣進行分析變換,最終利用變換後的矩陣資訊計算查詢-網頁的匹配得分。相對於BM25等經典檢索演算法,DSSM、K-NRM等深度學習模型的語義感知能力大為提升,比如,可以自動實現近義詞間的詞義匹配,定量化表述詞義和語義等。然而,上述模型並非完美無缺。由於模型架構的侷限性,這些深度學習模型還存在難以處理語序邏輯關係、語義分析能力有限(受限於模型表達能力)、查詢-網頁匹配質量一般等問題。
1.3搜狗搜尋的語義匹配技術前沿
為了不斷提升資訊檢索結果的質量,必須要持續引入新的、表達能力更強的深度學習模型。與此同時,隨著模型複雜度的提升,模型引數的尋優也越發困難,所以也必須引入更優的模型訓練方法。基於此目的,下文將介紹最新應用於搜狗搜尋的深度學習模型以及強化學習訓練框架,分別是IR-Transformer和IRGAN(Information Retrieval Generative Adversarial Network,資訊檢索生成對抗網路)。
我們的研究結果顯示:由於IR-Transformer模型使用的multi-head attention技術可以很好的結合上下文語境分析語義,所以IR-Transformer模型的語義匹配能力大幅超越瞭如DSSM、K-NRM等諸多的深度學習模型,甚至超越了基於迴圈神經網路(Recurrent Neural Networks,RNN)、卷積神經網路(Convolutional Neural Network,CNN)的深度學習模型;任意深度學習模型均可嵌入IRGAN強化學習框架進行動態的對抗,在訓練過程中,訓練資料會被動態的優化,從而使該框架可以提高訓練效率,收穫更高的檢索精度。
2 Transformer模型
2.1機器翻譯Transformer模型簡介
Transformer模型最初發表在《Attention is all you need》一文[[i]],用於處理機器翻譯的問題。與其他機器翻譯的研究不同,該模型並沒有使用RNN、CNN等經典的神經網路結構,而主要採用multi-head attention(多注意力)技術進行語義分析和處理。
那麼,相對於傳統的CNN、RNN模型,multi-head attention有哪些好處呢?原文指出,使用multi-head attention技術可以直接處理語句內字詞間邏輯關係,該特點可以提高長句的語義分析的精確度。此外,使用multi-head attention的模型還具有更容易進行平行計算等優勢。目前,基於Transformer的變種模型已經應用於影象生成[[ii],[iii]]、邏輯推理[[iv]]、語句語義計算[[v]]等諸多領域,充分顯示了multi-head attention技術的強大威力。
如圖1所示,機器翻譯Transformer由一個處理查詢資訊的編碼器(encoder,圖1左側)和一個預測翻譯結果的解碼器(decoder,圖1右側)組成。當查詢語句的“詞嵌入”向量(embedding)輸入編碼器後,編碼器會對查詢進行編碼,並將該編碼資訊傳輸給解碼器;與此同時,解碼器會基於編碼資訊進行解碼,預測出語句翻譯結果。這裡需要解釋一下“詞嵌入”的概念和含義:詞嵌入意味著用特定的高維向量(embedding)來表示語句中每個字詞,向量的數值可以理解為對應字詞的抽象含義。由於向量可以進行各種代數運算(但字詞不能直接做計算),所以我們可以對字詞向量設計特定的演算法,利用運算的結果來定量化地表示語句的語義,最終實現如機器翻譯、資訊檢索等應用。值得一提的是,詞嵌入是處理絕大多數的NLP問題的第一步,對於本文提到的RNN、CNN、IR-Transformer等模型均是如此。
2.2 用於資訊檢索的IR-Transformer
搜狗搜尋對機器翻譯Transformer模型進行了一定的改造,建立了用於資訊檢索的IR-Transformer模型。下文將簡要介紹我們模型的架構。
類似於原始的Transformer模型, IR-Transformer模型也分為兩大模組:處理查詢資訊的query編碼器(記為q編碼器)和處理網頁標題的title編碼器(記為t編碼器)。注意,由於處理資訊檢索問題時僅需分析已有網頁,而不需要生成文字或者網頁,所以IR-Transformer架構中不包含解碼器。
q編碼器、t編碼器均為多層結構,較低層的輸出作為較高層的輸入被進一步處理,不同層的內部結構相同。每層q編碼器由兩個亞層組成,而每層t編碼器由三個亞層組成。q編碼器和t編碼器的第一個亞層主要執行self multi-head attention操作;q編碼器和t編碼器的最後一個亞層主要執行非線性變換操作;t編碼器的第二層主要執行q->t multi-head attention操作。
細心的讀者會發現,該模型共用到兩種multi-head attention操作,即self multi-head attention(兩種編碼器均採用)以及q->t multi-head attention(僅用於t編碼器)。實際上,這兩種multi-head attention的差別僅在於輸入的來源有所不同:前者的輸入只包含自身相關的資訊;而後者的輸入不僅包含t編碼器自身的資訊,還包含來自q編碼器的資訊。
為了更形象的說明multi-head attention的運算過程,我們在圖2中展示了一個具體的例子:假設q編碼器的輸入(即使用者的查詢)是“今天/天氣/如何”(斜槓代表分詞),一個待分析網頁的標題是“近期/天氣/彙總”。那麼,對於q編碼器而言,如圖2(a)所示,執行self multi-head attention運算意味著要計算N個相關性矩陣(每個矩陣由如(今天,今天),(今天,天氣),(今天,如何)等詞對的相關性數值組成)。換言之,詞與詞之間的相關性即為attention機制,而計算N個相關性矩陣意味著multi-head。由於詞對均由q編碼器的輸入組成,所以對於q編碼器而言,這個操作也叫self multi-head attention。利用N個相關性矩陣以及查詢語句的初始語義向量(embedding),“今天”、“天氣”、“如何”的語義可被進一步深化為三個新向量,如圖2(a)的大括號右側所示。
相對於未經過self multi-head attention的語義向量,新的語義向量含有了上下文的資訊(資訊來自N個相關性矩陣),內涵更加豐富、全面。所以,IR-Transformer模型擁有結合上下文語境來分析語義的能力,而該能力對於資訊檢索精度至關重要,我們將在下一小節重點介紹這一特點。
同理,如圖2(b)所示,q->t multi-head attention操作需要計算N個相關性矩陣(每個矩陣由如(近期,今天),(近期,天氣),(近期,如何)等詞對的相關性數值組成)。需要注意的是,詞對的組成不光來自t編碼器,還來自q編碼器(如“今天”等詞)。
經過q編碼器、t編碼器的多層處理,使用者查詢和網頁標題的語義已被充分抽象。利用加權平均、神經網路處理等方法,我們可以用兩個高維向量來分別表示查詢和網頁標題。比如對於圖2中的例子,查詢和網頁標題的資訊可以分別表示為q=(q1, q2, …, qk)以及t=(t1, t2,…, tk)。基於這兩個高維向量的相似度(例如cos內積的大小),搜尋引擎可以給網頁打分,將高分的網頁返回給發出查詢請求的使用者。
為了提高模型的精度以及收斂效率,我們也參考了原始文獻,在IR-Transformer中加入了殘差連線(residual connection)、層正則化(layer normalization)等技術;為了增加語序分析能力,我們在模型中加入了位置編碼(positional encoding)等操作。
2.3 IR-Transformer的效果
資訊檢索領域的一個重要的難題是:如何結合上下文語境分析語義,並對查詢與網頁的語義進行匹配。舉個例子,假設使用者的查詢是“哪家/醫院/看/XX病/水平/好”,一個相關性較好的網頁標題資訊是“各大/醫院/治/XX病/效果”。對於該查詢,其語義的核心在於“看/XX病”,而網頁資訊的核心則是“治/XX病”。在一般的語義環境中,“看”字的語義和“治”字的語義差別很大,所以如果直接計算“看”和“治”的相關性,則使用者的查詢和該網頁的匹配度會比較差。但是,如果結合“XX病”這個上下文語境,“看”字和“治”字的語義相關性就非常強了。換言之,一個好的搜尋演算法必須能夠在感知上下文的前提下進行語義匹配。然而,K-NRM以及DSSM等深度學習模型從原理上無法做到這一點,所以這些演算法的搜尋精度有限。
那麼IR-Transformer感知上下文語境的能力怎樣呢?我們做了如下實驗:選擇6個不同型別的網站,分別是(0)新浪部落格,(1)道客巴巴,(2)寶寶樹,(3)56網,(4)大眾點評和(5)土巴兔。每個網站確定100個互不重複的專屬關鍵詞,例如新浪部落格的專屬關鍵詞是“部落格”、“口述”等,道客巴巴是“彙報”、“文獻”等,寶寶樹是“試紙”、“分泌物”等。接下來,對每個網站分別選擇含有專屬關鍵詞的網頁標題,並利用self multi-head attention對這些網頁標題進行處理。為了視覺化顯示self multi-head attention的語義分析能力,我們採用了T-SNE演算法對這些專屬關鍵詞的語義向量進行了降維。
如圖3(a)所示,在沒有經過self multi-head attention之前,這些專屬關鍵詞的語義向量的區別並不大(各個顏色的散點並沒有被明確區分成簇)。但是經過了兩層self multi-head attention操作後,這些關鍵詞的語義被明顯區分開了。
那麼圖3背後的道理是什麼呢?經過self multi-head attention之前,網頁標題中不同詞之間沒有任何的相關性操作,即該語義向量中並沒有任何的上下文的資訊;經過self multi-head attention之後,由於attention操作(具體見上一節),這些關鍵詞的語義中包含了上下文的資訊。因為不同型別的(如新浪部落格和道客巴巴)網頁標題的上下文語境會有巨大差別,所以經過self multi-head attention之後,語義向量會被分在不同的簇內。
總結上文,圖3的結果顯示了IR-Transformer具有很強的感知上下文語境的能力,因此該模型的檢索能力遠超DSSM、KNRM等傳統深度資訊檢索模型,甚至超越瞭如RNN、CNN等經典的模型。可以想見,對於在本節開頭提出的“看病”的查詢和“治病”的網頁之間的匹配問題,IR-Transformer會表現的非常出色。
3 IRGAN模型
3.1 資訊檢索問題的模型訓練
機器學習的基礎理論指出,任何機器學習方法都是由模型、策略以及尋優演算法構成的。其中,模型指的是機器學習方法的框架結構;策略以及尋優演算法主要針對模型的訓練:如何設定損失函式、梯度優化演算法等環節來高效獲得最優的模型引數。換言之,從方法論的角度,為了得到一個高精度的機器學習(深度學習)模型,設計完了模型框架並非大功告成,訓練方法的設計也異常關鍵:我們必須確定模型的有效訓練方法,才能獲得最優模型資料,從而進行結果預測。
對於傳統的訓練方法,輸入給模型的訓練資料會被提前製作好並封裝成為訓練集合。在訓練過程中,模型會從集合中隨機抽樣獲得某條訓練資料。可以想見,採用這樣的訓練方法,訓練資料整體的學習難度就等於被構造的訓練集的學習難度。換言之,訓練難度是靜態的。
然而,模型會隨著訓練而“成長”,靜態的訓練難度不容易獲得最優的訓練模型。這是為什麼呢?舉個例子來解釋:當一個高中生剛開始學習高中知識時,他開始可能會覺得有點難,但後來會越來越適應,並很快掌握了這些知識;當這個高中生畢業後進入了大學,如果他還只學習高中難度的知識,他就學不到什麼新的內容了。對於深度學習的模型訓練,道理亦是如此:一成不變的學習難度難以完全激發模型的潛力。
為了解決訓練集難度不變的問題,搜狗搜尋引入了IRGAN強化學習訓練框架:採用該框架可以動態的提升訓練資料的難度,從而提高訓練效率以及預測精度。
3.2 IRGAN原理
IRGAN模型最初發表在《Irgan: A minimax game for unifying generative and discriminative information retrieval models》[[vi]]。該模型脫胎於在圖片生成領域得到廣泛應用的生成對抗網路(Generative Adversarial Network,GAN)。
為了更好地理解IRGAN的工作機制,我們首先介紹GAN。GAN是一種強化學習方法,其基本思想是讓模型在對抗中學習訓練樣本的特徵。GAN由生成器(generator,記為G)和判別器(discriminator,記為D)組成。以圖片生成領域的上色問題為例,為了訓練GAN,我們需要一系列彩色圖片以及與彩色圖片對應的黑白圖片。生成器以黑白圖片輸入,利用CNN等神經網路結構,生成黑白上色的彩色圖片。此後,生成器將生成的彩色圖片(或者說偽彩色照片)與真實的彩色圖片一起提交給判別器,讓其從中選擇哪個是真實的彩色圖片。如果判別器選錯了,判別器將會受到懲罰;反之如果判別器選對了,生成器將會受到懲罰。在GAN的訓練過程中,生成器和判別器會動態的尋找彼此的弱點,並不斷增強自身。在訓練結束後,生成器為模型有效的部分:生成器會將待上色的黑白照片處理成為逼真的彩色照片。
對於IRGAN而言,其設計思想與傳統的GAN大同小異:同樣是利用生成器和判別器之間的博弈來讓兩者相輔相成,共同成長。然而,由於IR的任務並不是生成以假亂真的虛假網頁,而是返回更準確的檢索結果,所以IRGAN的模型架構、訓練方法、訓練資料構造均與傳統的GAN有一定差別。
3.3 IRGAN訓練框架
IRGAN的訓練資料必須滿足一定的格式要求。比如,每條訓練資料要包括一個查詢語句query以及多個(個數大於2)與查詢相關的網頁資料。此外,每條訓練資料還要在多個網頁資料中標明哪個與本條query最為相關。記與當前查詢最為相關的網頁為doc+,其他網頁資訊為doc-,那麼訓練集的格式即為(query, doc+, doc-, doc-, … ,doc-)。
如圖4所示,IRGAN的訓練過程可分為判別器的訓練和生成器的訓練兩部分。在訓練判別器時,生成器首先會拿到形如(query, doc+, doc-, doc-, … ,doc-)的初始資料。為了最大程度的欺騙判別器,生成器會從諸多doc-中挑選一個它認為與查詢最相關的網頁資料,並將這個doc-與doc+(實際上最相關的網頁資料)拼在一起形成新的資料對(query, doc+, doc-)。判別器會對生成器產生的資料對做出選擇:究竟哪個網頁與查詢最相關。如果判別器選擇錯誤(換言之,被生成器騙到了),那麼它將會被懲罰,從而得到訓練。
必須要指出的是,由於生成器在不斷進化,所以它產生的資料對(query, doc+, doc-)也在不斷髮生改變。該變化即上文所述的“動態對抗使得訓練資料的難度發生變化”。
生成器的前半部分訓練流程基本與判別器的訓練流程一致:生成器獲得原始資料,生成為了欺騙判別器的資料對。此後,當判別器對資料對做出判斷之後,會輸出一個混淆評分給生成器。混淆評分越大意味著判別器越容易被生成器產生的資料所迷惑;反之,評分越小意味著生成器產生的資料並沒有讓判別器特別困擾。該混淆評分會作為生成器的獎勵,指導生成器的優化方向。隨著生成器訓練的推進,它會分析出除了doc+外哪個doc-的語義最接近query,從而更準確的攻擊判別器的選擇盲區並得到更高的獎勵。
IRGAN是一種對抗訓練的模式,有對抗就有強弱(即檢索能力的高低),所以在訓練完成後,我們可以選生成器和判別器中能力更強的那個來進行資訊檢索。
值得一提的是,IRGAN模型規定的是訓練的框架,而沒有對判別器和生成器的內部結構做出任何限定。換言之,任何可用作資訊檢索的深度學習模型都可以當作IRGAN的生成器或者判別器。例如上文介紹的IR-transformer模型就可嵌入IRGAN框架中。
3.4 IRGAN的效果
為了證實IRGAN的確在動態對抗中優化了輸入的訓練集,我們做了如下實驗:對於某一深度資訊檢索模型,我們讓其在普通的訓練模式下訓練一定時間,並將該狀態作為初始狀態進一步進行兩種方式的訓練:(a)繼續進行普通訓練;(b)分別當作IRGAN的生成器和判別器的初始狀態,並讓生成器和判別器進行對抗訓練。
如圖5所示,(a)圖表示採用普通模式得到的預測精度(DCG5)隨訓練的變化,(b)圖表示採用IRGAN模式得到的預測精度隨訓練的變化。圖5(b)中藍色點為生成器的預測精度,綠色點為判別器的預測精度,黑色點為在訓練開始前的預測精度,紅色區域代表生成器訓練的階段。
訓練集由大量的訓練資料組成,從微觀角度,部分訓練資料較難學習,而部分訓練資料較容易被學習。在普通的訓練模式中,模型通過從集合中抽樣獲得訓練資料,所以訓練資料的難度隨機變化,起伏較大。可想而知,以這樣的訓練方式得到的結果的精度也必然是隨機起伏的,恰如圖5(a)所示。不幸的是,當預測精度出現隨訓練時長的隨機性波動,一般也就意味著訓練的效率大幅下降了。
那麼,有沒有什麼辦法可以降低這種隨機性呢?答案就是採用IRGAN訓練框架。在動態對抗下,生成器會學到判別器的弱點,並對原始訓練集進行“提純”,即從4個doc-中選擇一個最難分辨的doc-交給判別器去抉擇。值得注意的是,經過了生成器的提純,判別器得到的訓練資料難度再也不是隨機變化的了。如圖5(b)所示,在IRGAN訓練框架下,生成器和判別器的預測精度具有明確的週期性變化趨勢,且生成器和判別器的能力交替上升和下降。判別器預測精度上升意味著在此階段判別器很好地“擊敗了”生成器;反之,如果預測精度下降,意味著在此階段判別器完全被搞迷糊了,學錯了很多“知識”。
精度的週期性波動取代隨機性波動說明了IRGAN訓練模式對訓練資料提純的有效性。換言之,將深度學習模型嵌入到IRGAN框架下再進行訓練具有大幅提高訓練效率、充分發掘模型能力等優勢。我們的研究結果顯示,達到同樣的資訊檢索精度,使用IRGAN框架可以節省一半甚至更多的訓練時間。
4 總結與展望
隨著學術界對深度學習研究的不斷深入,優秀的演算法和技術手段在不斷湧現。本文介紹的IR-transformer模型和IRGAN訓練框架就是近期學界的新鮮成果。
然而必須要指出的是,雖然資訊檢索中的很多問題可以利用深度學習模型較好的解決,但是還有大量的問題亟待研究。比如,深度學習的模型訓練需要大量的高質量資料(data-hungry),如何通過使用者點選或者其他行為得到足夠純淨的訓練集是決定深度學習模型能力強弱的重要難題;此外,未來的深度學習模型還需考慮更多樣的搜尋需求,比如考慮使用者的個性化特點,搜尋產生的時間、地點,使用者的搜尋歷史等資訊。
道路雖然曲折,但前途依然光明。隨著大資料技術的不斷髮展以及對深度學習、機器學習演算法研究的不斷深入,我們有理由相信,未來的搜尋引擎一定會越發智慧化、個性化,伴隨在人們上網衝浪的點滴時刻。
參考文獻:
[[i]] Vaswani A, Shazeer N, Parmar N, Uszkoreit J, Jones L, Gomez AN, et al., editors. Attention is all you need. Advances in Neural Information Processing Systems; 2017.
[[ii]] Parmar N, Vaswani A, Uszkoreit J, Kaiser Ł, Shazeer N, Ku A. Image Transformer. arXiv preprint arXiv:180205751. 2018.
[[iii]] Vaswani A, Bengio S, Brevdo E, Chollet F, Gomez AN, Gouws S, et al. Tensor2tensor for neural machine translation. arXiv preprint arXiv:180307416. 2018.
[[iv]] Dehghani M, Gouws S, Vinyals O, Uszkoreit J, Kaiser Ł. Universal Transformers. arXiv preprint arXiv:180703819. 2018.
[[v]] Cer D, Yang Y, Kong S-y, Hua N, Limtiaco N, John RS, et al. Universal sentence encoder. arXiv preprint arXiv:180311175. 2018.
[[vi]] Wang J, Yu L, Zhang W, Gong Y, Xu Y, Wang B, et al., editors. Irgan: A minimax game for unifying generative and discriminative information retrieval models. Proceedings of the 40th International ACM SIGIR conference on Research and Development in Information Retrieval; 2017: ACM.