信息檢索&FAQ硬核技術!飛槳開源百度自研SimNet模型

2021-01-08 飛槳深度學習學院

導讀:飛槳PaddlePaddle致力於讓深度學習技術的創新與應用更簡單。飛槳開源的百度自研SimNet-BOW-Pairwise語義匹配模型,在真實的FAQ問答場景中,比其他基於字面的相似度方法AUC提升了5%以上。在公開語義匹配數據集(LCQMC)進行評測準確率也達到了0.7532,性能超越同等複雜的CBOW基線模型。SimNet 顯著改善了長冷 query 的搜索效果,提升了搜索智能化的水平,在百度搜索以及其它產品線廣泛應用。

1.文本語義匹配

文本語義匹配是自然語言處理中一個重要的基礎問題,NLP領域的很多任務都可以抽象為文本匹配任務。例如,信息檢索可以歸結為查詢項和文檔的匹配,問答系統可以歸結為問題和候選答案的匹配,對話系統可以歸結為對話和回復的匹配。如何提升文本匹配的準確度,是自然語言處理領域的一個重要挑戰。

讓我們來看一個簡單的例子,比較各候選句子哪句和原句語義更相近

原句:「車頭如何放置車牌」

比較句1:「前牌照怎麼裝」比較句2:「如何辦理北京車牌」比較句3:「後牌照怎麼裝」

使用文本匹配(這裡使用SimNet)分別計算原句與三個比較句的相似度,結果如下。

(1)比較句1與原句,雖然句式和語序等存在較大差異,但是所表述的含義幾乎相同,所以SimNet給出了較高的相似度,為0.761517;

(2)比較句2與原句,雖然存在「如何」 、「車牌」等共現詞,但是所表述的含義完全不同,所以SimNet給出了很低的相似度,為0.486205;

(3)比較句3與原句,二者討論的都是如何放置車牌的問題,只不過一個是前牌照,另一個是後牌照。二者間存在一定的語義相關性,所以SimNet給出了介於比較句1和比較句2之間的相似度得分,為0.697181。

通過這個例子我們不難窺探出語義匹配的強大的能力,它在搜索優化、推薦系統、快速檢索排序、智能客服上都有著極大的用武之地!

信息檢索:在信息檢索領域的很多應用中,都需要根據原文本來檢索與其相似的其他文本,使用場景非常普遍。除純文本檢索外,SimNet還適用於通過標籤來檢索圖片、視頻等場景,大大提高檢索效率。新聞推薦:通過用戶剛剛瀏覽過的新聞標題,自動檢索出其他的相似新聞,個性化地為用戶做推薦,從而增強用戶粘性,提升產品體驗。智能客服:用戶輸入一個問題後,自動為用戶檢索出相似的問題和答案,節約人工客服的成本,提高效率。

2.SimNet表現出眾

SimNet 在語義表示上沿襲了隱式連續向量表示的方式,但對語義匹配問題在深度學習框架下進行了 End-to-End 的建模,將詞語的 Embedding 表示與句篇的語義表示、語義的向量表示與匹配度計算、文本對的匹配度計算與 pair-wise 的有監督學習全部統一在一個整體框架內。

在實際應用場景下,海量的用戶點擊行為數據可以轉化大規模的弱標記數據,搭配我們研發的高效並行訓練算法,大數據訓練的 SimNet 顯著超越了主題模型類算法的效果,並首次實現了可完全取代基於字面匹配的策略,而且可以直接建模非相似度類的匹配問題。在網頁搜索任務上的初次使用即展現出極大威力,帶來了相關性的明顯提升。

我們基於百度海量搜索數據訓練的SimNet-BOW-Pairwise語義匹配模型,在一些真實的FAQ問答場景中,比其他基於字面的相似度方法AUC提升了5%以上。

基於百度自建測試集(包含聊天、客服等數據集)和公開語義匹配數據集(LCQMC)進行評測,結果如下表所示。

其中,LCQMC數據集以Accuracy為評測指標,而pairwise模型的輸出為相似度,因此採用0.958作為分類閾值。相比於基線模型中網絡結構同等複雜的CBOW模型(準確率為0.737),SimNet-BOW-Pairwise模型將準確率提升到了0.7532。

總結來說,SimNet有三大特點:

算法效果好:百度搜索等海量用戶數據為SimNet相似度算法提供了豐富的指導信息,模型效果優於已公開的主流算法。語義級匹配:利用詞向量技術解決關鍵詞匹配失敗的問題,可以有效得到同義詞、近義詞之間的相似度,泛化能力好。深度學習技術:基於深度神經網絡,對單詞語義到短文本語義到組合過程進行建模,模型更強大,表達效果更好。

3.SimNet模型原理介紹

如下圖所示,SimNet模型主要分為輸入層、表示層和匹配層三個部分。

(1)輸入層

該層通過 look up table 將文本詞序列轉換為 word embedding 序列。

(2)表示層

該層主要功能是由詞到句的表示構建,或者說將序列的孤立的詞語的 embedding 表示,轉換為具有全局信息的一個或多個低維稠密的語義向量。最簡單的是 Bag of Words(BOW)的累加方法,除此之外,我們還在 SimNet 框架下研發了對應的序列卷積網絡(CNN)、循環神經網絡(RNN)等多種表示技術。當然,在得到句子的表示向量後,也可以繼續累加更多層全連接網絡,進一步提升表示效果。

(3)匹配層

該層利用文本的表示向量進行交互計算,根據應用的場景不同,我們研發了Representation-based Match和Interaction-based Match兩種匹配算法。

1)Representation-based Match

該方式下,更側重對表示層的構建,儘可能充分地將待匹配的兩端都轉換到等長的語義表示向量裡。然後在兩端對應的兩個語義表示向量基礎上,進行匹配度計算,我們設計了兩種計算方法:一種是通過固定的度量函數計算,實際中最常用的就是 cosine 函數,這種方式簡單高效,並且得分區間可控意義明確;還有就是將兩個向量再過一個多層感知器網絡(MLP),通過數據訓練擬合出一個匹配度得分,這種方式更加靈活擬合能力更強,但對訓練的要求也更高。

2)Interaction-based Match

該方式更強調待匹配兩端更充分的交互,以及交互基礎上的匹配。所以不會在表示層將文本轉換成唯一的一個整體表示向量,而一般會保留和詞位置相對應的一組表示向量。下面介紹該方式下我們實際應用的一種的 SimNet 模型變體。

首先基於表示層採用雙向 RNN 得到的文本中間位置表示,和詞位置對應的每個向量體現了以本詞語為核心的一定的全局信息;然後對兩段文本按詞對應交互,由此構建兩段文本之間的 matching matrix(當然也可以構建多組 matrix,形成 tensor),這裡面包括了更細緻更局部的文本交互信息;基於該局部匹配特徵矩陣,我們進一步使用卷積來提取高級的從單詞到 N-Gram 多層次的匹配特徵,再經過 pooling 和 MLP 得到最終匹配得分。

Interaction-based Match 匹配方法匹配建模更加細緻、充分,一般來說效果更好一些,但計算成本會增加非常多,適合一些效果精度要求高但對計算性能要求不高的應用場景。大部分場景下我們都會選擇更加簡潔高效的 Representation-based 匹配方式。

訓練階段採用上圖所示的 pair-wise RankingLoss框架,以網頁搜索任務為例,假設搜索查詢文本為 Q,相關的一篇文檔為 D+,不相關的一篇文檔為 D-,二者經過 SimNet 網絡得到的和 Q 的匹配度得分分別為 S(Q,D+) 和 S(Q,D-),而訓練的優化目標就是使得 S(Q,D+)>S(Q,D-)。實際中,我們一般採用 Max-Margin 的 Hinge Loss:max{0,margin-(S(Q,D+)-S(Q,D-))}

這種 loss 簡潔、高效,還可以通過 margin 的不同設定,來調節模型得分的區分度。

4.飛槳SimNet快速上手

4.1 克隆項目

使用git命令克隆工具集代碼庫到本地。

git clone https://github.com/PaddlePaddle/models.git

cd models/PaddleNLP/similarity_net

4.2 數據準備

下載經過預處理的數據。

wget--no-check-certificate https://baidu-nlp.bj.bcebos.com/simnet_dataset-1.0.0.tar.gz

tar xzf simnet_dataset-1.0.0.tar.gz

運行上述命令後,data目錄下會生成訓練集數據示例、測試集數據示例,以及對應詞索引字典(term2id.dict)。

4.3 模型準備

我們開源了基於大規模數據訓練好的pairwise模型(基於bow模型訓練),並提供兩種下載方式。

方式一:基於PaddleHub命令行工具(PaddleHub安裝方式)

mkdir model_files

hub download simnet_bow_pairwise --output_path ./

tar xzf simnet_bow-pairwise-1.0.0.tar.gz-C ./model_files

方式二:直接下載

mkdir model_files

wget--no-check-certificate https://baidu-nlp.bj.bcebos.com/simnet_bow-pairwise-1.0.0.tar.gz

tar xzf simnet_bow-pairwise-1.0.0.tar.gz -C ./model_files

模型將保存在./model_files/simnet_bow_pairwise_pretrained_model/下。

4.4 模型評估

我們公開了自建的測試集,包括百度知道、ECOM、QQSIM和UNICOM四個數據集。

下面基於上面的預訓練模型,來評估模型的效果。

首先進入evaluate目錄。

cd evaluate

依次執行以下命令,獲取測試集評估結果。

sh evaluate_ecom.sh

sh evaluate_qqsim.sh

sh evaluate_zhidao.sh

sh evaluate_unicom.sh

也可以指定./run.sh中的TEST_DATA_PATH的值,通過下列命令評估自己指定的測試集。

sh run.sh eval

4.5 模型推測

基於上面的預訓練模型,運行下面的命令,進行推測並將推測結果保存到本地。

sh run.sh infer

4.6 訓練自己的模型

可以基於示例數據構建訓練集和開發集,重新訓練自己的模型。命令如下:

sh run.sh train

開發者還可以指定run.sh中train函數裡的INIT_CHECKPOINT的路徑,載入開源的bow-pariwise模型進行熱啟動訓練,適合某些場景下訓練數據量較少的情況。趕快自己動手嘗試下吧!

相關焦點

  • Google AI地標檢索識別競賽雙料獲勝方案|飛槳PaddlePaddle開源
    機器之心發布來源:百度飛槳近日,百度視覺團隊基於飛槳(PaddlePaddle)深度學習平臺,自主研發的地標檢索/識別解決方案,在 Google Landmark Retrieval 2019[1] 和 Google Landmark Recognition 2019[2] 兩個任務中都斬獲第二名
  • 百度飛槳躍居世界第二、國內第一!看中國AI領頭雁百度的開源進擊之路
    GitHub 標星 47000+ 百度飛槳成為國產開源「流量擔當」   百度飛槳於2016年9月正式宣布開源,這使得百度成為繼谷歌、Facebook、IBM後第四家將AI技術開源的公司。作為國內AI開源的扛把子,百度飛槳集深度學習核心訓練和推理框架、基礎模型庫、端到端開發套件和豐富的工具組件於一體,並根據本土化特點將開源框架與應用層面做了更好的結合,旨在打造自主可控的人工智慧作業系統,持續賦能廣大開發者,這意味著個人開發者也可以利用飛槳提供的平臺部署自己的深度學習模型。
  • 重磅發布開源框架、生物計算平臺螺旋槳,百度飛槳交了年終成績單
    可見飛槳技術與生態發展的步調越來越快。飛槳是一個開源的平臺,既受益於開源,也反過來促進了開源社區的發展。在談到開源開放的重要性時,百度 CTO 王海峰表示,「開源開放對人類社會過去幾百年科學和技術的發展起到非常重要的作用,讓我們可以更快追蹤到最新的技術進展,並將改進意見以及創新思想迅速進行反饋,形成一個正循環,進一步推動科技的創新迭代。
  • 史上最全解讀|飛槳模型庫重大升級,主流算法模型全覆蓋
    飛槳模型庫,包含智能視覺(PaddleCV),智能文本處理(PaddleNLP),智能語音(PaddleSpeech)和智能推薦(PaddleRec)四大領域,飛槳官方支持 100 多個經過產業實踐長期打磨的主流模型,其中包括在國際競賽中奪得冠軍的模型;同時開源開放
  • 百度飛槳秀出最新成績單,產業應用、人才培養、開源生態全面繁榮
    可見飛槳技術與生態發展的步調越來越快。八大亮點發布,夯實AI技術底座,助力產業智能化新基建浪潮下,各行各業都拉開了智能化升級的大幕。百度集團副總裁、深度學習技術及應用國家工程實驗室副主任吳甜通過三組數據揭示出AI加速下沉的產業洞察。
  • 百度開源業內首個口罩人臉檢測及分類模型
    2月13日,百度宣布免費開源業內首個口罩人臉檢測及分類模型。該模型可以有效檢測在密集人流區域中攜帶和未攜戴口罩的所有人臉,同時判斷該者是否佩戴口罩。目前已通過飛槳PaddleHub開源出來,廣大開發者用幾行代碼即可快速上手,免費調用。
  • 百度飛槳PGL-UniMP刷新3項任務記錄 登頂圖神經網絡權威榜單OGB
    近日,百度PGL團隊創新提出統一消息傳遞圖神經網絡模型UniMP,在三大半監督節點分類數據集均榮登榜首。UniMP每一次隨機將一定量的節點標籤掩碼為未知,用部分已有的標註信息、圖結構信息以及節點特徵來還原訓練數據的標籤。最終,UniMP在OGB上取得SOTA效果,並在論文的消融實驗上,驗證了方法的有效性。  屠榜背後:飛槳圖學習框架PGL加持
  • 基於飛槳PaddlePaddle的多種圖像分類預訓練模型強勢發布
    當前飛槳分類模型庫提供了VGG11,VGG13,VGG16以及VGG19四個網絡結構預訓練模型。當前飛槳分類模型庫提供的InceptionV4由於採用了label_smoothing與mixup混合訓練的方式,將論文的指標提高了近0.8個點,成為目前開源最好的InceptonV4的預訓練模型。
  • 百度飛槳PaddleCV全景圖曝光 視覺技術能力三方面重磅更新
    近日,國內唯一開源開放、功能完備的深度學習開源平臺——百度飛槳,在智能視覺領域實現重大升級。 此次,PaddleCV最新全景圖首度曝光。其中,PaddleDetection、PaddleSeg、PaddleSlim和Paddle Lite重磅升級;全新發布3D視覺和PLSC超大規模分類2項能力。
  • 百度飛槳發布「大航海」計劃:5億資源加碼高校人才培養
    先期將開源螺旋槳生物計算開源工具集,提供包括RNA二級結構預測、大規模的分子預訓練、DTI藥物靶點親和力預測以及ADMET成藥性預測等在內的新藥研發和疫苗設計環節的核心能力,幫助生物信息學、計算機交叉學科背景的學習者、研究者和合作夥伴,更便利地構建AI算法模型。
  • RestNet50預訓練模型top1近80%,基於飛槳PaddlePaddle的多種圖像...
    百度視覺技術團隊,基於百度深度學習平臺飛槳,不僅復現了這些技巧,而且對知識蒸餾進行改進,將ResNet50的top1識別準確率從79.29%提升到79.84%,同時將這些技巧用於訓練其他分類網絡結構,提升這些網絡預訓練模型的能力。以下將會對網絡結構微調和知識蒸餾兩部分進行介紹。
  • 基於複數神經網絡首發量子機器學習開發工具 「量槳」,飛槳布局...
    AI工業大生產時代到來,深度學習越來越肩負著人工智慧技術突破與行業落地的重任。5月20日,「WAVE SUMMIT 2020」深度學習開發者峰會在線召開,作為中國深度學習技術極客的年度盛宴,該峰會由深度學習技術及應用國家工程實驗室與百度聯合主辦,而百度飛槳作為中國首個開源開放、功能完備的產業級深度學習平臺又一次迎來全平臺重磅升級。
  • 開啟開源新次元!飛槳PPDE計劃初啼破長空
    百度飛槳PPDE:開源新舞臺在2020年5月20日WAVE SUMMIT 2020深度學習開發者峰會上,百度AI技術生態部總監劉倩表示:「我們希望有越來越多的開發者、技術專家參與到飛槳社區建設,帶動更多開發者踐行開源理念,引領技術潮流,共建繁榮社區。」
  • GTC大會飛槳專家演講實錄:簡單易用的飛槳分布式訓練功能升級
    12月15日-19日,GTC中國大會首次以線上大會的形式與開發者相見,共組織265場技術演講,演講者分別來自百度、阿里、騰訊、字節跳動等眾多知名企業與清華大學、中科院計算所等知名高校。百度飛槳也貢獻了四個主題演講,現在為您帶來飛槳大規模分布式訓練進展與應用的演講實錄。課程連結:https://nvidia.gtcevent.cn/forum/watch?
  • 百度AI進入「光速」質變時刻 硬核技術實力狂攬23項世界冠軍
    上周,關注度頗高的預訓練模型百度ERNIE在國際權威數據集GLUE中榮登榜首,並世界首次突破90大關刷新榜單歷史,超越微軟、谷歌等一眾國際頂級模型,在國際舞臺上展示了中國的AI技術硬核。不單如此,細細數來,百度AI在國際頂會賽事中、各項AI競賽中,百度AI已成為冠軍的「常客」,一年包攬了23項國內外競賽冠軍。
  • 23個系列分類網絡,10萬分類預訓練模型,這是飛槳PaddleClas百寶箱
    機器之心機器之心發布機器之心編輯部如何訓練出優秀的圖像分類模型?飛槳圖像分類套件 PaddleClas 來助力。今天咱們來聊聊計算機視覺領域最核心的技術之一——圖像分類。
  • 全國大學生智能汽車競賽創意組全國總決賽落幕 百度飛槳助AI新秀勇敢啟程
    近日,由中國自動化學會主辦,百度承辦的第十五屆全國大學生智能汽車競賽創意組全國總決賽在南京信息工程大學圓滿落幕。在本次比賽中,百度作為國內人工智慧領軍者,提供了目前國內首個開源開放、技術領先、功能完備的產業級深度學習平臺——百度飛槳,幫參賽選手高效、靈活地完成高精度的模型定製,以賽促教,助力培養創新綜合人才。
  • 定製化服務降低模型部署門檻 百度AI快車道解析飛槳EdgeBoard軟硬...
    11月16日,百度AI快車道——企業深度學習實戰營來到硬體企業雲集的深圳,與當地開發者一起分享和體驗了飛槳Paddle Lite在實際業務中的應用。百度多位技術大咖在本次活動中擔任講師,詳細解讀了飛槳 Paddle Lite、及其相關的服務工具EasyEdge、硬體產品EdgeBoard的技術特點、使用方法和相關應用。
  • 圍繞百度飛槳首設自主平臺賽道
    吳甜表示,因為搜尋引擎天然就需要處理大量的數據,百度通過數據工程將數據進行存儲管理,從大數據中抽取出來信息,進一步提煉出知識,最終形成智能的決策參考推薦。同時,搜尋引擎最開始的時候就在使用以自然語言處理為代表的人工智慧技術。經過十餘年AI技術積累和業務實踐,百度人工智慧技術沉澱為百度大腦。百度大腦由基礎層、感知層、認知層、平臺與生態以及AI安全組成。
  • 深度學習開發者的情人節520,飛槳將帶來哪些大消息
    在深度學習開源路上,百度飛槳始終保持著高頻升級迭代。由深度學習技術及應用國家工程實驗室與百度聯合主辦的WAVE SUMMIT 2020深度學習開發者峰會,定檔5月20日召開,並首次採用線上直播的方式舉辦。