陳家合, 朱 毅, 沈 輝, 王 志, 李 云
(揚(yáng)州大學(xué)信息工程學(xué)院, 江蘇 揚(yáng)州 225127)
傳統(tǒng)的機(jī)器學(xué)習(xí)方法通常假設(shè)訓(xùn)練數(shù)據(jù)與測(cè)試數(shù)據(jù)獨(dú)立同分布, 而現(xiàn)實(shí)場(chǎng)景中卻難以滿足該情形[1].為了解決不同領(lǐng)域中數(shù)據(jù)分布不匹配的問(wèn)題, 領(lǐng)域自適應(yīng)方法被提出且成為數(shù)據(jù)挖掘和人工智能領(lǐng)域的研究熱點(diǎn)[2].近年來(lái), 深度學(xué)習(xí)方法因其強(qiáng)大的特征學(xué)習(xí)能力而被廣泛用于學(xué)習(xí)領(lǐng)域間不變的特征表示[3].主流的深度學(xué)習(xí)模型, 如自編碼器(autoencoder, AE)[4]、卷積神經(jīng)網(wǎng)絡(luò)[5]、遞歸神經(jīng)網(wǎng)絡(luò)[6]和生成對(duì)抗網(wǎng)絡(luò)[7]等, 均能夠?qū)W習(xí)跨領(lǐng)域的高層特征表示, 并且可以通過(guò)對(duì)齊領(lǐng)域間的全局特征表示實(shí)現(xiàn)知識(shí)遷移,從而完成跨領(lǐng)域的學(xué)習(xí)任務(wù).例如, Wang等[8]提出一種基于標(biāo)簽自矯正的無(wú)監(jiān)督領(lǐng)域自適應(yīng)方法,使用概率標(biāo)簽直接端到端地學(xué)習(xí)并矯正目標(biāo)領(lǐng)域樣本的偽標(biāo)簽.在眾多深度學(xué)習(xí)模型中, 基于自編碼器的無(wú)監(jiān)督領(lǐng)域自適應(yīng)方法因無(wú)需標(biāo)簽進(jìn)行訓(xùn)練和快速收斂等優(yōu)勢(shì)而備受關(guān)注.Wei等[9]提出一種改進(jìn)的邊緣化堆疊去噪自編碼器的特征學(xué)習(xí)方法, 在堆疊自編碼器的損失函數(shù)中引入核化非線性編碼, 通過(guò)最大均值差異度量的最小化域散度提取具有較小分布差異的深度特征; Zhu等[10]提出一種基于堆疊卷積稀疏自編碼器的無(wú)監(jiān)督領(lǐng)域自適應(yīng)方法, 通過(guò)在原始數(shù)據(jù)進(jìn)行層投影獲得更高級(jí)的特征表示; Li等[11]提出一種聯(lián)合對(duì)抗變分自編碼器方法, 利用Wasserstein距離調(diào)整邊際和條件分布以縮小領(lǐng)域之間的差異, 從而消除類別先驗(yàn)偏見(jiàn)的影響.然而, 現(xiàn)有的基于自編碼器的方法傾向于通過(guò)對(duì)單個(gè)自編碼器的堆疊逐層學(xué)習(xí)領(lǐng)域之間的多種特征表達(dá)來(lái)降低局部差異[12], 而忽略了不同特性的自編碼器所學(xué)習(xí)到的特征表達(dá)間的差異性; 因此, 本文擬提出一種基于串行自編碼器(serial autoencoder unsupervised domain adaptation, SAUDA)的特征表示學(xué)習(xí)方法, 通過(guò)串行方法連接堆疊自編碼器和稀疏自編碼器, 進(jìn)一步發(fā)掘領(lǐng)域之間的全局特征.
若AE的輸入X∈R(ns+nt)×d, 其中d為特征空間的維數(shù).假設(shè)W1,b1為編碼層的權(quán)值矩陣和偏置向量,W2,b2為解碼層的權(quán)值矩陣和偏置向量,σ1,σ2分別為編碼階段與解碼階段的節(jié)點(diǎn)激活函數(shù).AE首先通過(guò)線性映射和非線性激活函數(shù)完成對(duì)輸入樣本的編碼, 得到編碼特征輸出
H=σ1(W1X+b1);
(1)
然后解碼器通過(guò)對(duì)編碼特征進(jìn)行解碼得到輸入樣本的重構(gòu)
(2)
AE的訓(xùn)練目標(biāo)是使得損失函數(shù)J達(dá)最小值, 即求minW1,W2,b1,b2J(W1,W2,b1,b2).本文選擇平方損失誤差函數(shù)
(3)
采用梯度下降算法, 通過(guò)反向傳播誤差調(diào)整網(wǎng)絡(luò)參數(shù)使得重構(gòu)誤差函數(shù)達(dá)最小值.假設(shè)學(xué)習(xí)速率為η, 更新AE的權(quán)值矩陣W1,W2和偏置向量b1,b2:
(4)
(5)
為了提取更具代表性的特征, 本文采取多個(gè)AE級(jí)聯(lián)方式構(gòu)建SAE, 采用逐層貪婪訓(xùn)練方法將上一級(jí)AE的隱含層輸出作為下一級(jí)AE的輸入來(lái)提取層次化特征.
當(dāng)隱含層節(jié)點(diǎn)多于輸入節(jié)點(diǎn)時(shí), AE會(huì)失去自主學(xué)習(xí)樣本特征的能力, 此時(shí)需要對(duì)隱含層添加一定的約束.SSAE則是在AE中添加稀疏性限制, 旨在得到更具代表性的特征表示, 并發(fā)現(xiàn)樣本中的特定結(jié)構(gòu).在SSAE中, 稀疏性限制迫使隱含層節(jié)點(diǎn)大部分時(shí)間處于抑制狀態(tài), 即當(dāng)激活函數(shù)選擇Sigmoid時(shí)隱含層節(jié)點(diǎn)輸出接近于0, 從而使得網(wǎng)絡(luò)僅依賴少量處于激活狀態(tài)的隱含層節(jié)點(diǎn)進(jìn)行編碼和解碼, 提取更具稀疏性的特征.
本文采用L1范數(shù)正則化項(xiàng)對(duì)損失函數(shù)的激活項(xiàng)加以懲罰, 迫使神經(jīng)元輸出的平均激活值與一個(gè)給定的稀疏值接近.給定隱層節(jié)點(diǎn)k對(duì)輸入xj的激活值ak(xj), 通過(guò)L1正則化系數(shù)μ來(lái)控制懲罰程度, 則SSAE的損失函數(shù)
(6)
SSAE能有效學(xué)習(xí)重要特征和抑制次要特征, 從而得到領(lǐng)域間更好的全局特征表示.
圖1 SAUDA框架示意圖Fig.1 The framework of SAUDA
硬件環(huán)境為NVIDIA Geforce RTX 3090 Founders Edition GPU,Intel(R)Core(TM)i9-10980XE CPU, 內(nèi)存為128 GB.編程軟件為Python 3.9.16, 機(jī)器學(xué)習(xí)包PyTorch-CUDA 11.7.
實(shí)驗(yàn)數(shù)據(jù)集是由淘寶和京東網(wǎng)站的電商評(píng)論收集并整合而成的中文情感分析數(shù)據(jù)集(https://github.com/zhuyiYZU/Chinese-e-commerce-review-dataset), 包含6種領(lǐng)域類別,共60 000條評(píng)論數(shù)據(jù),其中正負(fù)例樣本各30 000個(gè).現(xiàn)選取“計(jì)算機(jī)”“書(shū)籍”“水果”和“洗發(fā)水”等4種領(lǐng)域類別,每個(gè)領(lǐng)域選取正負(fù)例樣本各1 000個(gè), 并設(shè)置“計(jì)算機(jī)→水果”“計(jì)算機(jī)→洗發(fā)水”“書(shū)籍→水果”和“書(shū)籍→洗發(fā)水”等4種不同的跨領(lǐng)域任務(wù).
利用本文提出的SAUDA方法進(jìn)行無(wú)監(jiān)督領(lǐng)域自適應(yīng)特征學(xué)習(xí), 并與標(biāo)準(zhǔn)AE[4]、卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network, CNN)[5]、堆疊自編碼器串行連接(SAE+SAE)以及稀疏自編碼器與堆疊自編碼器串行連接(SSAE+SAE)等領(lǐng)域自適應(yīng)方法進(jìn)行對(duì)比分析.
每個(gè)任務(wù)選取2 000條源域數(shù)據(jù)樣本和2 000條目標(biāo)域數(shù)據(jù)樣本.在基于CNN和標(biāo)準(zhǔn)AE方法的實(shí)驗(yàn)中, 設(shè)置訓(xùn)練輪次為5輪, 批量大小為32個(gè), 學(xué)習(xí)率為0.001.在本文方法、SAE+SAE和SSAE+SAE自編碼器實(shí)驗(yàn)中, 設(shè)置訓(xùn)練輪次為10輪, 批量大小為64個(gè),學(xué)習(xí)率為0.001,稀疏參數(shù)為0.3.選擇分類精度作為評(píng)估指標(biāo), 其中y(x)為實(shí)例x的真實(shí)標(biāo)簽,f(x)為分類模型預(yù)測(cè)的x的標(biāo)簽.表1給出了上述5種方法在中文電商評(píng)論集的4個(gè)跨領(lǐng)域任務(wù)上的實(shí)驗(yàn)結(jié)果.由表1可知: 本文SAUDA方法是有效的, 且在不同任務(wù)上的特征學(xué)習(xí)準(zhǔn)確率優(yōu)于其他4種方法.其可能原因是: 1) 基于串聯(lián)自編碼器的領(lǐng)域自適應(yīng)方法能夠進(jìn)行二次特征學(xué)習(xí), 從而挖掘更豐富的全局特征表示; 2) 特征學(xué)習(xí)的不同階段引入不同種類的自編碼器后學(xué)習(xí)得到的特征表示差異很大, SAUDA方法因在各階段引入合適種類的自編碼器進(jìn)行適應(yīng)性的特征學(xué)習(xí), 故具有更高的特征學(xué)習(xí)準(zhǔn)確率.
表1 5種方法在不同任務(wù)上的特征學(xué)習(xí)準(zhǔn)確率
(7)
為了驗(yàn)證學(xué)習(xí)率rl、訓(xùn)練輪次和批量大小等參數(shù)對(duì)本文方法的影響, 現(xiàn)對(duì)其參數(shù)敏感性進(jìn)行實(shí)證分析.
設(shè)置訓(xùn)練輪次為10, 批量大小為64 ,當(dāng)rl分別為0.000 1, 0.000 5, 0.001, 0.003時(shí)跨領(lǐng)域分類任務(wù)的準(zhǔn)確率如圖2(a)所示.由圖2(a)可見(jiàn): SAUDA對(duì)于學(xué)習(xí)率的變化較敏感, 當(dāng)rl=0.001時(shí), 模型學(xué)習(xí)的準(zhǔn)確率最優(yōu), 但當(dāng)rl過(guò)高或過(guò)低時(shí)模型的學(xué)習(xí)效率較低.這是因?yàn)楫?dāng)學(xué)習(xí)率過(guò)高時(shí), 大幅度的參數(shù)更新會(huì)導(dǎo)致模型錯(cuò)過(guò)在自適應(yīng)中所需的最佳特征表示, 從而在目標(biāo)領(lǐng)域上產(chǎn)生較差的泛化性能; 當(dāng)學(xué)習(xí)率過(guò)低時(shí), 參數(shù)的微小更新可能無(wú)法有效調(diào)整模型能用于領(lǐng)域自適應(yīng)的特征表示.故本文優(yōu)化選擇學(xué)習(xí)率為0.001.
圖2 SAUDA在不同參數(shù)影響下的準(zhǔn)確率Fig.2 The accuracy of SAUDA under the influence of different parameters
設(shè)置rl為0.001, 批量大小為64,當(dāng)訓(xùn)練輪次分別為5,10,15時(shí)跨領(lǐng)域分類任務(wù)的準(zhǔn)確率如圖2(b)所示.由圖2(b)可見(jiàn): 在不同任務(wù)下訓(xùn)練輪次對(duì)分類準(zhǔn)確率的最優(yōu)解不同, 當(dāng)訓(xùn)練輪次取10時(shí),模型整體能夠獲得最優(yōu)解.這是因?yàn)榇藭r(shí)模型有足夠的時(shí)間有效地從目標(biāo)領(lǐng)域?qū)W習(xí)特征和適應(yīng)源領(lǐng)域的特征;訓(xùn)練輪次過(guò)低, 模型無(wú)法充分捕捉目標(biāo)領(lǐng)域的特征,導(dǎo)致分類性能下降; 訓(xùn)練輪次過(guò)多,模型則會(huì)因過(guò)度關(guān)注目標(biāo)領(lǐng)域而喪失對(duì)源領(lǐng)域的泛化能力.故本文優(yōu)化選擇訓(xùn)練輪次數(shù)為10.
設(shè)置rl為0.001, 訓(xùn)練輪次為10, 當(dāng)批量大小分別為16,32,48,64時(shí)跨領(lǐng)域分類任務(wù)的準(zhǔn)確率如圖2(c)所示.由圖2(c)可見(jiàn): 隨批量大小增加, 各任務(wù)的整體分類準(zhǔn)確率都呈上升趨勢(shì), 當(dāng)批量大小取64時(shí), 跨領(lǐng)域分類任務(wù)的準(zhǔn)確率最高.由于更大的批量大小可能引發(fā)模型訓(xùn)練的不穩(wěn)定性, 同時(shí)需要更多的計(jì)算資源, 并且易導(dǎo)致模型對(duì)訓(xùn)練數(shù)據(jù)中的噪聲過(guò)于敏感, 故權(quán)衡模型訓(xùn)練的穩(wěn)定性與泛化性能, 本文優(yōu)化選擇批量大小為64.
本文考慮不同類型的自編碼器可學(xué)習(xí)不同的特征表示, 提出了一種基于串行自編碼器的無(wú)監(jiān)督領(lǐng)域自適應(yīng)特征學(xué)習(xí)方法.通過(guò)串行連接兩種不同類型的自編碼器,學(xué)習(xí)到更強(qiáng)大、更具有魯棒性的全局特征表示,以用于不同的無(wú)監(jiān)督領(lǐng)域自適應(yīng)任務(wù).實(shí)驗(yàn)結(jié)果表明, 本文方法的分類準(zhǔn)確率最優(yōu),可為串行連接自編碼器的領(lǐng)域適應(yīng)方法研究提供一種可行的思路.今后將進(jìn)一步考慮自編碼器個(gè)數(shù)以及堆疊層數(shù)對(duì)模型分類性能的影響,組合不同類型的自編碼器應(yīng)用于不同的無(wú)監(jiān)督領(lǐng)域自適應(yīng)任務(wù).