0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

入門自然語言處理的基本任務——文本匹配

深度學習自然語言處理 ? 來源:NLP情報局 ? 作者:Giant ? 2021-05-31 11:51 ? 次閱讀

2020年初,新冠疫情席卷全球。除了“待在家,不亂跑”,我想還能從哪為抗擊疫情出點微薄之力呢?

碰巧室友推送了一個天池公益賽“新冠疫情相似句對判定大賽”,秉持“重在參與”的心態(tài)參加了比賽。經(jīng)過半個月的努力,最終結果勉強不錯(第6),收割了一臺Kindle。

2021年1月,疫情形勢依然嚴峻,幸運的是國家不僅及時穩(wěn)住了疫情,還研發(fā)出了有效的疫苗。借助疫情主題的比賽,我希望幫助更多讀者,入門自然語言處理的基本任務——文本匹配。

開源代碼:

https://github.com/yechens/COVID-19-sentence-pair

01 數(shù)據(jù)分析任務背景非常直觀,主辦方給定了“肺炎”、“支氣管炎”、“上呼吸道感染”等醫(yī)療背景下的用戶真實提問,要求選手通過算法識別任意2個問題,是否表達同一個意思。舉例:

問題1:“輕微感冒需不需要吃藥?”

問題2:“輕微感冒需要吃什么藥?”

問題1關心“是否得吃藥”,問題2關心“該吃什么藥”,側重點不同所以意思不同。

數(shù)據(jù)集樣本都是三元組(query1, query2, label)。為了降低難度,每一個問題的長度被控制在20字以內。

比賽的訓練集、驗證集分別包含8746、2001條三元組。我們從dev中隨機保留了800條樣本作為最終dev,其余均加入訓練。

數(shù)據(jù)增強拿到數(shù)據(jù)簡單分析后,我發(fā)現(xiàn)數(shù)據(jù)集已經(jīng)過清洗,竟然異常的干凈整齊(沒有雜亂的符號、不通順的句子),label分布幾乎也接近1:1。

再觀察數(shù)據(jù),相同的query1總是按順序排列在一起,隨后跟著不同的query2。這種分布很容易想到一種數(shù)據(jù)增強策略:相似傳遞性。

A 《-》 B 相似 and A 《-》 C 相似 =》 B 《-》 C 相似

最終我額外獲得了5000條高質量的數(shù)據(jù),比賽準確率因此提升了0.5%。

實體替換此外,我們也嘗試了訓練一個NER模型挖掘文本中的醫(yī)療實體,如“胸膜炎”、“肺氣腫”,再通過word2vec查找最接近的實體進行替換。

但這種方式并沒有提升最終結果。我覺得原因有2個:

1W條樣本規(guī)模偏小,NER模型識別誤差較大

詞向量沒有針對醫(yī)療場景訓練,包含的醫(yī)療實體很少

02 匹配方法實現(xiàn)文本匹配有非常多簡單又實用的方法,例如:

基于字符統(tǒng)計:字符串匹配、編輯距離、Jaccards距離

基于語言模型:word2vec/glove詞向量、BERT

基于神經(jīng)網(wǎng)絡:孿生網(wǎng)絡、TextCNN、DSSM、FastText等

由于比賽需要盡可能獲得高分,這里主要介紹基于神經(jīng)網(wǎng)絡和BERT的文本匹配算法。

BERT[1]是一種預訓練語言模型,通過海量文本、Transformer架構和MLM訓練任務在眾多NLP任務上取得了優(yōu)異成果。對BERT不了解的讀者,可以參考我之前的文章“從BERT、XLNet到MPNet,細看NLP預訓練模型發(fā)展變遷史”[2]。

比賽中我們測試了5-6種不同的神經(jīng)網(wǎng)絡方法,并最終選擇了3種在dev上表現(xiàn)最好的模型加權融合。具體可以參考 文件。

文本CNN(TextCNN)TextCNN是Yoon Kim[3]在2014年提出的用于句子分類的卷積神經(jīng)網(wǎng)絡。文本匹配任務本質上可以理解成二分類任務(0:不相似,1:相似),所以一般的分類模型也能滿足匹配需求。

與圖像中的二維卷積不同,TextCNN采用的是一維卷積,每個卷積核的大小為 (h為卷積核窗口,k為詞向量維度)。文中采用了不同尺寸的卷積核,來提取不同文本長度的特征。

然后,作者對于卷積核的輸出進行最大池化操作,只保留最重要的特征。各個卷積核輸出經(jīng)MaxPooling后拼接形成一個新向量,最后輸出到全連接層分類器(Dropout + Linear + Softmax)實現(xiàn)分類。

我們知道,文本中的關鍵詞對于判斷2個句子是否相似有很大影響,而CNN局部卷積的特效能很好的捕捉這種關鍵特征。同時TextCNN還具有參數(shù)量小,訓練穩(wěn)定等優(yōu)點。

文本RNN(TextRCNN)相比TextCNN,TextRCNN的模型結構看起來復雜一些。

簡單瀏覽論文后,會發(fā)現(xiàn)它的思路其實簡單,粗暴。

首先通過詞向量獲得字符編碼 ,隨后將其通過雙向RNN學習上下文特征,編碼得到兩個方向的特征。

再將詞向量 和 、 拼接得到新向量,輸入經(jīng)tanh函數(shù)激活的全連接網(wǎng)絡。最后,將網(wǎng)絡的輸出最大池化,并輸入另一個全連接分類器完成分類。

RNN模型對于長文本有較好的上下文“記憶”能力,更適合處理文本這種包含時間序列的信息。

BERT+MLP(fine-tune)最后一種方法,直接用語言模型BERT最后一層Transformer的輸出,接一層Dense實現(xiàn)文本匹配。

實驗中我們發(fā)現(xiàn),對最終輸出的每個token特征取平均(MeanPooling)效果好于直接使用首字符“[CLS]”的特征。

模型權重上,崔一鳴等人[5]發(fā)布的中文roberta_wwm_ext_large模型效果要好于BERT_large。

最后,我們根據(jù)這三種模型在dev上的準確率設置了不同比重,通過自動搜索找到最優(yōu)權重組合,在線上測試集取得了96.26%的準確率。

讀者可以在“NLP情報局”后臺回復“文本匹配”直接下載模型論文。

03 漲分trick做一個深度學習主導的算法比賽,除了分析數(shù)據(jù)與模型,一些trick也是獲得高分的重要因素。這里羅列了一些常用策略。

數(shù)據(jù)增強[6]

標簽平滑

自蒸餾

文本對抗訓練[7]

模型融合

特征篩選

使用多個學習率[8]

針對這次文本匹配任務,數(shù)據(jù)增強、標簽平滑、模型融合、多學習率都被證明是有效的。

04 總結過去將近1年的天池“新冠疫情相似句對判定大賽”,任務并不復雜,是入門NLP項目實戰(zhàn),提升編程能力的很好鍛煉機會。

比賽雖然結束了,疫情猶在。大家一定要保護好自己哦!

編輯:jq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴

原文標題:天池NLP賽道top指南

文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    使用LLM進行自然語言處理的優(yōu)缺點

    語言任務,如文本分類、情感分析、機器翻譯等。以下是使用LLM進行NLP的一些優(yōu)缺點: 優(yōu)點 強大的語言理解能力 : LLM通過訓練學習了大量的語言
    的頭像 發(fā)表于 11-08 09:27 ?196次閱讀

    自動發(fā)電控制系統(tǒng)的基本任務

    自動發(fā)電控制系統(tǒng)(Automatic Generation Control,簡稱AGC)在電力系統(tǒng)中扮演著至關重要的角色,其基本任務可以歸納為以下幾個方面:   發(fā)電機輸出功率與總負荷功率匹配
    的頭像 發(fā)表于 10-03 15:03 ?242次閱讀

    圖像識別技術包括自然語言處理

    圖像識別技術與自然語言處理是人工智能領域的兩個重要分支,它們在很多方面有著密切的聯(lián)系,但也存在一些區(qū)別。 一、圖像識別技術與自然語言處理的關系 1.1 圖像識別技術的定義 圖像識別技術
    的頭像 發(fā)表于 07-16 10:54 ?579次閱讀

    nlp自然語言處理基本概念及關鍵技術

    自然語言處理(Natural Language Processing,簡稱NLP)是人工智能領域的一個重要分支,它致力于使計算機能夠理解、解釋和生成人類語言。NLP技術在機器翻譯、情感分析、語音識別
    的頭像 發(fā)表于 07-09 10:32 ?472次閱讀

    nlp自然語言處理的主要任務及技術方法

    自然語言處理(Natural Language Processing,簡稱NLP)是人工智能和語言學領域的一個分支,它研究如何讓計算機能夠理解、生成和處理人類
    的頭像 發(fā)表于 07-09 10:26 ?764次閱讀

    自然語言處理技術有哪些

    自然語言處理(Natural Language Processing,簡稱NLP)是人工智能領域的一個分支,它致力于使計算機能夠理解、解釋和生成人類語言。自然語言
    的頭像 發(fā)表于 07-03 14:30 ?896次閱讀

    自然語言處理模式的優(yōu)點

    得到了廣泛的應用,如搜索引擎、語音助手、機器翻譯、情感分析等。 1. 提高信息獲取效率 自然語言處理技術能夠快速地從大量文本數(shù)據(jù)中提取關鍵信息,幫助用戶節(jié)省查找和篩選信息的時間。例如,搜索引擎通過NLP技術理解用戶的查詢意圖,提
    的頭像 發(fā)表于 07-03 14:24 ?625次閱讀

    自然語言處理技術的核心是什么

    ,廣泛應用于機器翻譯、情感分析、語音識別、智能問答、文本摘要等眾多領域。 自然語言處理技術的發(fā)展可以追溯到20世紀50年代。1950年,圖靈提出了著名的圖靈測試,標志著自然語言
    的頭像 發(fā)表于 07-03 14:20 ?494次閱讀

    自然語言處理是什么技術的一種應用

    自然語言處理(Natural Language Processing,簡稱NLP)是人工智能和語言學領域的一個分支,它涉及到使用計算機技術來處理、分析和生成
    的頭像 發(fā)表于 07-03 14:18 ?557次閱讀

    自然語言處理包括哪些內容

    自然語言處理(Natural Language Processing,簡稱NLP)是人工智能領域的一個重要分支,它涉及到計算機與人類語言之間的交互。NLP的目標是讓計算機能夠理解、生成和處理
    的頭像 發(fā)表于 07-03 14:15 ?678次閱讀

    自然語言列舉法描述法各自的特點

    自然語言文本。在自然語言處理中,列舉法和描述法是兩種常見的方法。 列舉法 列舉法是一種基于規(guī)則的方法,它通過列舉所有可能的情況來解決問題。在自然語言
    的頭像 發(fā)表于 07-03 14:13 ?923次閱讀

    什么是自然語言處理 (NLP)

    理解和處理自然語言文本,從而實現(xiàn)人機交互的流暢和自然。NLP不僅關注理論框架的建立,還側重于實際技術的開發(fā)和應用,廣泛應用于法律、醫(yī)療、教育、安全、工業(yè)、金融等多個領域。
    的頭像 發(fā)表于 07-02 18:16 ?831次閱讀

    自然語言處理技術的原理的應用

    自然語言處理(Natural Language Processing, NLP)作為人工智能(AI)領域的一個重要分支,旨在使計算機能夠理解和處理人類自然語言。隨著互聯(lián)網(wǎng)的普及和大數(shù)據(jù)
    的頭像 發(fā)表于 07-02 12:50 ?405次閱讀

    神經(jīng)網(wǎng)絡在自然語言處理中的應用

    自然語言處理(NLP)是人工智能領域中的一個重要分支,它研究的是如何使計算機能夠理解和生成人類自然語言。隨著人工智能技術的飛速發(fā)展,神經(jīng)網(wǎng)絡在自然語言
    的頭像 發(fā)表于 07-01 14:09 ?414次閱讀

    2023年科技圈熱詞“大語言模型”,與自然語言處理有何關系

    電子發(fā)燒友網(wǎng)報道(文/李彎彎)大語言模型(LLM)是基于海量文本數(shù)據(jù)訓練的深度學習模型。它不僅能夠生成自然語言文本,還能夠深入理解文本含義,
    的頭像 發(fā)表于 01-02 09:28 ?2539次閱讀