易萬+羅晶+李勇+郭少英
摘??要:根據(jù)用戶搜索歷史,將用戶關(guān)注的信息按標(biāo)題分類,通過自編碼神經(jīng)網(wǎng)絡(luò)提取特征值。設(shè)定學(xué)習(xí)樣本標(biāo)題最多為25個(gè)漢字,編碼方式采用漢字機(jī)內(nèi)碼(GBK碼)。使用MATLAB工具進(jìn)行深度學(xué)習(xí),將樣本在原空間的特征表示變換到一個(gè)新的特征空間。
關(guān)鍵字:文本特征;自編碼神經(jīng)網(wǎng)絡(luò);深度學(xué)習(xí);Matlab
中圖分類號(hào):TP391.1????????文獻(xiàn)標(biāo)志碼:A
Information?search?model?based?on?auto-encoder?neural?network
Yi?Wan,Luo?Jing,Li?Yong,Guo?Shaoying
(College?of?computer?science?and?Information?Engineering,?Tianjin?University?of?Science?&?Technology,
Tianjin?300222,?China)
Abstract:?According?to?user?search?history,?the?user?information?of?interest?by?Title?Classification,?the?auto-encoder?neural?network?feature?extraction?value.?Set?the?learning?sample?heading?up?to?25?Chinese?characters,?coding?mode?is?adopted?Chinese?characters?machine?code?(GBK?code).?Use?the?MATLAB?tool?for?deep?learning,?will?feature?in?the?original?space?representation?is?transformed?into?a?new?feature?space.
Key?words:?Text?feature;?The?auto-encoder?neural?network;?Deep?learning;?Matlab
基于自編碼神經(jīng)網(wǎng)絡(luò)建立搜索信息模型的目的是根據(jù)用戶搜索信息的歷史,推斷出網(wǎng)頁中的內(nèi)容是用戶關(guān)注的信息并即時(shí)顯示。首先將用戶關(guān)注的歷史信息按標(biāo)題分類,通過自編碼神經(jīng)網(wǎng)絡(luò)建立標(biāo)題特征值數(shù)據(jù)庫。當(dāng)自編碼神經(jīng)網(wǎng)絡(luò)搜索信息模型工作時(shí),按照用戶提供的關(guān)鍵詞順序,打開用戶經(jīng)常瀏覽的網(wǎng)頁,讀入標(biāo)題文本,若具有數(shù)據(jù)庫中的標(biāo)題特征,則將該標(biāo)題的文本內(nèi)容即時(shí)顯示。
直接解析網(wǎng)頁中的標(biāo)題文本,面臨的基本問題是文本的表示。如果把標(biāo)題文本所有的詞都作為特征項(xiàng),那么太多的特征向量維數(shù)導(dǎo)致計(jì)算量太大。例如50個(gè)標(biāo)題,每個(gè)標(biāo)題25個(gè)漢字,特征項(xiàng)將有50×25=1250個(gè)。如果將標(biāo)題中的某個(gè)關(guān)鍵詞作為特征詞,將會(huì)有幾千個(gè)包含關(guān)鍵詞的標(biāo)題,從而導(dǎo)致讀入分析量過于巨大。本文采用自編碼神經(jīng)網(wǎng)絡(luò),用映射變換的方法把原始文本特征變換為較少的新特征,提高信息搜索效率。
1??自編碼神經(jīng)網(wǎng)絡(luò)
1.1??自編碼神經(jīng)網(wǎng)絡(luò)理論
Auto-Encoder(自編碼)[1],自編碼算法是一種基于神經(jīng)網(wǎng)絡(luò)算法的無監(jiān)督學(xué)習(xí)算法,與神經(jīng)網(wǎng)絡(luò)算法的不同之處是將輸入值作為輸出節(jié)點(diǎn)的輸出。自編碼算法的另一個(gè)特征是隱藏層節(jié)點(diǎn)的個(gè)數(shù)一般少于輸入輸出節(jié)點(diǎn)的個(gè)數(shù)。這樣的意義是將輸入的特征通過神經(jīng)網(wǎng)絡(luò)的非線性變換到節(jié)點(diǎn)數(shù)更少的隱藏層。因此,可以通過自編碼神經(jīng)網(wǎng)絡(luò)對(duì)給定的樣本進(jìn)行訓(xùn)練學(xué)習(xí),從而得到輸入數(shù)據(jù)降維后的特征,即為隱藏層的節(jié)點(diǎn)數(shù),省去了人工特征提取的麻煩。
自編碼神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)示意圖如圖1所示[2]。這是一種深度學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò),包含了多個(gè)隱含層,整個(gè)網(wǎng)絡(luò)是一種對(duì)稱的結(jié)構(gòu),中心層的神經(jīng)元的個(gè)數(shù)最少。網(wǎng)絡(luò)通過對(duì)樣本的訓(xùn)練可以得到一組權(quán)值系數(shù),而輸入數(shù)據(jù)通過這組權(quán)值系數(shù)表達(dá)成低維形式,從而達(dá)到了用降維后的特征表示出輸入的數(shù)據(jù)。
圖1??自編碼神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)
Fig.1???The?structure?of?auto-encoder?neural?network
1.1.1?預(yù)訓(xùn)練
(1)?輸入?yún)?shù)的確定:標(biāo)題是作者給出的提示文章內(nèi)容的短語,標(biāo)題一般都簡(jiǎn)練、醒目,有不少縮略語,與報(bào)道的主要內(nèi)容有著重要的聯(lián)系。如登陸我的鋼鐵網(wǎng)站,搜索鋼管熱點(diǎn)資訊,顯示的標(biāo)題有“我國(guó)自主研制*****油管成功替代進(jìn)口”,學(xué)習(xí)樣本選擇50組標(biāo)題,每個(gè)標(biāo)題不超過25個(gè)漢字,如表1所示。
表1??學(xué)習(xí)樣本
Tab.?1??Learning?samples
1
我國(guó)自主研制高端耐熱鋼無縫鋼管成功替代進(jìn)口
2
我國(guó)自主研制K55石油套管成功替代進(jìn)口
3
我國(guó)自主研制J55稠油熱采套管成功替代進(jìn)口
4
我國(guó)自主研制專用耐高溫防火船舶用套管成功替代進(jìn)口
5
我國(guó)自主研制20G高壓鍋爐管成功替代進(jìn)口
6
我國(guó)自主研制特殊用途低溫用管成功替代進(jìn)口
7
我國(guó)自主研制起重機(jī)臂架無縫鋼管成功替代進(jìn)口
8
我國(guó)自主研制精密合金4J36船用管材成功替代進(jìn)口
9
我國(guó)自主研制高強(qiáng)韌性高抗擠毀套管成功替代進(jìn)口
10
我國(guó)自主研制三種極限規(guī)格管線管成功替代進(jìn)口
…
……
50
我國(guó)自主研制醫(yī)藥化工用管成功替代進(jìn)口
(2)?語句預(yù)處理[3]:學(xué)習(xí)樣本句子進(jìn)行預(yù)處理是把句子中的每一個(gè)漢字變換成自編碼神經(jīng)網(wǎng)絡(luò)模型能接受的數(shù)字化形式。為了使神經(jīng)網(wǎng)絡(luò)能接受外部數(shù)據(jù),首先要對(duì)句子中的漢字進(jìn)行編碼,編碼方式是采用漢字的計(jì)算機(jī)內(nèi)碼(GBK碼)。每個(gè)漢字機(jī)內(nèi)碼有16位二進(jìn)制,如:“我國(guó)自主研制”的二進(jìn)制碼為
1100111011010010 我(GBK碼)
1011100111111010 國(guó)(GBK碼)
1101011111010100 自(GBK碼)
1101011011110111 主(GBK碼)
1101000111010000 研(GBK碼)
1101011011000110 制(GBK碼)
將16位二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)并進(jìn)行線性變換,映射到實(shí)數(shù)[0?1]之間,作為輸入神經(jīng)元初值。變換公式如下:
式中:maxi和mini;tmax和tmin分別為x(p)i,t(p)量程范圍的最大值和最小值。
(3)預(yù)訓(xùn)練:幾個(gè)獨(dú)立的RBM構(gòu)成“堆?!睒?gòu)成了預(yù)訓(xùn)練部分,而RBM是BM?(boltzmannmachine)的一種特殊連接方式。圖2即為RBM的網(wǎng)絡(luò)構(gòu)成。它是一種隱含層神經(jīng)元無連接,并且只有可見層和隱含層兩層神經(jīng)元。
圖2??RBM網(wǎng)絡(luò)構(gòu)成
Fig.?2??Construction?of?restricted?boltzmannmachine
BM的權(quán)值調(diào)整公式為[4]
(1)
式中:在第t步時(shí)神經(jīng)元i、j間的連接權(quán)值為wij(t);η為學(xué)習(xí)速率;T為網(wǎng)絡(luò)溫度;<uihj>+、<uihj>-分別為正向平均關(guān)聯(lián)和反向平均關(guān)聯(lián)。
在RBM中,可見層神經(jīng)元的輸出和隱含層神經(jīng)元輸出的乘積即為平均關(guān)聯(lián)。系數(shù)ε由η和T統(tǒng)一合并而成,迭代步長(zhǎng)即由權(quán)值調(diào)整公式ε表示。
圖3??RBM網(wǎng)絡(luò)結(jié)構(gòu)圖
Fig.?3??RBM?network??structure??diagram
(4)MATLAB實(shí)現(xiàn):
本文建立的BP神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)為
[25,15,25],[15,12,15],[12,10,12],[10,8,10],[8,5,8]
設(shè)定網(wǎng)絡(luò)隱含層的激活函數(shù)為雙曲正切S型函數(shù)tansig,輸出層的激活函數(shù)為線性激活函數(shù)purelin,網(wǎng)絡(luò)的訓(xùn)練函數(shù)為L(zhǎng)evenberg-Marquardt算法訓(xùn)練函數(shù)trainlm。因此對(duì)應(yīng)的MATLAB神經(jīng)網(wǎng)絡(luò)工具箱的程序語句為
net=newff(minmax(P),[25,25],{‘tansig,purelin},?trainlm);
net=newff(minmax(P),[15,15],{‘tansig,purelin},trainlm);
net=newff(minmax(P),[12,12],{‘tansig,purelin},trainlm);
net=newff(minmax(P),[10,10],{‘tansig,purelin},trainlm);
net=newff(minmax(P),[8,8],{‘tansig,purelin},trainlm);
設(shè)定學(xué)習(xí)速率為0.01,最大訓(xùn)練步數(shù)為300,目標(biāo)誤差為0.00001。
(5)預(yù)訓(xùn)練結(jié)果:
預(yù)訓(xùn)練結(jié)果如表2所示。
表2 ?預(yù)訓(xùn)練結(jié)果
Tab.?2??The?results?of?pre?training
誤差
學(xué)習(xí)速率
步長(zhǎng)
[25,15,25]
0.003248
0.01
150
[15,12,15]
0.0022809
0.01
125
[12,10,12]
0.0025866
0.01
100
[10,8,10]
0.0039575
0.01
75
[8,5,8]
0.013529
0.01
50
1.1.2??展開
如圖4所示,將各個(gè)RBM連接,得到自編碼神經(jīng)網(wǎng)絡(luò)。預(yù)訓(xùn)練所得到的權(quán)值,將作為整個(gè)自編碼神經(jīng)網(wǎng)絡(luò)的初始權(quán)值,參與整個(gè)網(wǎng)絡(luò)的微調(diào)訓(xùn)練。
圖4???RBM展開圖
Fig.?4??Development?of?RBM?network?structure
1.1.3??微調(diào)
微調(diào)訓(xùn)練是在預(yù)訓(xùn)練得到初始權(quán)值的基礎(chǔ)上,對(duì)權(quán)值進(jìn)一步調(diào)整。采用以交叉熵為目標(biāo)函數(shù)[5]的BP算法完成網(wǎng)絡(luò)的微調(diào)訓(xùn)練。交叉熵是用來度量?jī)蓚€(gè)概率分布間差異性的,它是一個(gè)非負(fù)數(shù),兩個(gè)分布越相似,其越小。原始的交叉熵定義為
(4)
式中:x為隨機(jī)變量;q(x)為已知概率分布;p(x)為估計(jì)概率分布。
對(duì)于隨機(jī)變量x,當(dāng)用q(x)估計(jì)p(x)時(shí),通過調(diào)整受x影響的p(x)來最小化交叉熵D(p‖q),用于自編碼神經(jīng)網(wǎng)絡(luò)權(quán)值調(diào)整的BP算法交叉熵函數(shù)形式為
(5)
式中:ti目標(biāo)概率分布;yi實(shí)際概率分布。
整個(gè)網(wǎng)絡(luò)訓(xùn)練的目的是調(diào)整權(quán)值以使交叉熵函數(shù)達(dá)到最小,權(quán)值調(diào)整公式為
根據(jù)上面的權(quán)值調(diào)整公式,可以完成網(wǎng)絡(luò)的微調(diào)訓(xùn)練。訓(xùn)練結(jié)果如表3所示。
表3 ??微調(diào)訓(xùn)練結(jié)果
1.1.4?特征提取
50組標(biāo)題(每個(gè)標(biāo)題不超過25個(gè)漢字)的學(xué)習(xí)訓(xùn)練,通過自編碼網(wǎng)絡(luò)的逐層特征變換,將樣本數(shù)據(jù)約1250(50×25)個(gè)漢字編碼,在原空間的特征表示變換到一個(gè)新特征空間。其中網(wǎng)絡(luò)最深隱含層的輸出值(5個(gè))和權(quán)值矩陣W6(5×8=40個(gè)),共計(jì)45個(gè),為提取標(biāo)題文本1250個(gè)漢字編碼的特征值。
2??實(shí)??例
本文選取10組標(biāo)題文本見表4,分別輸入自編碼神經(jīng)網(wǎng)絡(luò)。預(yù)測(cè)結(jié)果表示基本符合要求。
表4??預(yù)測(cè)結(jié)果
Tab.?4??The?prediction?results
序號(hào)
樣本輸入
結(jié)果顯示
1
我國(guó)自主研制的蛟龍?zhí)柹钏綔y(cè)器成功替代進(jìn)口
無
2
我國(guó)自主研制首臺(tái)3.6萬噸垂直擠壓機(jī)擠合格鋼管成功替代進(jìn)口
我國(guó)自主研制首臺(tái)3.6萬噸垂直擠壓機(jī)擠合格鋼管成功替代進(jìn)口
3
我國(guó)自主研制的超級(jí)計(jì)算機(jī)系統(tǒng)成功替代進(jìn)口
無
4
我國(guó)自主研發(fā)的1000MPa高壓共軌管成功替代進(jìn)口
我國(guó)自主研發(fā)的1000MPa高壓共軌管成功替代進(jìn)口
5
我國(guó)自主研制超臨界電站無縫鋼管T92、P92成功替代進(jìn)口
我國(guó)自主研制超臨界電站無縫鋼管T92、P92成功替代進(jìn)口
6
我國(guó)自主研制重載火車頭下線成功替代進(jìn)口
無
7
我國(guó)自主研制成功特高壓交、直流套管成功替代進(jìn)口
我國(guó)自主研制成功特高壓交、直流套管成功替代進(jìn)口
8
我國(guó)自主研制的Q355GNH系列耐候鋼成功替代進(jìn)口
我國(guó)自主研制的Q355GNH系列耐候鋼成功替代進(jìn)口
9
我國(guó)自主研制的渦槳支線飛機(jī)成功替代進(jìn)口
無
10
我國(guó)自主研制釩微合金L290管線鋼成功替代進(jìn)口
我國(guó)自主研制釩微合金L290管線鋼成功替代進(jìn)口
3??結(jié)??語
本文按照標(biāo)題文本分類檢索信息,解決了直接按照關(guān)鍵詞搜索信息,網(wǎng)頁中經(jīng)常顯示幾千條包含關(guān)鍵詞內(nèi)容的標(biāo)題本文,從而導(dǎo)致讀入分析信息量過于巨大的問題。通過自編碼神經(jīng)網(wǎng)絡(luò)提取文本特征,在不損傷文本核心信息的情況下盡量減少要處理的單詞數(shù),以此來降低向量空間維數(shù),簡(jiǎn)化計(jì)算,提高了文本處理的速度和效率。
參考文獻(xiàn):
[2]?趙杜娟,?劉高平,?黃華,?等.自編碼神經(jīng)網(wǎng)絡(luò)車牌字符識(shí)別研究[C]//多媒體學(xué)術(shù)會(huì)議(NCMT2009).?西安:清化大學(xué)出版社,?2009:?113-119.
[3]?吳芬芬.?信息抽取算法研究.?吉林大學(xué)碩士學(xué)位論文,?2006.
[4]?劉高平,?趙杜娟,?黃華.基于自編碼神經(jīng)網(wǎng)絡(luò)重構(gòu)的車牌數(shù)字識(shí)別[J].電子激光,?2011,?22(1):?144-148.LIU
[5]?ZHANG?Jian,?FAN?Xiaoping,?et?al.?Research?on?characters?segmentation?and?characters?recognition?in?intelligent?LPR?system[C]//Proceedings?of?the?25th?Chinese?Control?Conference.?Harbi:?Beihang?University?Press,?2006:?7-11.
[1]G.E.Hinton,?R.R.Salakhutdinov.?Reducing?the?Dimensio-?nality?of?Data?with?Neural?Networks,?Science?313:504-507,?2006.