国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

針對長尾問題的二重加權(quán)多音字消歧算法

2023-01-18 03:38:10熊一瑾葉建成
中文信息學報 2022年11期
關鍵詞:多音字長尾類別

高 羽,熊一瑾,葉建成

(美的集團(上海)有限公司 AI創(chuàng)新中心,上海 201702)

0 引言

長尾問題在現(xiàn)實世界中非常普遍。對于自然采集的真實數(shù)據(jù),尤其是大型數(shù)據(jù)集,不同類別下的數(shù)據(jù)一般不會呈理想的均勻分布,而往往是不平衡的[1-3]。以人類語言為例,字詞發(fā)音的頻率分布均遵守齊普夫定律(Zipf’s Law),漢語中特有的多音字的分布也屬于長尾分布。因此,作為漢語語音合成的重要模塊[4],多音字消歧也屬于典型的對不均衡數(shù)據(jù)的分類問題[5-6]。

直接使用長尾數(shù)據(jù)訓練模型時,由于頭部類別的樣本數(shù)遠多于尾部類別,往往會導致模型過擬合于頭部類別,且忽略尾部類的學習,在尾部類上泛化效果差[2,7]。在不平衡分布的數(shù)據(jù)下,如何訓練出平衡的分類器是學者們所關心的問題,所以長尾算法的相關研究通常使用均勻分布的測試集來證明其算法的有效性。在工業(yè)實用的語音合成的上線測試中,也會使用人工設計的均衡測試集來評價系統(tǒng)的性能。因此本文的研究問題具有學術(shù)和工業(yè)應用的雙重價值。

本文注意到,多音字消歧任務有一項特殊性: 其長尾分布存在于“字符”和“字音”兩個維度。從“字符”的維度來說,不同多音字下的樣本數(shù)分布不均,以CPP[8](Chinese Polyphones with Pinyin)的訓練集舉例,“哈”字的樣本數(shù)共有161條,而“僂”字僅有8條。從“字音”的維度來說,同一多音字中,不同發(fā)音下的樣本數(shù)分布不均,如上文中的“哈”,其發(fā)音“ha1”含160條樣本,而發(fā)音“ha3”僅含1條。

為處理這兩個維度上的長尾問題,本文針對性地提出一種二重加權(quán)消歧算法DW(Double Weighted),并結(jié)合另外兩種長尾算法: MARC(MARgin Calibration)[9]與Decouple[10]-cRT(Classifier Retraining)進行了實驗。本文對兩種算法本身的使用也進行了改進,并做消融實驗。在CPP測試集和兩份工業(yè)場景測試數(shù)據(jù)上,本文所提出的二重加權(quán)算法較基線模型和兩種原始算法取得了不同程度的準確率提升。

1 相關工作

對于長尾學習問題,目前主要有如下方法:

重采樣對尾部樣本過采樣[11],或?qū)︻^部樣本欠采樣[12]。但此類方法缺陷明顯[13-15]: 過采樣導致缺乏差異的尾部數(shù)據(jù)被反復學習,模型無法學到魯棒易泛化的特征而過擬合;欠采樣導致?lián)碛凶銐虿町惖念^部數(shù)據(jù)得不到充分學習,模型因信息損失而欠擬合。

重加權(quán)為不同類別乃至不同樣本分配不同權(quán)重: 按類別數(shù)的倒數(shù)加權(quán)[16]、按有效樣本數(shù)加權(quán)[17]、優(yōu)化分類間距并按樣本數(shù)加權(quán)[9,15,18]等。MARC[9]屬于此類方法。

解耦特征與分類器將模型的特征學習過程和分類器學習過程進行解耦[10,19-20],以降低數(shù)據(jù)分布對分類器的決策的影響。Decouple[10]-cRT屬于此類方法。

此外還有數(shù)據(jù)合成[21-22]、度量學習[23-24]、遷移學習[3,25]、元學習[26]/域自適應[1]、半監(jiān)督學習/自監(jiān)督預訓練[27]等研究。

1.1 優(yōu)化分類間距并重加權(quán)——MARC

文MARC[9]方法認為,先前的相關研究忽略了分類邊界與分類器輸出的預測概率間的關系。該文通過數(shù)學推導,提出了一種分類邊界校準(MARgin Calibration)算法。其具體實現(xiàn)分為兩個階段: 用原始長尾數(shù)據(jù)及Softmax損失函數(shù)訓練得到基線模型后,固定其所有參數(shù);在分類器中添加2K個參數(shù)(K為分類類別數(shù)),使用MARC提出的損失函數(shù)(詳見3.2節(jié)),僅對新增的2K個參數(shù)進行訓練。這一過程較基線模型會更快收斂。

1.2 解耦特征與分類器——Decouple

Decouple[10]方法認為,先前相關研究的一個共性為,模型的特征提取器(Backbone)與分類器(Classifier)是聯(lián)合訓練的。然而,這種聯(lián)合方式不能說明方法提高的是特征提取器的特征表達能力,還是分類器的性能,亦或二者皆有。于是該文提出將二者的訓練進行解耦,并在不同訓練階段使用不同的數(shù)據(jù)采樣策略。

本文選用Decouple中的cRT算法進行改進。原始cRT算法也包含兩個階段: ①對訓練數(shù)據(jù)進行實例平衡采樣(instance-balanced sampling),即不改變數(shù)據(jù)的原始分布,聯(lián)合訓練特征提取器與分類器; ②對訓練數(shù)據(jù)進行類別平衡采樣(class-balanced sampling),即使每個類別下的樣本數(shù)大體相同;將特征抽取器的參數(shù)固定,重新隨機初始化分類器的參數(shù),且僅訓練分類器。兩個階段都使用Softmax損失函數(shù)。相較第一階段,第二階段的模型會在更少的步數(shù)下收斂。

2 基于ELECTRA的多音字消歧模型

2.1 模型結(jié)構(gòu)

如圖1所示,首先,我們使用ELECTRA模型[28]對樣本句進行深度語義編碼;隨后,將得到ELECTRA編碼的整句表征向量,經(jīng)全連接層1(full-connected layer, fc1)調(diào)整隱狀態(tài)維度大小后,輸入到Bi-LSTM[29]層,以增強文本間的距離和方向信息[30]。

受文獻[31-33]等啟發(fā),不同于ELECTRA本身的嵌入層,我們新增了一個可學習的多音字嵌入層,以對多音字集合進行更有針對性的表征;將Bi-LSTM建模前后多音字所在位置的表征向量與新增的多音字嵌入向量進行拼接,得到融合特征向量;最后,將融合向量輸入到分類器,即全連接層2,3(fc2、fc3)進行分類。

為方便表示,在后文中,ELECTRA以外的模型結(jié)構(gòu)統(tǒng)稱為多音字模塊(Phoneme Module)。

2.2 歸一化與激活函數(shù)

對fc1、Bi-LSTM的輸出進行層歸一化[34](Layer Normalization)與ReLU[35]函數(shù)激活;對fc2的輸出進行批歸一化[36](Batch Normalization)與ReLU函數(shù)激活。

圖1 模型結(jié)構(gòu)

3 損失函數(shù)與改進策略

本節(jié)將介紹實驗中用到的3種損失函數(shù): 掩碼Softmax,邊界校準Softmax,以及本文提出的二重加權(quán)(Double Weighted,DW)Softmax。

原始Softmax Loss是常用于分類的損失函數(shù)。當定義第i個樣本的真實標簽為yi時,Softmax Loss計算方法如式(1)~式(3)所示。其中,fj為最終全連接層(本文中為fc3)輸出的分類向量f的第j個元素,K為分類類別數(shù),N為訓練樣本的總個數(shù)。

在多音字分類任務下,由于字符類別與字音類別存在嵌套關系,我們對后文中出現(xiàn)的參數(shù)進行進一步明確: 記全體多音字含X個字符,U個發(fā)音,訓練樣本總個數(shù)為N。其中,第p(p∈[1,X])個多音字共含mp個樣本,Kp個發(fā)音;其第j(j∈[1,Kp])個發(fā)音包含nj個樣本。于是有:

重新定義:K為Kp的最大值;數(shù)據(jù)集中第i個樣本的真實字符標簽為yq,字音標簽為yi,如式(7)所示。

K=max (Kp)

(7)

3.1 掩碼Softmax

注意到,單個多音字的候選發(fā)音集合Kp實際僅占全體發(fā)音集合U的很小部分。由于Softmax會給每一個分類選項預測一個非0概率,如果將集合U作為預測空間,會導致概率分布非常發(fā)散,對整個訓練產(chǎn)生負面影響。

因此,我們使用掩碼向量[37]作為權(quán)重,對式(1)中元素進行加權(quán),防止模型預測到其他多音字的拼音,如式(8)所示。mj為布爾值掩碼向量,表示是否掩蔽元素fj。我們首先將預測空間維度約束在K以內(nèi),再通過mj將空間進一步約束在yq的實際發(fā)音數(shù)Kyq。

(8)

3.2 邊界校準Softmax

式(9)為MARC的核心改進:ωj與βj為新增的2K個可學習參數(shù)(j∈ [1,K]),以調(diào)整分類邊界。Wj為最終全連接層中對應到類別j的權(quán)重向量,‖·‖表示L2正則。其具體推導過程可參考原文[9]Method章節(jié)。

(9)

3.3 二重加權(quán)Softmax

為應對字符與字音兩個維度上的長尾分布,本文對式(3)中的li進行二重加權(quán),如式(10)所示。具體地,式(11)為對“字符”維度分配的權(quán)重,式(12)為對“字音”維度分配的權(quán)重。

式(11)、式(12)均由線性項與非線性項構(gòu)成。線性項分別為總發(fā)音數(shù)U、與yq自身的發(fā)音數(shù)Kyq。非線性項為相應維度上類別樣本數(shù)myq、nyi的倒數(shù)的占比[38]。因此,所屬類別的樣本數(shù)越少,被分配的權(quán)重會越高,且兩組權(quán)值分開計算,不相耦合。

繼續(xù)使用引言中的示例: 相較含161條樣本的“哈”字,僅含8條樣本的“僂”字會有更高的字權(quán)重weightyq;而同屬于“哈”字,即weightyq相等時,相較含160條樣本的發(fā)音“ha1”,僅含1條樣本的發(fā)音“ha3”會有更高的字音權(quán)重weightyi。

如此,模型對尾部類別的關注得到了提高,且提高程度與數(shù)據(jù)自身的分布(出現(xiàn)頻率)相關。

其中,γ1、γ2為尺度超參,可對兩式的非線性項權(quán)重分別進行調(diào)整,提供了更多的自由度來控制分布的形式,以適應不同的不平衡程度。

注意,本文所有實驗均基于掩碼Softmax,在其基礎上進行邊界校準或二重加權(quán)。

3.4 參數(shù)解凍

注意到,MARC與Decouple-cRT在第二階段僅開放少量參數(shù)進行訓練: MARC僅訓練新增的2K個參數(shù),Decouple-cRT僅訓練分類器參數(shù)(對應本文fc2、fc3)。

而本文提出的模型,除預訓練模型ELECTRA與分類器外,還有Bi-LSTM、多音字嵌入層等結(jié)構(gòu)。因此,MARC與Decouple-cRT對二階段可訓練參數(shù)的原始設定在本文模型上可能存在局限性。

我們猜想,在第二階段訓練中開放更多參數(shù): 將多音字模塊(Phoneme Module)的參數(shù)全部解凍參與訓練,能夠進一步提升模型性能,并已通過后續(xù)實驗證明(表3、表4)。

4 實驗設置與結(jié)果分析

4.1 實驗數(shù)據(jù)

首先對本文使用的兩份開源數(shù)據(jù),CPP[8]與標貝中文標準女聲音庫[39]進行說明:

CPP來源于中文維基百科,其訓練集、開發(fā)集、測試集大小見表1。CPP共含623個多音字,每個字含10~250條樣本,每條樣本長5~50字。更多統(tǒng)計數(shù)據(jù)可參考原文[8]第4節(jié),其也反映字符與字音兩個維度上的長尾分布現(xiàn)象。

標貝中文標準女聲音庫為語音合成(TTS)任務的數(shù)據(jù)集,共有10 000條語音,每條語音平均字數(shù)為16,總有效時長約12小時。由于數(shù)據(jù)集還包含每條語音對應的文本、拼音等,故也可用于韻律標注、多音字消歧等任務的訓練。

本文使用兩套數(shù)據(jù)方案進行了實驗,相關信息見下列說明與表1、表2。

表1 數(shù)據(jù)方案(1)

表2 數(shù)據(jù)方案(2)

方案(1): 原始CPP訓練集、開發(fā)集、測試集。此外,我們對原始測試集進行采樣,構(gòu)造了一個近似均衡的測試子集,命名為CPP balance。采樣方式如下: 當字音樣本數(shù)小于等于5時,保留所有樣本;樣本數(shù)大于5時,從中隨機抽取5條。

方案(2): 混合CPP所有數(shù)據(jù)與標貝數(shù)據(jù),隨機劃分出訓練集和開發(fā)集。測試集來自兩份業(yè)務場景的數(shù)據(jù),分別名為scene1、scene2。

在方案(2)下,多音字消歧字典已依照工業(yè)需求事先建好,因此,訓練數(shù)據(jù)中,字/字音不在該字典中的樣本不會參與實際訓練。表2為字典能匹配到的實際有效的樣本數(shù)量。

4.2 超參設置

ELECTRA模型使用ELECTRA-small[28]的默認設置;Bi-LSTM的輸入、隱狀態(tài)、輸出維度分別為128、64、128。多音字嵌入向量層的詞典大小為多音字字符數(shù)X,嵌入向量維度為128。優(yōu)化器選用AdamW[40],批大小為256。

學習率: 基線模型中,ELECTRA在前一萬步不參與訓練,一萬步后以1e-5的學習率加入訓練。其余模塊始終以1e-4的學習率進行訓練。

4.3 實驗結(jié)果

我們首先在數(shù)據(jù)方案(1)下進行實驗,各模型及消融實驗結(jié)果見表3。得到數(shù)據(jù)方案(1)的結(jié)果后,我們對數(shù)據(jù)方案(2)也進行了相同模型配置下的實驗,對各算法性能進行更公平的驗證(表4)。以下是對表3、表4中涉及的模型與算法配置的說明。

表3 方案(1)下各模型測試準確率 (單位: %)

表4 方案(2)下各模型測試準確率 (單位: %)

續(xù)表

基線模型: 用原訓練集與掩碼Softmax訓練至收斂得到的模型。

cRT: 得到基線模型后,重新初始化fc2、fc3的參數(shù),用類別平衡采樣后的訓練集(總大小與原訓練集一致)繼續(xù)訓練至收斂;其余模型參數(shù)均固定,不參與更新。

MARC: 由于原始MARC的類別定義與本文并不相同,為公平比較起見,設置如下: 得到基線模型后,使用式(12)對loss加權(quán)、式(9)進行邊界校準,用原訓練集僅對式(9)中新增的2K個參數(shù)進行訓練,其余模型參數(shù)均固定。式(12)中γ2沿用原始MARC設置,取值為1.2。

+ pm: 代表多音字模塊(Phoneme Module)的參數(shù)全部進行后續(xù)訓練。

+ DW: 表示對loss添加權(quán)重,直至滿足二重加權(quán)(式(10))。我們首先在數(shù)據(jù)方案(1)下,測試γ1的取值對模型準確率(%)的影響,結(jié)果見表5、表6。最終確定DW與cRT配合使用時γ1取1.0,與MARC配合時γ1取1.2,γ2的取值保持1.2不變。

空白對照模型: 指不使用任何算法改進,在基線模型訓練好后,僅用掩碼Softmax對多音字模塊繼續(xù)訓練,以排除繼續(xù)訓練可能帶來的受益。

表5 與cRT配合,γ1對準確率的影響 (單位: %)

表6 與MARC配合,γ1對準確率的影響 (單位: %)

4.4 結(jié)果分析

從表3、表4可以看出,cRT系列算法更容易在均衡分布的測試集上性能有所提升,而引入本文改進(+pm;+DW)后的MARC系列在長尾、均衡的測試集上性能均有較大提升。

由空白對照組結(jié)果可證明,本文算法效果的提升并非由繼續(xù)訓練帶來的隨機性產(chǎn)生,而是源于算法的改進。

特別地,本文提出的DW算法在兩種長尾算法上展現(xiàn)出了不同的傾向性: 與DW結(jié)合的cRT在均衡測試集上表現(xiàn)更加突出,即更加強調(diào)了尾部數(shù)據(jù)的學習,但在長尾測試集上性能下降;DW在MARC上則正相反,側(cè)重提升長尾測試集上的性能??梢缘贸?

(1) cRT系列算法實現(xiàn)簡易,無須修改模型,無新增參數(shù),對均衡分布的測試場景有效;DW可進一步提升其均衡測試場景下的表現(xiàn),但在長尾測試場景下會有精度損失。

(2) MARC系列僅需新增極少量的參數(shù),且較cRT更為穩(wěn)定。尤其,改進并融合本文方法后的MARC+pm+DW模型,性能更為突出,能夠適配更多場景。

此外,γ1,γ2可分別對字符與字音的權(quán)重進行非線性縮放調(diào)整。雖然本實驗中對γ1的取值有進行比較(表5、表6),但這種方式仍較為粗糙。未來的工作中,我們希望可以讓模型自適應地學習γ1、γ2應如何取值。

5 結(jié)束語

本文對多音字消歧任務中,字符與字音兩個維度上的長尾分布問題,針對性地提出了一種簡易有效的二重加權(quán)算法: DW,在開源與工業(yè)數(shù)據(jù)上都取得了較大的性能提升。

本文將原用于圖像分類任務上的兩種長尾算法: Decouple-cRT與MARC應用到多音字消歧任務中。將兩者結(jié)合DW算法,并根據(jù)本文模型架構(gòu)特點增加改進策略,在四份語料上測試并做消融實驗,證實DW算法與改進策略的有效性。

我們發(fā)現(xiàn),強調(diào)尾部的學習總會引入損失頭部精度的風險。模型在頭部數(shù)據(jù)和尾部數(shù)據(jù)上的性能難以同時獲得較高提升,達成平衡則相對容易。在未來的研究中,我們將繼續(xù)跟進前沿算法,嘗試用更多方法如自監(jiān)督、半監(jiān)督、預訓練,結(jié)合現(xiàn)有思路,多角度地繼續(xù)改進算法。同時也希望本文能為其他存在長尾問題的深度學習任務提供思路,多維度地利用數(shù)據(jù)信息。

猜你喜歡
多音字長尾類別
認識多音字
認識多音字
長尾直銷產(chǎn)品圖鑒
長尾豹馬修
幽默大師(2018年5期)2018-10-27 05:53:50
追蹤長尾豹馬修
你會讀多音字嗎?
多音字也能出糗
服務類別
新校長(2016年8期)2016-01-10 06:43:59
論類別股東會
商事法論集(2014年1期)2014-06-27 01:20:42
中醫(yī)類別全科醫(yī)師培養(yǎng)模式的探討
梅州市| 胶南市| 康乐县| 定边县| 鄱阳县| 漾濞| 弥渡县| 武城县| 新营市| 克山县| 桑日县| 涡阳县| 合山市| 喀喇| 阿荣旗| 珲春市| 武定县| 黄陵县| 乌苏市| 五家渠市| 台中县| 建水县| 济南市| 左云县| 和田县| 万载县| 墨竹工卡县| 吴忠市| 洛隆县| 来安县| 元谋县| 塔河县| 清涧县| 桦甸市| 剑河县| 忻州市| 武夷山市| 迁安市| 文安县| 武邑县| 晋州市|