<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          廣告場景文本分類任務(wù)樣本優(yōu)化實踐匯總

          共 5623字,需瀏覽 12分鐘

           ·

          2021-09-16 07:34

          導讀:本文是“數(shù)據(jù)拾光者”專欄的第四十篇文章,這個系列將介紹在廣告行業(yè)中自然語言處理和推薦系統(tǒng)實踐。本篇介紹了我們實際項目文本分類任務(wù)樣本優(yōu)化實踐匯總,

          對于希望提升文本分類任務(wù)線上效果的小伙伴可能有所幫助。


          歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明出處以及鏈接,更多關(guān)于自然語言處理、推薦系統(tǒng)優(yōu)質(zhì)內(nèi)容請關(guān)注如下頻道。
          知乎專欄:數(shù)據(jù)拾光者
          公眾號:數(shù)據(jù)拾光者

          摘要:本篇介紹了我們實際項目文本分類任務(wù)樣本優(yōu)化實踐匯總。首先樣本層面優(yōu)化文本分類任務(wù)需要解決如何又快又好的獲取人工標注數(shù)據(jù)集、如何解決樣本不均衡問題和如何獲取更多的訓練樣本三個問題;然后通過主動學習可以又快又好的獲取人工標注數(shù)據(jù)集以及通過損失函數(shù)解決樣本不均衡問題;最后重點介紹了我們的半監(jiān)督和自訓練流程項目,主要包括半監(jiān)督項目的目標以及基本流程。對于希望提升文本分類任務(wù)線上效果的小伙伴可能有所幫助。


          下面主要按照如下思維導圖進行學習分享:


           

          01

          樣本層面優(yōu)化文本分類任務(wù)需要解決的問題

          之前寫過一篇在實際工作中總結(jié)的文本分類項目模型層面的優(yōu)化實踐《廣告行業(yè)中那些趣事系列37:廣告場景中的超詳細的文本分類項目實踐匯總》,本篇總結(jié)下樣本層面的優(yōu)化實踐。樣本層面優(yōu)化文本分類任務(wù)需要解決三個主要問題:

          • 如何又快又好的獲取人工標注數(shù)據(jù)集?NLP文本分類任務(wù)屬于有監(jiān)督學習任務(wù),需要一定數(shù)量的人工標注數(shù)據(jù)集。如何在一定時間內(nèi)利用有限的標注人力獲取更多更高質(zhì)量的標注樣本對于分類器效果的影響至關(guān)重要;

          • 如何解決樣本不均衡問題?很多機器學習任務(wù)中都會遇到樣本不均衡問題,尤其在多層級復雜標簽體系的廣告場景中,實際上我們廣告體系是4級標簽多達幾百個標簽,樣本不均衡問題更加嚴重;

          • 如何獲取更多的訓練樣本?在機器學習尤其是深度學習場景中,訓練樣本的數(shù)量會直接影響分類器效果。通常情況下,訓練樣本的數(shù)量越多得到的模型效果越好,尤其在NLP文本分類任務(wù)中大家主流使用的模型都是BERT預訓練類模型,也就是說模型的差異基本上已經(jīng)很小了,那么決定模型最終效果的主要就是訓練樣本的多少和好壞了。

           

          02

          通過主動學習又快又好獲取人工標注數(shù)據(jù)集

          2.1 主動學習的作用

          上面也說過NLP文本分類任務(wù)屬于有監(jiān)督學習,需要一定數(shù)量的人工標注數(shù)據(jù)作為訓練集。如果不使用主動學習的話,一般是隨機選擇一定數(shù)量的樣本進行標注。實際工作中可能還會結(jié)合一定的業(yè)務(wù)場景,比如在搜索場景中選擇用戶搜索量級較大的query進行標注。這種方法的好處是簡單,但是缺點也很明顯,隨機選擇的樣本可能多樣性較差(選出的樣本可能有很多是部分重復的),而且是模型易于識別的簡單樣本。通過一個簡單的中學生做習題的例子來說明,小明要完成100道數(shù)學題,如果使用隨機選擇策略的話只需要從練習簿中隨機選擇100道題即可。但是如果使用主動學習的策略,我們會選擇習題種類更多(多樣性較好),同時小明容易做錯(模型難于識別的樣本)的100道習題。雖然都是完成100道習題,但是最終的學習效果確差別很大。這里小伙伴們可能要糾結(jié)一個問題,難的數(shù)學題小明可能要花費更多的時間,但是在NLP場景對于一個熟練的標注員來說單條文本標注的時間基本上是相同的。

           

          從上面的例子中可以看出,標注一定數(shù)量的文本,采用不同的樣本選擇策略得到的樣本質(zhì)量是不同的,從而最終得到的分類器效果也是不同的。不僅如此,標注成本是非常昂貴的。總結(jié)下來主動學習的作用就是在標注人力有限的情況下標注高質(zhì)量樣本從而使模型效果更好。

           

          2.2 主動學習基本流程

          主動學習主要包括無標簽數(shù)據(jù)池、樣本選擇策略、標注者、標簽數(shù)據(jù)集和機器學習模型五個核心部件,基本流程有以下幾個步驟:

          • A從無標簽數(shù)據(jù)池中根據(jù)一定的策略選擇標注樣本交給標注專家標注;

          • B標注專家對樣本進行標注并將標注樣本保存到標簽數(shù)據(jù)集中;

          • C構(gòu)建機器學習模型,使用標簽數(shù)據(jù)集作為訓練集進行模型訓練。

           

          主動學習就是不斷的進行上述三個流程,直到分類器效果達到線上要求。主動學習最重要的核心在于樣本選擇策略,也就是如何選擇高價值樣本進行標注。下面是主動學習基本流程圖:

           

          圖1 主動學習基本流程

           

          2.3 主動學習查詢策略的設(shè)計原則

          主動學習最重要的是如何選擇高價值樣本進行標注,這里選擇策略的設(shè)計主要有兩個原則:不確定性原則和差異性原則。不確定性原則很好理解,就是選擇那些模型不容易判別的樣本提交給人工去標注,比如中學生做數(shù)學題選一些比較難并且易錯的題來完成,這樣可以學到更多的知識,相反的長期做簡單題帶來的提升很有限。差異性原則主要是選擇的樣本要具有一定的差異性,比如做的數(shù)學題盡量覆蓋不同的章節(jié)和知識點,這樣才能學到更全面的知識,相反的如果長期做某一章節(jié)某部分知識點的習題能力提升也很有限??偨Y(jié)下來主動學習查詢策略的設(shè)計原則是盡量選擇模型難于識別并且多樣性較好的樣本。

           

          2.4 線上使用的主動學習策略

          為了選擇多樣性較好的文本數(shù)據(jù)可以從聚類的角度進行。先獲取文本的語義向量embedding表示,然后對語義向量進行聚類操作,最后選擇的樣本盡量覆蓋多個聚類后的類別,通過這種方式可以得到多樣性較好的文本數(shù)據(jù)。這里重點是獲取高質(zhì)量的文本語義向量embedding表示。如果直接用google原生BERT獲取語義向量,會發(fā)現(xiàn)任意兩個句子的向量相似度比較高,也就是說文本之間的區(qū)分度很差,那么聚類效果也比較差,主要原因是向量分布的非線性和奇異性使得BERT句向量并沒有均勻的分布在向量空間中,對應(yīng)的信息熵比較低。針對這個問題BERT-flow通過normalizing flow把語義向量映射到規(guī)整的高斯分布中,從而語義向量可以分布在相對均勻的空間中。還可以使用BERT-whitening對語義向量分布進行PCA降維操作去除冗余信息,也可以把語義向量映射到更均勻的向量空間中從而提升聚類效果。除此之外,我們還可以使用NLP場景中的對比學習模型SimCSE獲取分布更均勻的語義向量。關(guān)于對比學習模型SimCSE的詳細介紹小伙伴可以參考我之前寫的一篇文章《廣告行業(yè)中那些趣事系列35:NLP場景中的對比學習模型SimCSE》。

           

          通過上述方法可以獲得多樣性較好的文本數(shù)據(jù),接下來是獲得模型難以識別的樣本數(shù)據(jù),主要使用不確定性策略。不確定性策略的重點是如何衡量樣本難以識別的程度。主動學習中主要通過置信度最低策略、熵策略、基于委員會的策略等方法來衡量樣本難以識別的程度。

           

          首先說下置信度最低策略,也就是選擇模型認為置信度最低的樣本。這里以二分類任務(wù)為例,假如我們已經(jīng)有一個初步訓練好的模型,可以用這個模型去給樣本打分,A樣本得分為0.55,B樣本得分為0.9分,那么可以認為模型對于B樣本預測為正例的置信度很高,而對于A樣本來說置信度很低,模型并不能很好的識別A樣本,所以相比于B樣本來說A樣本的標注價值更高,可能給模型帶來的效果提升也更好;

           

          然后是熵策略,熵策略主要是利用信息論中的熵來判定樣本的識別難度,因為信息論中熵是對不確定性的測量。感覺和置信度最低策略類似,主要是從不同的維度來衡量樣本的不確定性;

           

          最后是基于委員會的策略。從樣本訓練集不同或者模型不同構(gòu)建多個分類器,選擇分歧比較大的樣本進行標注。比如我們會用google原生中文版BERT、RoBERTa和ernie模型訓練三個分類器,讓三個分類器去預測同一條樣本,如果A樣本模型分類是[1,1,1],B樣本分類是[0,1,1],因為A樣本中三個分類器一致預測為正例,而B樣本中兩個分類器預測為正例,一個分類器預測為負例,說明B樣本的“分歧”比較大,模型難以識別,所以相比于A樣本來說B樣本的標注價值更高。我們線上也主要使用基于委員會的策略來選擇不確定性高的樣本進行標注。

           

          小結(jié)下,本節(jié)主要通過主動學習從而又快又好的獲取人工標注數(shù)據(jù)集,主要介紹了主動學習的作用、基本流程、查詢策略的設(shè)計原則以及線上使用的主動學習策略。關(guān)于主動學習更詳細的內(nèi)容小伙伴們可以查看我之前寫過的一篇文章《廣告行業(yè)中那些趣事系列22:當文本分類遇上了主動學習》。

           

          03

          解決樣本不均衡問題

          我們文本分類項目中還遇到一個棘手問題就是樣本不均衡問題,尤其在多層級復雜標簽體系的廣告場景中,實際上我們廣告興趣類目體系是4級類目多達幾百個標簽,樣本不均衡問題更加嚴重。為了解決樣本不均衡問題,我們線上主要對損失函數(shù)進行優(yōu)化,使用Focal loss和GHM loss來緩解樣本不均衡問題,取得不錯的線上效果。關(guān)于樣本不均衡問題的介紹之前也寫過一篇文章進行了詳細說明,感興趣的小伙伴可以查看《廣告行業(yè)中那些趣事系列24:從理論到實踐解決文本分類中的樣本不均衡問題》

           

          04

          半監(jiān)督和自訓練流程項目

          4.1 半監(jiān)督和自訓練流程項目目標

          為了提升分類器效果,我們線上構(gòu)建了半監(jiān)督和自訓練流程項目框架。項目目標是使用少量的標注數(shù)據(jù)集就可以得到很好的分類器模型,整個系統(tǒng)的輸入是帶標簽數(shù)據(jù)集和業(yè)務(wù)相關(guān)的海量無標簽數(shù)據(jù)集,輸出是一個很好的分類器模型。系統(tǒng)的核心思想是利用少量的帶標簽數(shù)據(jù)集從海量的無標簽數(shù)據(jù)集中擴展偽標簽數(shù)據(jù)加入到訓練樣本中,通過自訓練流程不斷的提升分類器效果

           

          4.2 半監(jiān)督和自訓練項目基本流程

          半監(jiān)督和自訓練項目的基本流程圖如下所示:


          圖2 半監(jiān)督和自訓練流程項目基本流程圖

           

          整體來看半監(jiān)督和自訓練流程項目基本流程如下:

          • S1使用少量帶標簽數(shù)據(jù)集D1和有效enlarged樣本集D2合并得到訓練集來訓練一個初始分類器f0,這里需要注意的是第一輪訓練時D2為空。訓練完分類器之后記錄模型效果;

          • S2使用enlarge&clean策略擴展偽標簽樣本并糾正錯誤樣本。這是半監(jiān)督項目的核心,通過各種enlarge策略來增加偽標簽樣本。線上使用的enlarge策略有利用simbert模型基于語義相似度來檢索相似文本從而給無標簽數(shù)據(jù)集D0打上偽標簽。還可以使用初始分類器f0預測D0來打上偽標簽。還可以通過對比學習模型SimCSE打上偽標簽。這里enlarge策略非常豐富,可以說enlarge策略的好壞直接影響半監(jiān)督流程的效果。因為標注的樣本中可能存在誤標的情況,所以需要對錯誤樣本進行修正,也就是clean策略,實際工作中主要使用置信學習等方式來修正錯誤樣本。這里enlarge&clean策略還會選擇置信度較低的樣本提交給標注人員標注,標注完成之后會添加到D1中;

          • S3將D1、D2和經(jīng)過enlarge策略打上偽標簽的候選enlarged樣本集D3合并作為訓練集用于訓練新的分類器fi并評估模型效果。評估完成之后將fi和f0進行對比,如果沒有提升則說明enlarge策略得到的D3數(shù)據(jù)集無效,直接結(jié)束半監(jiān)督流程。如果有提升則說明D3有效,將D3加入到D2中,并進入后續(xù)流程;

          • S4使用新的分類器fi去預測D0數(shù)據(jù)集,這里進入了小循環(huán)自訓練流程;

          • S5將S4得到的偽標簽數(shù)據(jù)集使用PseudoLabel篩選策略得到Pseudo Label樣本集D4。目前線上使用的篩選策略是根據(jù)模型預測得分選擇偽標簽樣本,第一輪自訓練流程會選擇大于0.95分的正樣本。這里得到D4有不同的策略,可以只選正樣本,也可以正負樣本都選。這里Pseudo label篩選策略會使用主動學習流程選擇標注價值高的樣本進行標注;

          • S6將D1、D2、D3和D4合并得到最新的訓練數(shù)據(jù)集,然后訓練新的分類器f(i+1)并進行評估。和之前的分類器進行對比,如果有提升,則說明D4有效,接下來進入到S4流程。如果沒有提升則在第二輪自訓練流程降低閾值選擇得分大于0.9分的作為D4,繼續(xù)訓練新的分類器并評估。如果連續(xù)N次選出的D4都無效則退出當前的小循環(huán)并進入到S1開啟下一次大循環(huán)流程。這里N的次數(shù)可以進行設(shè)置。

           

          整個半監(jiān)督流程重點是大循環(huán)和小循環(huán)的進入條件。當enlarge策略得到的D2無效時退出半監(jiān)督流程,否則進入小循環(huán)。當連續(xù)N次D4無效時則退出小循環(huán)。明確了大循環(huán)和小循環(huán)的進入條件理解整個流程就變得容易了。半監(jiān)督流程通過少量人工標注數(shù)據(jù)集提供的信息去獲取更多的訓練樣本數(shù)據(jù)集,從而得到好的分類器。整個半監(jiān)督流程可以應(yīng)用到更廣泛的分類任務(wù)中,包括NLP場景、CV場景等等,我們將模型訓練、評估和預測流程通過腳本進行定制化,對于使用方來說僅僅需要關(guān)注數(shù)據(jù)流轉(zhuǎn)過程即可。當前我們已經(jīng)使用半監(jiān)督流程優(yōu)化線上文本分類器并取得不錯的效果,正在向更簡單易用的方向努力,后續(xù)可能會做到開源。還需要說明的是,半監(jiān)督流程不僅僅是從樣本層面對分類任務(wù)進行優(yōu)化,模型訓練、評估和預測流程中會將之前積累的模型層面的優(yōu)化添加進來,對于樣本不均衡問題也使用了Focal loss和GHM loss等。

           

          05

          總結(jié)及反思

          本篇介紹了我們實際項目文本分類任務(wù)樣本優(yōu)化實踐匯總。首先樣本層面優(yōu)化文本分類任務(wù)需要解決如何又快又好的獲取人工標注數(shù)據(jù)集、如何解決樣本不均衡問題和如何獲取更多的訓練樣本三個問題;然后通過主動學習可以又快又好的獲取人工標注數(shù)據(jù)集以及通過損失函數(shù)解決樣本不均衡問題;最后重點介紹了我們的半監(jiān)督和自訓練流程項目,主要包括半監(jiān)督項目的目標以及基本流程。對于希望提升文本分類任務(wù)線上效果的小伙伴可能有所幫助。

           

           最新最全的文章請關(guān)注我的微信公眾號或者知乎專欄:數(shù)據(jù)拾光者。直接從下面名片跳轉(zhuǎn)就可以:

          瀏覽 51
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产精品久久久久久久久吹潮 | 国产精品秘 欧美丨欧美捆绑精品 | 97国产超碰免费 | 精品亲子乱一区二区三区 | 久久一区二区三区四区六区 |