亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于神經網絡語言模型的動態(tài)層序Softmax訓練算法

        2020-03-24 06:47:14楊鶴標胡驚濤
        江蘇大學學報(自然科學版) 2020年1期
        關鍵詞:單詞模型

        楊鶴標, 胡驚濤, 劉 芳

        (江蘇大學 計算機科學與通信工程學院, 江蘇 鎮(zhèn)江 212013)

        詞向量作為單詞的特征向量或表征,因其表現形式呈現矩陣化,故而能夠充分發(fā)揮計算機的計算能力[1].因此如何高效訓練詞向量,成為解決自然語言處理(natural language process, NLP)任務的基礎性問題.Y. BENGIO等[2]率先提出利用前饋神經網絡訓練詞向量,通過對單詞的分布式表達解決數據稀疏對統計建模的影響,受到廣泛學者的青睞,但其缺點是深層網絡訓練帶來的參數訓練低效問題.為此,眾多學者或研究人員針對該問題提出了不同訓練方法,如E. H. HUANG等[3]在此基礎上,提出了多任務訓練的思路,即通過共享訓練參數提高訓練效率.J. PENNINGTON等[4]提出了Glove模型,利用對共現矩陣進行分解的方式獲得詞向量.L. VILNIS等[5]提出一種概率圖模型,將每個單詞映射為一個多維高斯分布,然后該分布的均值就是對應單詞的詞向量.然而這些模型都不能有效表示NLP任務中所涉及的多義詞.為解決這個問題,提升詞向量的表示質量,T. MIKOLOV等[6]提出Word2Vec模型,引入負采樣和層序Softmax,建立全局上下文和單詞的訓練模型,將文本內容簡化為K維向量空間中的向量運算,把單詞的語義信息蘊含于數值中,獲得更加緊湊的變現形式與泛化屬性[7].Word2Vec雖然在一定程度上解決了多義詞的表示問題,但是其訓練過程中所使用的層序Softmax算法對增量樣本的敏感度極低,導致無法滿足實際對增量訓練的要求.

        針對層序Softmax算法對增量樣本的敏感度極低的問題,文中提出動態(tài)層序Softmax算法,通過改進該算法依賴的編碼樹常規(guī)生成模式,采用結點置換方法使得增量樣本所依賴的編碼樹是通過對舊編碼樹結點的調整所得,保證訓練數據的加載與編碼樹的構建同步進行,從而滿足增量訓練要求,避免多次遍歷數據樣本.同時文中提出利用梯度的矩估計動態(tài)調整訓練過程中參數的更新方向以及學習率,解決損失函數因樣本量少而出現的震蕩現象,有效提高訓練效率.

        1 相關工作

        1.1 神經網絡語言模型

        神經網絡語言模型(neural network language models, NNLM)的結構如圖1所示,模型利用神經網絡在非線性擬合方面的能力推導出詞匯或者文本的分布式表示[8].

        圖1 NNLM結構示意圖

        NNLM模型由特征映射和條件概率分布計算兩部分組成.特征映射是通過映射矩陣C∈R|V|×m將輸入單詞映射為特征向量,該過程將得到的{C(Wt-n+1),C(Wt-n),…,C(Wt-1)}合成為(n-1)m維詞向量矩陣.條件概率分布計算則是通過概率函數G將詞向量矩陣轉為一個概率分布y∈R|V|,即

        F(i,wt-1,wt-2,…,wt-n+1)=G[i,C(wt-1,wt-2,…,wt-n+1)],

        (1)

        最后的網絡輸出層采用Softmax函數,表示為

        (2)

        Word2Vec作為一款基于NNLM的NLP工具,將傳統的NNLM改進為CBOW與Skip-gram兩個模型.兩種模型結構類似,但訓練思路稍顯不同.CBOW模型通過訓練樣本中的上下文來預測中心詞的出現概率[9].而Skip-gram模型是根據中心詞來預測上下文,即輸入特定單詞,輸出該單詞上下文的詞向量.此外,Skip-gram模型在處理文本時采用跳過一些單詞去取共現單詞的方式,獲取與當前單詞非直接相連單詞之間的關系[10].

        1.2 訓練優(yōu)化算法

        由于訓練樣本單詞數量一般在百萬級別以上,如果采用一般的分類回歸算法,就意味著輸出層需要通過Softmax函數來計算每個單詞的輸出概率,導致計算量與單詞數量級大小直接相關.因此在訓練過程中,采用層序Softmax、負采樣兩種算法來解決計算量問題.

        層序Softmax算法采用了Huffman編碼樹代替隱藏層到輸出Softmax層的映射[11].與Softmax相比,該算法將輸入層中的單詞組成特征向量,通過線性變換映射到隱藏層;根據單詞出現的頻率構建編碼樹,輸出結點編碼,避免計算所有單詞的輸出概率,解決計算量的問題.此時的計算復雜度為O(HlbK),其中K為類別數量,H為文本特征的維度數.

        由于層序Softmax對生僻單詞不敏感,T.MIKOLOV等[6]提出負采樣(negative sampling,NEG)算法.NEG的本質是根據已知概率密度函數來估計未知的概率密度函數.輸出層采用隨機負采樣來替代編碼樹,因此NEG不對目標詞W路徑的中間結點進行更新,而是隨機選取部分中間結點對其權重進行更新,從而提高模型應對生僻單詞的訓練速度和詞向量的質量.但在訓練常用單詞時,訓練效率并沒有層序Softmax算法顯著[12].

        2 詞向量的增量訓練

        有研究[13]表明,層序Softmax算法是依賴對訓練樣本進行編碼來完成詞向量的訓練,可見如何實現編碼樹的高效構建是提高訓練效率的關鍵.由于該編碼方式需要對原始數據進行兩次掃描,勢必會在編碼過程中造成較大的時延;并且一旦編碼完成,編碼樹結構將固化不變,導致層序Softmax算法無法滿足增量訓練的要求.針對上述問題,文中提出動態(tài)層序Softmax算法,通過編碼樹的動態(tài)構建來解決結構的固化問題,進而實現詞向量的增量訓練,并且提高訓練效率.

        2.1 構建動態(tài)編碼樹

        fori←1 toNdo

        ncurrent←findnode(wi,Tree)

        ifncurrentnot inTreethen

        whilencurrent≠Rootdo

        swap(Tree.NYT,ncurrent.NYT)

        Tree.NYT←Tree.NYT+1

        wi.NYT←ncurrent

        end while

        end if

        ifncurrent.Weight=max(bcurrent)then

        ncurrent.Weigh←ncurrent.Weight+1

        else

        swap(max(bcurrent),ncurrent)

        end if

        swap(ncurrent.Parent,ncurrent)

        end for

        構建動態(tài)編碼樹步驟如下:

        1) 定義結點屬性.

        定義1結點編號:按照層序遍歷的方式,為編碼樹中的所有結點倒序編號,具體編號方式為

        T={(node1:k),(node2:k-1), …,(nodek:1)},k=1,2,…,n.

        (3)

        定義2所屬塊:具有相同權重W的結點屬于同一所屬塊B,即如果wnodei=wnodej,則有:

        bn+={nodei,nodej}.

        (4)

        綜上,結點的特征總結如下: ① 結點的權重越大編號越大. ② 父結點的編號總是大于子結點的編號.以上特征稱作兄弟屬性,在動態(tài)構建過程中必須時刻滿足.

        2) 編碼樹初始化.在初始化編碼樹時,由于無法預先得知訓練樣本中單詞的出現頻率,此時初始狀態(tài)只能包含一個葉子結點(not yet transmitted,NYT)記作逸出結點,WeightNYT=0.此時,NYT有兩種作用: ① 在編碼時,當有未出現在樹中的單詞需要編碼時,就會輸出NYT編碼;在解碼時,如果讀取編碼的過程中出現NYT,就說明該部分暫時不屬于編碼. ② 插入新單詞時,需要根據NYT的位置構建一顆包含NYT和新單詞兩個結點的新子樹,舊NYT結點由該子樹替代,并將原NYT和新單詞結點權值取1.

        3) 編碼樹更新.在更新過程中,為避免破壞兄弟屬性,需對結點權重、編號同步更新.因此,在對結點進行權重更新時,首先判斷該結點的編號是否是所在塊中的最大編號,如圖2所示.

        在對單詞W4進行增量訓練時,由于此時W4對應結點編號已是所屬塊中的最大編號,直接更新權重;否則將該結點與所在塊中最大結點編號的結點交換位置,再增加結點的權重值.此時該結點的結點編號置換為所在塊中的最大值,因此權重增加后兄弟屬性仍然滿足.最后,由于結點的權重發(fā)生變化,因此結點的父結點也必須更新權重,直至根結點.更新完成后的編碼樹如圖3所示.此時,由于僅需掃描一遍樣本,因而動態(tài)構建編碼樹的時間復雜度就由原先的O(N2)降低為O(N).

        圖2 原始編碼樹

        圖3 更新后編碼樹

        2.2 裁剪編碼樹

        編碼樹的新增結點數增長與新增單詞數量相關,導致樹的結構變化較大,因此上述方法得到的編碼樹結構并不穩(wěn)定.隨著訓練樣本的不斷增加,會產生越來越多的新結點,而受到影響的原有結點增長幅度卻遠不如新增結點的增加幅度.

        由于編碼樹會根據單詞的頻率來分配權重,頻率較低的單詞結點由于離根結點較遠,也就容易發(fā)生位置上的改變.為減少低頻詞對訓練造成的影響,需要在編碼樹構建完成時,根據預設的裁剪權重,裁剪樹中所有權重小于預設權重的結點,過濾出現頻率低的單詞結點.

        最終,將Word2Vec模型中的靜態(tài)編碼樹替換為文中的動態(tài)編碼樹,進而完成詞向量的訓練.調整后的模型結構圖如圖4所示.

        圖4 基于動態(tài)層序Softmax算法NNLM網絡

        2.3 網絡訓練

        假設給定訓練單詞序列W,而w1,w2,…,wT為序列W中的單詞,觀察窗口大小為C.CBOW訓練過程通過給定上下文來預測中心詞的出現概率,因此,目標函數為

        (5)

        (6)

        將其帶入目標函數當中,將目標函數改寫為

        (7)

        采用梯度訓練對目標函數進行參數估計,利用梯度迭代過程縮小權值變化范圍.

        2.4 梯度方向優(yōu)化

        為最大化預測詞的出現概率,因此采用隨機梯度上升算法優(yōu)化目標函數,即

        (8)

        每次選取的樣本數量較小將導致損失呈現震蕩方式上升的問題,故引入自適應動量估計算法,采用參數動量更新與自適應學習率相結合的方式優(yōu)化梯度方向,即

        (9)

        (10)

        此時所求得的Xw是中心詞w的上下文詞向量之和,故直接將Xw更新到詞向量上,完成詞向量的訓練過程,即

        (11)

        3 試驗結果與分析

        3.1 試驗數據和參數設置

        試驗數據來源于維基百科中文語料(約3.5 GB),借助Jieba分詞工具對數據進行分詞和過濾,得到84 766 832個句子以及441 670 563個獨立單詞.將其中約2 GB語料作為初始訓練數據,其余數據為增量訓練樣本,分別以10 kB,100 kB,1 MB,10 MB,100 MB和1 GB依次添加到原初始訓練數據中.試驗分別記錄兩種算法在處理不同大小的增量訓練樣本時所需的訓練時間以及詞向量之間的相似度來對訓練效率、效果進行衡量.

        在對維基中文語料的訓練過程中,主要涉及Size等超參數.在處理NLP任務時,當詞向量大于150維之后訓練效果的提升較小,維度越大,所需訓練時間越長[14].鑒于維度較小的詞向量不足以提取單詞中的特征,試驗將詞向量的訓練維度設置為128維,將觀察窗口大小設置為8個單詞.考慮到一個單詞在語料數據集的中出現頻率也從側面體現了該單詞的重要性,頻率越低重要性越小,因此將最低出現頻率設置為5個單詞/語料數據集,對編碼樹進行結點裁剪.超參數設置如表1所示.

        表1 主要訓練超參數

        3.2 訓練效率分析

        通過對比CBOW與Skip-gram模型在采用層序Softmax與動態(tài)層序Softmax作為訓練算法時的訓練時間、訓練增速來評估兩種算法的訓練效率.訓練時間如圖5所示.

        圖5 訓練時間對比圖

        從圖5可見,當使用層序Softmax來處理增量數據時,CBOW與Skip-gram模型的訓練時間在10 kB到100 MB之間較為平緩.而使用文中所提出的動態(tài)層序Softmax 算法進行訓練時,訓練時間明顯下降.原因在于10 kB到100 MB的增加訓練數據相較于初始訓練數據集(2 GB)來說太小,而層序Softmax算法對少量數據的增加并不敏感,使得訓練時間增長較為平緩.但是動態(tài)層序Softmax在設計上就能隨著數據的增加而自適應調整,因而在訓練小體積的增量數據時能夠顯著提高訓練效率.此外,CBOW與Skip-gram模型在采用動態(tài)層序Softmax算法時的訓練加速度情況如圖6所示.

        圖6 訓練增速對比圖

        Skip-gram模型具有通過中心詞來預測觀測詞出現概率的特性,因此在訓練少量增量數據時的訓練增速要稍好于CBOW模型.譬如在增量數據在10 kB~1 MB時,Skip-gram模型的增速能達到3倍,CBOW 模型也獲得近10倍的增速,可見無論是CBOW還是Skip-gram模型,在采用動態(tài)層序 Softmax算法來訓練增量數據時,訓練效率都有顯著的提高.

        3.3 訓練質量分析

        表2 訓練質量對比

        注:“層序”代表層序Softmax算法;“動態(tài)”代表動態(tài)層序Softmax算法.

        從表2可見,在該數據集上無論是采用CBOW還是Skip-gram模型,層序Softmax算法計算得到的MMSE以及CCoS都與動態(tài)Softmax在不同維度計算結果均有提高.其中MMSE最為顯著,分別提升0.19×10-3,0.15×10-3,0.24×10-3,0.39×10-3.試驗表明,采用動態(tài)層序Softmax訓練質量也處于很高的水準,能夠滿足實際訓練的需要.

        4 結 論

        文中提出了動態(tài)層序Softmax訓練算法,通過改進編碼的構建流程進而實現對增量語料訓練,得到訓練效率的提高.試驗結果表明,在處理增量語料時,文中所提出的訓練算法相比層序Softmax,在詞向量訓練效率和訓練質量上都有顯著提升.

        進一步的研究工作如下: ① 如何將該算法擴展到其他高級神經網絡模型中; ② 基于語言線性平移特性訓練詞向量,實現實體識別、知識推理、知識圖譜等其他應用中.

        猜你喜歡
        單詞模型
        What’s This?
        Exercise 1
        一半模型
        重要模型『一線三等角』
        重尾非線性自回歸模型自加權M-估計的漸近分布
        單詞連一連
        看圖填單詞
        看完這些單詞的翻譯,整個人都不好了
        3D打印中的模型分割與打包
        FLUKA幾何模型到CAD幾何模型轉換方法初步研究
        在线视频播放观看免费| 亚洲成a人片77777kkkkk| 狠狠色成人综合网| 国产精品一区二区三区自拍| 日本大片在线一区二区三区| 亚洲国产精品久久久久久网站 | 久久精品国产亚洲av天| 成人综合亚洲欧美一区h| 少妇饥渴xxhd麻豆xxhd骆驼| 人妻少妇精品久久久久久| 国产91在线播放九色快色| 国产午夜精品美女裸身视频69| 亚洲精品字幕| 三年片在线观看免费观看大全中国| 国产精品一区二区三区女同| 国产精品18久久久久网站 | 亚洲第一区无码专区| 国产精品.xx视频.xxtv| 无套熟女av呻吟在线观看| 一本色道久久综合亚洲精品不| JIZZJIZZ国产| 日日躁夜夜躁狠狠躁超碰97 | 国产内射视频在线播放| 成人无码h真人在线网站| 亚洲七久久之综合七久久| 优优人体大尺大尺无毒不卡 | 精品免费在线| 台湾无码av一区二区三区| 超级乱淫片国语对白免费视频| 亚洲日本精品一区久久精品| 亚洲a∨天堂男人无码| 在线永久免费观看黄网站| 成人午夜特黄aaaaa片男男| 水蜜桃男女视频在线观看网站| 国产欧美亚洲精品第二区首页| 在线播放无码高潮的视频| 国产大屁股视频免费区| 中文字幕丰满人妻被公强| 亚洲夫妻性生活视频网站| 久久精品视频91| 婷婷四房播播|