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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

入門(mén)自然語(yǔ)言處理的基本任務(wù)——文本匹配

深度學(xué)習(xí)自然語(yǔ)言處理 ? 來(lái)源:NLP情報(bào)局 ? 作者:Giant ? 2021-05-31 11:51 ? 次閱讀

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

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

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

開(kāi)源代碼:

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

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

問(wèn)題1:“輕微感冒需不需要吃藥?”

問(wèn)題2:“輕微感冒需要吃什么藥?”

問(wèn)題1關(guān)心“是否得吃藥”,問(wèn)題2關(guān)心“該吃什么藥”,側(cè)重點(diǎn)不同所以意思不同。

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

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

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

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

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

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

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

但這種方式并沒(méi)有提升最終結(jié)果。我覺(jué)得原因有2個(gè):

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

詞向量沒(méi)有針對(duì)醫(yī)療場(chǎng)景訓(xùn)練,包含的醫(yī)療實(shí)體很少

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

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

基于語(yǔ)言模型:word2vec/glove詞向量、BERT

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

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

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

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

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

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

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

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

文本RNN(TextRCNN)相比TextCNN,TextRCNN的模型結(jié)構(gòu)看起來(lái)復(fù)雜一些。

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

首先通過(guò)詞向量獲得字符編碼 ,隨后將其通過(guò)雙向RNN學(xué)習(xí)上下文特征,編碼得到兩個(gè)方向的特征。

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

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

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

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

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

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

讀者可以在“NLP情報(bào)局”后臺(tái)回復(fù)“文本匹配”直接下載模型論文。

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

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

標(biāo)簽平滑

自蒸餾

文本對(duì)抗訓(xùn)練[7]

模型融合

特征篩選

使用多個(gè)學(xué)習(xí)率[8]

針對(duì)這次文本匹配任務(wù),數(shù)據(jù)增強(qiáng)、標(biāo)簽平滑、模型融合、多學(xué)習(xí)率都被證明是有效的。

04 總結(jié)過(guò)去將近1年的天池“新冠疫情相似句對(duì)判定大賽”,任務(wù)并不復(fù)雜,是入門(mén)NLP項(xiàng)目實(shí)戰(zhàn),提升編程能力的很好鍛煉機(jī)會(huì)。

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

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 神經(jīng)網(wǎng)絡(luò)

    關(guān)注

    42

    文章

    4726

    瀏覽量

    100340
  • 數(shù)據(jù)集
    +關(guān)注

    關(guān)注

    4

    文章

    1199

    瀏覽量

    24594
  • nlp
    nlp
    +關(guān)注

    關(guān)注

    1

    文章

    483

    瀏覽量

    21976

原文標(biāo)題:天池NLP賽道top指南

文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語(yǔ)言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

    圖像識(shí)別技術(shù)包括自然語(yǔ)言處理

    圖像識(shí)別技術(shù)與自然語(yǔ)言處理是人工智能領(lǐng)域的兩個(gè)重要分支,它們?cè)诤芏喾矫嬗兄芮械穆?lián)系,但也存在一些區(qū)別。 一、圖像識(shí)別技術(shù)與自然語(yǔ)言處理的關(guān)系 1.1 圖像識(shí)別技術(shù)的定義 圖像識(shí)別技術(shù)
    的頭像 發(fā)表于 07-16 10:54 ?526次閱讀

    nlp自然語(yǔ)言處理的主要任務(wù)及技術(shù)方法

    自然語(yǔ)言處理(Natural Language Processing,簡(jiǎn)稱(chēng)NLP)是人工智能和語(yǔ)言學(xué)領(lǐng)域的一個(gè)分支,它研究如何讓計(jì)算機(jī)能夠理解、生成和處理人類(lèi)
    的頭像 發(fā)表于 07-09 10:26 ?630次閱讀

    nlp自然語(yǔ)言處理模型怎么做

    自然語(yǔ)言處理(Natural Language Processing,簡(jiǎn)稱(chēng)NLP)是人工智能領(lǐng)域的一個(gè)重要分支,它涉及到計(jì)算機(jī)對(duì)人類(lèi)語(yǔ)言的理解和生成。隨著深度學(xué)習(xí)技術(shù)的發(fā)展,NLP領(lǐng)域取得了顯著
    的頭像 發(fā)表于 07-05 09:59 ?446次閱讀

    自然語(yǔ)言處理技術(shù)有哪些

    自然語(yǔ)言處理(Natural Language Processing,簡(jiǎn)稱(chēng)NLP)是人工智能領(lǐng)域的一個(gè)分支,它致力于使計(jì)算機(jī)能夠理解、解釋和生成人類(lèi)語(yǔ)言。自然語(yǔ)言
    的頭像 發(fā)表于 07-03 14:30 ?792次閱讀

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

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

    自然語(yǔ)言處理技術(shù)的核心是什么

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

    自然語(yǔ)言處理是什么技術(shù)的一種應(yīng)用

    自然語(yǔ)言處理(Natural Language Processing,簡(jiǎn)稱(chēng)NLP)是人工智能和語(yǔ)言學(xué)領(lǐng)域的一個(gè)分支,它涉及到使用計(jì)算機(jī)技術(shù)來(lái)處理、分析和生成
    的頭像 發(fā)表于 07-03 14:18 ?478次閱讀

    自然語(yǔ)言處理包括哪些內(nèi)容

    自然語(yǔ)言處理(Natural Language Processing,簡(jiǎn)稱(chēng)NLP)是人工智能領(lǐng)域的一個(gè)重要分支,它涉及到計(jì)算機(jī)與人類(lèi)語(yǔ)言之間的交互。NLP的目標(biāo)是讓計(jì)算機(jī)能夠理解、生成和處理
    的頭像 發(fā)表于 07-03 14:15 ?615次閱讀

    自然語(yǔ)言列舉法描述法各自的特點(diǎn)

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

    自然語(yǔ)言處理屬于人工智能的哪個(gè)領(lǐng)域

    自然語(yǔ)言處理(Natural Language Processing,簡(jiǎn)稱(chēng)NLP)是人工智能(Artificial Intelligence,簡(jiǎn)稱(chēng)AI)領(lǐng)域的一個(gè)重要分支。它涉及到計(jì)算機(jī)與人類(lèi)語(yǔ)言
    的頭像 發(fā)表于 07-03 14:09 ?924次閱讀

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

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

    自然語(yǔ)言處理技術(shù)的原理的應(yīng)用

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

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

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

    2023年科技圈熱詞“大語(yǔ)言模型”,與自然語(yǔ)言處理有何關(guān)系

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