欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于Zolu函數(shù)的詞嵌入學(xué)習(xí)模型及訓(xùn)練方法與流程

文檔序號:11774486閱讀:313來源:國知局
本發(fā)明涉及一種基于zolu函數(shù)的詞嵌入學(xué)習(xí)模型及訓(xùn)練方法,屬于自然語言處理、詞嵌入、詞相似度計(jì)算以及詞表達(dá)準(zhǔn)確度
技術(shù)領(lǐng)域
:。
背景技術(shù)
::自然語言學(xué)習(xí)模型是神經(jīng)網(wǎng)絡(luò)模型的一種典型應(yīng)用。其發(fā)展過程中有如下幾個(gè)里程碑:(1)bengio在2003年將神經(jīng)網(wǎng)絡(luò)分為輸入層(詞語id),投影層(projection層,由詞語id轉(zhuǎn)換為詞向量),隱含層和輸出層,此神經(jīng)網(wǎng)絡(luò)的復(fù)雜度如下:q=n*d+n*d*h+h*v;其中n*d為輸入層和投影層之間的權(quán)重,n表示上下文長度,不是n-gram中的n,d是輸入詞的實(shí)數(shù)表示的維度;n*d*h計(jì)算出了投影層到隱含層之間的權(quán)重?cái)?shù)量,h是隱含層的節(jié)點(diǎn)數(shù)目,h*v表示隱含層和輸出層之間的權(quán)重?cái)?shù)目,v是輸出層的節(jié)點(diǎn)數(shù)目;此模型在n-gram模型基礎(chǔ)上,引入詞向量的關(guān)聯(lián)度,是后續(xù)所提模型的基礎(chǔ);(2)mikolov2010年提出recurrentneuralnetworklanguagemodel(rnnlm)模型的復(fù)雜度為q=h*h+h*v;(3)2013年,mikolov在上述神經(jīng)網(wǎng)絡(luò)模型基礎(chǔ)之上,提出了cbow和sg學(xué)習(xí)模型,其本質(zhì)是一種log-bilinear模型。此模型利用huffman二叉樹來代替原模型中的線性結(jié)構(gòu),同時(shí)對輸出層進(jìn)行了改造,使得神經(jīng)網(wǎng)絡(luò)的復(fù)雜度降低為h*log(v),將神經(jīng)網(wǎng)絡(luò)訓(xùn)練語言模型的效率提升了40%;(4)2013年10月,mikolov在nips會(huì)議上對連續(xù)詞袋(continuousbag-of-words,cbow)及跳詞(skip-gram,sg)模型中的負(fù)采樣(negativesampling,ns)和分層softmax(hierarchicalsoftmax,hs)模塊進(jìn)行了分析,并同時(shí)公開了word2vec源代碼。從而引發(fā)了對這一強(qiáng)大的詞向量表示工具的廣泛分析與研究。word2vec作為淺層深度學(xué)習(xí)模型的代表之作,極大降低了語言模型以及詞向量訓(xùn)練的復(fù)雜度,同時(shí)由于將詞向量之間的相關(guān)含義加入到了訓(xùn)練過程中,使得詞向量的訓(xùn)練結(jié)果有著良好的相似度匹配關(guān)系。也正因?yàn)閣ord2vec可以在向量空間上將含義相近的詞的距離縮短,使得該工具在“推薦”方面擁有了廣泛的應(yīng)用市場。例如在輸入法中,對于成型的自然語言,用戶只需輸入前面的個(gè)別字或者是詞,輸入法可以自動(dòng)通過推斷來推薦出用戶接下來可能要打的語句。這一應(yīng)用極大的便利了電腦輸入法的使用。繼2013年后,鮮有文章對mikolov所提的cbow及sg模型進(jìn)行改進(jìn),大部分是將其所提模型應(yīng)用于各個(gè)領(lǐng)域中,往往均能取得良好的效果。因?yàn)?,所提模型解決了維度災(zāi)難問題,能夠高效進(jìn)行降維處理,訓(xùn)練樣本充足情況下,相似度及準(zhǔn)確度性能也比現(xiàn)有其他模型都高。因此,隨著近幾年的應(yīng)用,人們發(fā)現(xiàn)word2vec代碼及其揭示的cbow和sg學(xué)習(xí)模型,是近乎“完美”的;改進(jìn)空間不大。但依然有相關(guān)改進(jìn)文獻(xiàn)產(chǎn)生,經(jīng)過資料檢索,有如下幾項(xiàng):1)文章“implicitlyincorporatingmorphologicalinformationintowordembedding”在mikolov提出模型基礎(chǔ)上引入詞素:即前綴、后綴和詞根,并基于此提出了mwe-a、mwe-s和mwe-m三種模型。文章將詞素含義作為計(jì)算詞向量空間距離的一個(gè)因素;從實(shí)驗(yàn)結(jié)果來看,在wordsim-353黃金準(zhǔn)則下,比cbow模型在準(zhǔn)確度性能方面提升了5%,在rg-65黃金準(zhǔn)則下,比原cbow在準(zhǔn)確度性能方面提升了7%。2)文獻(xiàn)“too/twosimpleadaptationsofword2vecforsyntaxproblems”結(jié)合詞向量順序進(jìn)一步增加詞向量計(jì)算的關(guān)聯(lián)度。也使得cbow模型性能得到了一定的提升。技術(shù)實(shí)現(xiàn)要素:本發(fā)明的目的在于進(jìn)一步提升現(xiàn)有詞嵌入模型的準(zhǔn)確度和相似度性能,提出了一種基于zolu函數(shù)的詞嵌入學(xué)習(xí)模型及訓(xùn)練方法。一種基于zolu函數(shù)的詞嵌入學(xué)習(xí)模型及訓(xùn)練方法,包括一種基于zolu函數(shù)的詞嵌入學(xué)習(xí)模型及一種基于zolu函數(shù)的詞向量訓(xùn)練方法。一種基于zolu函數(shù)的詞嵌入學(xué)習(xí)模型,從功能上又具體包括zl-cbow模型和zl-sg模型;還包括hs模式和ns模式;其中,hs指hierarchicalsoftmax即分層softmax,ns指negativesampling,即負(fù)采樣;ss即subsampling是ns可選的功能組成之一,可進(jìn)一步設(shè)定和選擇實(shí)現(xiàn)ss功能;一種基于zolu函數(shù)的詞嵌入學(xué)習(xí)模型,從組成上包括參數(shù)輸入模塊、初始化模塊、激活函數(shù)表建立模塊、構(gòu)建詞匯表模塊、霍夫曼二叉樹構(gòu)建模塊、詞向量處理模塊、詞向量訓(xùn)練模塊以及聚類處理模塊;一種基于zolu函數(shù)的詞嵌入學(xué)習(xí)模型,各模塊功能如下:參數(shù)輸入模塊的功能是接收以訓(xùn)練文件名、輸出文件名、batch大小、窗口尺寸、輸出的詞向量維數(shù)、采樣閾值、負(fù)采樣數(shù)目、hs選擇、cbow選擇以及循環(huán)次數(shù)為主的輸入?yún)?shù);參數(shù)輸入模塊的功能還包括配置以debug模式、binary輸出選擇、學(xué)習(xí)率、線程數(shù)、最小詞頻、聚類簇個(gè)數(shù)、建立詞典結(jié)構(gòu)體以及哈希表分配為主的參數(shù);其中,輸出文件名是存儲訓(xùn)練好的詞向量的文件;cbow選擇為0時(shí)使用zl-sg模型,為1時(shí),選擇zl-cbow模型;采樣閾值是指詞頻超過多少將被采樣;負(fù)采樣數(shù)目的大小控制著負(fù)采樣映射表的建立;hs選擇為1時(shí),選擇hs模式,為0時(shí),為ns模式;初始化模塊的功能是接收參數(shù)輸入模塊的變量及參數(shù),并且分別針對hs模式和ns模式申請動(dòng)態(tài)數(shù)組;激活函數(shù)表建立模塊的功能是基于zolu函數(shù)建立激活函數(shù)表,并且存儲到exptable數(shù)組中;構(gòu)建詞匯表模塊的功能是構(gòu)建詞匯表;霍夫曼二叉樹構(gòu)建模塊的功能是構(gòu)建霍夫曼二叉樹;詞向量處理模塊的功能是在負(fù)采樣數(shù)目大于1時(shí),為每個(gè)單詞建立能量對應(yīng)表,即負(fù)采樣映射表;詞向量訓(xùn)練模塊的功能是基于zolu函數(shù)展開zl-cbow學(xué)習(xí)模型的hs或ns;以及zl-sg學(xué)習(xí)模型的hs或ns模式詞訓(xùn)練;聚類處理模塊的功能是對詞向量訓(xùn)練結(jié)果基于k-means算法進(jìn)行分類。一種基于zolu函數(shù)的詞嵌入學(xué)習(xí)模型,各模塊的連接關(guān)系如下:參數(shù)輸入模塊與初始化模塊相連;初始化模塊與激活函數(shù)表建立模塊相連;構(gòu)建詞匯表模塊與霍夫曼二叉樹構(gòu)建模塊相連;霍夫曼二叉樹構(gòu)建模塊與詞向量處理模塊相連;詞向量處理模塊與詞向量訓(xùn)練模塊相連;激活函數(shù)表建立模塊與詞向量訓(xùn)練模塊相連;詞向量訓(xùn)練模塊與聚類處理模塊相連。一種基于zolu函數(shù)的詞向量訓(xùn)練方法,包括如下步驟:步驟一、參數(shù)輸入模塊接收各種詞訓(xùn)練參數(shù)并配置各種參數(shù);其中,詞訓(xùn)練參數(shù)主要包括:訓(xùn)練文件名、輸出文件名、batch大小、窗口尺寸、輸出的詞向量維數(shù)、采樣閾值、負(fù)采樣數(shù)目、hs選擇、cbow選擇以及循環(huán)次數(shù);其中,訓(xùn)練文件名也可以不輸入,如果不輸入訓(xùn)練文件名,則在構(gòu)建詞匯表時(shí),通過讀原有詞庫來生成詞匯表;其中,配置的各種參數(shù)包括debug模式、binary輸出選擇、學(xué)習(xí)率、線程數(shù)、最小詞頻、聚類簇個(gè)數(shù)、建立詞典結(jié)構(gòu)體以及哈希表分配;步驟二、激活函數(shù)表建立模塊建立激活函數(shù)表;其中,激活函數(shù)表基于如下公式(1)中的zolu函數(shù):其中,表格大小可以根據(jù)精度需要進(jìn)行調(diào)整,zolu函數(shù)也可以替換為還可以替換成其他輸入范圍不受限制,輸出值為0到1之間的激活函數(shù);步驟三、構(gòu)建詞匯表模塊構(gòu)建詞匯表,具體分為如下兩種情況:3.1從原有詞庫中生成詞匯表;具體調(diào)用readvocab()函數(shù)實(shí)現(xiàn);3.2從訓(xùn)練文本中提取詞匯表;具體調(diào)用learnvocabfromtrainfile()函數(shù)實(shí)現(xiàn);其中,原有詞庫生成詞匯表,僅發(fā)生在無訓(xùn)練文本輸入文件情況下;步驟四、初始化模塊初始化各詞向量;初始化的各詞向量包括syn0、syn1、syn1neg并給syn0賦予初始值;還包括給hs和ns模式申請動(dòng)態(tài)數(shù)組;步驟五、霍夫曼二叉樹構(gòu)建模塊構(gòu)建映射層到輸出層的權(quán)重,即生成二叉樹,并根據(jù)詞頻給每個(gè)詞設(shè)定其在霍夫曼二叉樹的位置;生成二叉樹具體通過createbinarytree函數(shù)實(shí)現(xiàn),生成一棵節(jié)點(diǎn)數(shù)為2*vocab_size+1個(gè)節(jié)點(diǎn)的霍夫曼二叉樹;其中,步驟四和步驟五具體通過initnet()函數(shù)實(shí)現(xiàn);步驟六、判斷是否為ns模式,若為ns,則根據(jù)詞頻建立負(fù)采樣映射表,若不是ns模式,跳過此步驟,直接執(zhí)行步驟七;步驟六具體為:判斷是否為ns通過判斷步驟一參數(shù)中的負(fù)采樣數(shù)目是否大于零,若大于零表明采用要建立負(fù)采樣映射表,否則不建立;負(fù)采樣映射表具體通過initunigramtable()函數(shù)實(shí)現(xiàn),在建立詞頻映射表時(shí),優(yōu)選的詞頻指數(shù)為0.75次方,也可以是其他數(shù)值;步驟七、詞向量訓(xùn)練模塊對步驟三構(gòu)建的詞向量通過基于zolu函數(shù)的不同詞訓(xùn)練模型進(jìn)行訓(xùn)練,具體為:判斷步驟一中的cbow參數(shù)選項(xiàng)是0還是1,并根據(jù)cbow參數(shù)選項(xiàng)決定執(zhí)行7.1還是7.2操作:7.1cbow參數(shù)選項(xiàng)為1時(shí),則進(jìn)一步判斷hs選擇是0還是1,并進(jìn)行如下操作:7.1a當(dāng)hs為1時(shí),跳入zl-cbow模型的hs模式進(jìn)行詞向量訓(xùn)練;其中,zl-cbow模型的hs模式下詞向量訓(xùn)練xw和的更新公式分別為(2)和(3):其中,xw代表更新的詞向量;代表從根節(jié)點(diǎn)出發(fā)到w路徑上第j-1個(gè)非葉子節(jié)點(diǎn)對應(yīng)的向量,為更新參數(shù);代表從根節(jié)點(diǎn)出發(fā)到w路徑上第j個(gè)節(jié)點(diǎn)對應(yīng)的編碼,具體含義為:表明第j個(gè)節(jié)點(diǎn)是第j-1個(gè)節(jié)點(diǎn)的子節(jié)點(diǎn),對應(yīng)編碼為0,條件概率表達(dá)為:表明第j個(gè)節(jié)點(diǎn)不是第j-1個(gè)節(jié)點(diǎn)的子節(jié)點(diǎn),對應(yīng)編碼為1,ηθ和ηw分別代表動(dòng)態(tài)更新的和xw的學(xué)習(xí)率,兩者初始值是相同的,優(yōu)選的初始值是0.025,也可以不同;中的參數(shù)t代表xw和的內(nèi)積;7.1b當(dāng)hs為0時(shí),跳入zl-cbow模型的ns模式進(jìn)行詞向量訓(xùn)練;其中,zl-cbow模型在ns模式下詞向量訓(xùn)練的xw和θu的更新公式分別為(4)和(5):其中,xw代表更新的詞向量;θu代表當(dāng)前樣本u對應(yīng)的輔助向量,為待訓(xùn)練參數(shù);lw(u)=1代表u=w,即u是正樣本,否則lw(u)=0代表u≠w,即u是負(fù)樣本;和分別代表動(dòng)態(tài)更新的θu和xw的學(xué)習(xí)率,兩者初始值可以相同,也可以不同,若需要設(shè)置不同的初始學(xué)習(xí)率,需要分別設(shè)置兩個(gè)學(xué)習(xí)率參數(shù),word2vec源代碼中采用的是相同的初始學(xué)習(xí)率初值及動(dòng)態(tài)更新值;中的參數(shù)t代表xw和的內(nèi)積;7.2cbow參數(shù)選項(xiàng)為0時(shí),則進(jìn)一步判斷hs選擇是0還是1,并進(jìn)行如下操作:7.2a當(dāng)hs為1時(shí),跳入zl-sg模型中的hs模式進(jìn)行詞向量訓(xùn)練;其中,更新的詞向量vw及待更新參數(shù)分別表示如下公式(6)和(7);其中,vw代表更新的詞向量,每處理完contex(w)中的一個(gè)詞中的更新一次詞向量vw;是待更新參數(shù);和分別代表動(dòng)態(tài)更新的和vw的學(xué)習(xí)率,兩者可以相同,也可以不同;中的參數(shù)t代表vw和的內(nèi)積;代表從根節(jié)點(diǎn)出發(fā)到路徑上第j-1個(gè)非葉子節(jié)點(diǎn)對應(yīng)的向量,為節(jié)點(diǎn)的路徑長度;代表從根節(jié)點(diǎn)出發(fā)到w路徑上第j個(gè)節(jié)點(diǎn)對應(yīng)的編碼,具體含義為:代表第j個(gè)節(jié)點(diǎn)是第j-1個(gè)節(jié)點(diǎn)的子節(jié)點(diǎn),對應(yīng)編碼為0,條件概率設(shè)置為:表明第j個(gè)節(jié)點(diǎn)不是第j-1個(gè)節(jié)點(diǎn)的子節(jié)點(diǎn),對應(yīng)編碼為1,條件概率被設(shè)置為:7.2b當(dāng)hs為0時(shí),跳入zl-sg模型的ns模式進(jìn)行詞向量訓(xùn)練;其中,zl-sg模型在ns模式下詞向量訓(xùn)練的和待更新參數(shù)的更新公式分別為(8)和(9):其中,代表更新的詞向量,每處理完中的一個(gè)詞,更新一次;代表即是正樣本,否則代表即是負(fù)樣本;和分別代表動(dòng)態(tài)更新的和的學(xué)習(xí)率;neg(w)代表w的負(fù)樣本集合;步驟八、聚類處理模塊判斷步驟一配置各種參數(shù)中的聚類參數(shù)是否聚類,并根據(jù)聚類與否,決定是否進(jìn)行聚類,再保存訓(xùn)練結(jié)果,具體操作為:8.a若聚類參數(shù)k-means為1,則進(jìn)行聚類操作后再保存聚類及詞向量訓(xùn)練結(jié)果;8.b若聚類參數(shù)k-means為0,則保存詞向量訓(xùn)練結(jié)果;至此,經(jīng)過步驟一到步驟八,完成了一種基于zolu函數(shù)的詞向量訓(xùn)練方法。有益效果本發(fā)明所述的一種基于zolu函數(shù)的詞嵌入學(xué)習(xí)模型及訓(xùn)練方法,與現(xiàn)有詞嵌入模型與方法相比,具有如下有益效果:1.本發(fā)明將zolu激活函數(shù)應(yīng)用于詞嵌入領(lǐng)域,并提出了zl-cbow及zl-sg兩個(gè)詞嵌入訓(xùn)練模型,與現(xiàn)有mikolov所提模型及l(fā)l-cbow模型相比,在詞相似度方面有所提高;2.本發(fā)明所述模型及詞嵌入方法在訓(xùn)練準(zhǔn)確度方面也比mikolov所提的cbow以及l(fā)l-cbow有提高;3.本發(fā)明所述的一種基于zolu函數(shù)的詞嵌入學(xué)習(xí)模型及訓(xùn)練方法,在實(shí)現(xiàn)復(fù)雜度方面,與mikolov所提模型相比,處于同一數(shù)量級,也可以適用于極大規(guī)模語料庫的訓(xùn)練;4.本發(fā)明所提的一種基于zolu函數(shù)的詞嵌入學(xué)習(xí)模型及訓(xùn)練方法,可應(yīng)用于各種不同的“推薦”功能,即指從用戶的某一特點(diǎn)出發(fā),通過計(jì)算相似度從而為用戶推薦契合其特點(diǎn)的類似商品、書籍、音樂等;例如:依照用戶網(wǎng)購的足跡為其推薦可能喜歡的物品,依照音樂app用戶收藏的歌曲為其推薦可能喜歡的歌曲等。附圖說明圖1是本發(fā)明一種基于zolu函數(shù)的詞嵌入學(xué)習(xí)模型及實(shí)施例1中的模型組成示意圖;圖2是本發(fā)明一種基于zolu函數(shù)的詞向量訓(xùn)練方法及實(shí)施例1中的訓(xùn)練方法流程圖;圖3是本發(fā)明一種基于zolu函數(shù)的詞向量訓(xùn)練方法步驟7中的詞向量訓(xùn)練流程圖。具體實(shí)施方式本發(fā)明所述模型和方法是對word2vec詞嵌入模型的改進(jìn),word2vec源代碼下載網(wǎng)址如下:https://code.google.com/p.word2vec.提出word2vec模型的mikolov分別通過如下兩篇文章對word2vec模型進(jìn)行了較為細(xì)致的闡述:[1]tomasmikolov,kaichen,gregcorrado,andjeffreydean.efficientestimationofwordrepresentationsinvectorspace.corr,abs/1301.3781,2013.[2]t.mikolovetc.distributedrepresentationsofwordsandphrasesandtheircompositionality.oct.2013.然而,依然有一些作者寫了很多中文和英文的描述,如:[3]yoavgoldbergandomerlevy,word2vecexplained:derivingmikolovetal.’snegative-samplingword-embeddingmethod.[4]http://blog.csdn.net/itplus/article/details/37998797本發(fā)明中的公式符號及含義描述與[4]文獻(xiàn)中一致,[4]文獻(xiàn)是對word2vec數(shù)學(xué)原理的深入剖析,如有需要參考的,請?jiān)敿?xì)閱讀上述[1]到[4]文獻(xiàn)。下面再結(jié)合附圖和實(shí)施例對本發(fā)明做進(jìn)一步說明和詳細(xì)描述。實(shí)施例1本實(shí)施例結(jié)合附圖1和附圖2,敘述了本發(fā)明一種基于zolu函數(shù)的詞嵌入學(xué)習(xí)模型及訓(xùn)練方法的詳細(xì)組成與詞訓(xùn)練流程。圖1是本發(fā)明一種基于zolu函數(shù)的詞嵌入學(xué)習(xí)模型及實(shí)施例1中的模型組成示意。從圖1可以看出參數(shù)輸入模塊與初始化模塊相連;初始化模塊與激活函數(shù)表建立模塊相連;構(gòu)建詞匯表模塊與霍夫曼二叉樹構(gòu)建模塊相連;霍夫曼二叉樹構(gòu)建模塊與詞向量處理模塊相連;詞向量處理模塊與詞向量訓(xùn)練模塊相連;激活函數(shù)表建立模塊與詞向量訓(xùn)練模塊相連;詞向量訓(xùn)練模塊與聚類處理模塊相連。圖2是本發(fā)明一種基于zolu函數(shù)的詞向量訓(xùn)練方法的程圖。從圖2可以看出一種基于zolu函數(shù)的詞向量訓(xùn)練方法,包含如下步驟:步驟a:輸入及配置參數(shù),具體包括輸入?yún)?shù)和配置參數(shù):其中,輸入?yún)?shù)為:訓(xùn)練文件名、輸出文件名、batch大小、窗口尺寸、采樣數(shù)目、負(fù)采樣數(shù)目、是否使用hs、是否使用cbow以及循環(huán)次數(shù);配置參數(shù)為:debug模式、binary輸出、cbow初始學(xué)習(xí)率、sg初始學(xué)習(xí)率、線程數(shù)、最小詞頻刪除設(shè)置、是否聚類、詞典結(jié)構(gòu)體以及哈希表分配;步驟b:計(jì)算激活函數(shù)值,并存到exptable中;其中,激活函數(shù)采用zolu函數(shù),即:這里,tanh(x)=2σ(2x)-1,其中,σ(x)是sigmoid激活函數(shù),表達(dá)式為:步驟c:調(diào)用trainmodel函數(shù),具體為:步驟c.1構(gòu)建詞匯,具體又包括兩種情況:c.1a從原有詞庫中生成,通過調(diào)用readvocab()函數(shù)實(shí)現(xiàn);c.1b從訓(xùn)練文本中提取,通過調(diào)用learnvocabfromtrainfile()函數(shù)實(shí)現(xiàn);步驟c.2初始化網(wǎng)絡(luò),具體通過調(diào)用initnet()函數(shù)來實(shí)現(xiàn),具體為:分別針對hs和ns申請動(dòng)態(tài)數(shù)組,建立huffman樹,即哈夫曼樹,再對每個(gè)單詞進(jìn)行編碼;步驟c.3判斷是否是負(fù)采樣,即ns為1,如果是,則調(diào)用initunigramtable()函數(shù),為每個(gè)單詞建立能量分布表;若否,跳過此步驟;步驟c.4建立多線程,并進(jìn)行詞訓(xùn)練,詞訓(xùn)練的具體流程如圖3;步驟c.5詞訓(xùn)練結(jié)束后,釋放臨時(shí)變量,退出;步驟d判斷是否聚類,若需要聚類,調(diào)用k-means算法聚類;否則,跳過聚類過程,直接保存詞向量訓(xùn)練結(jié)果;至此,從步驟a到步驟d,完成了一種基于zolu函數(shù)的詞向量訓(xùn)練方法。圖3是本發(fā)明一種基于zolu函數(shù)的詞向量訓(xùn)練方法步驟7以及本實(shí)施例中步驟c.4的具體流程,對應(yīng)word2vec源代碼中trainmodelthread函數(shù)的操作。從圖3可以看出,步驟c.4,具體又包括:步驟i)給neu1及nue1e分配空間;其中,neu1對應(yīng)cbow相應(yīng)公式中的xw,對應(yīng)sg模型公式中的vw及nue1e對應(yīng)[4]文獻(xiàn)中偽代碼中的e,代表隱藏層中的誤差向量;累加word_count_actual,并更新last_word_count;步驟ii)打開train_file文件,判斷debug_mode值,若debug_mode值大于1,則顯示當(dāng)前學(xué)習(xí)率值、處理流程及所在線程;否則不顯示;步驟iii)更新alpha學(xué)習(xí)率;其中,學(xué)習(xí)率的更新是每訓(xùn)練10000個(gè)詞更新一次;也可以通過步驟a中的配置參數(shù)修正這個(gè)數(shù)值10000為別的數(shù)值;步驟iv)從train_file讀入一個(gè)詞;步驟v)對高頻詞進(jìn)行下采樣subsampling;步驟vi)判斷sentence是否超過1000字,若超過了就不處理;步驟vii)判斷是否cbow,并根據(jù)判斷結(jié)果進(jìn)行相應(yīng)操作,具體為:vii.a若cbow=1,則跳到步驟viii),進(jìn)入cbow;vii.b否則cbow=0,則跳到步驟viiii),進(jìn)入sg;步驟viii)判斷是否hs,并根據(jù)判斷結(jié)果進(jìn)行相應(yīng)操作,具體為:viii.a若hs=1,則進(jìn)行zl-cbow學(xué)習(xí)模型的hs模式訓(xùn)練,具體通過公式(2)和公式(3)進(jìn)行詞嵌入更新;viii.b否則hs=0,則進(jìn)行zl-cbow學(xué)習(xí)模型的ns模式訓(xùn)練,具體通過公式(4)和公式(5)進(jìn)行詞嵌入更新;步驟viiii)判斷是否hs,并根據(jù)判斷結(jié)果進(jìn)行相應(yīng)操作,具體為:viiii.a若hs=1,則進(jìn)行zl-sg學(xué)習(xí)模型的hs模式訓(xùn)練,具體通過公式(6)和公式(7)進(jìn)行詞嵌入更新;viiii.b否則hs=0,則進(jìn)行zl-sg學(xué)習(xí)模型的ns模式訓(xùn)練,具體通過公式(8)和公式(9)進(jìn)行詞嵌入更新;步驟x)訓(xùn)練結(jié)束后,釋放臨時(shí)變量,退出trainmodelthread函數(shù)。實(shí)施例2本實(shí)施例具體闡述了詞嵌入訓(xùn)練時(shí)的zl-cbow、zl-sg及激活函數(shù)對應(yīng)的代碼。zl-cbow模型中xw和更新的源代碼if(cw){for(c=0;c<layer1_size;c++)neu1[c]/=cw;if(hs)for(d=0;d<vocab[word].codelen;d++){f=0;l2=vocab[word].point[d]*layer1_size;//propagatehidden->outputfor(c=0;c<layer1_size;c++)f+=neu1[c]*syn1[c+l2];if(f<=-max_exp)f=0;elseif(f>=max_exp)f=1;elsef=exptable[(int)((f+max_exp)*(exp_table_size/max_exp/2))];//'g'isthegradientmultipliedbythelearningrateg=(1-2*vocab[word].code[d]-f)*alpha;//propagateerrorsoutput->hiddenfor(c=0;c<layer1_size;c++)neu1e[c]+=g*syn1[c+l2];//learnweightshidden->outputfor(c=0;c<layer1_size;c++)syn1[c+l2]+=g*neu1[c];}zl-cbow模型中zolu激活函數(shù)的查找表建立源代碼zl-sg模型中xw和更新的源代碼zl-sg模型中zolu激活函數(shù)的查找表建立源代碼實(shí)施例3本實(shí)施例敘述了本發(fā)明一種基于zolu函數(shù)的詞嵌入學(xué)習(xí)模型及訓(xùn)練方法,與mikolov所提模型及及l(fā)l-cbow模型相比,在詞相似度方面的提高。在該功能中,word2vec依據(jù)輸入的一個(gè)詞,將其轉(zhuǎn)換為對應(yīng)詞向量,通過對詞向量的數(shù)學(xué)運(yùn)算來找出與其有一定相似度的詞匯,按照相似度從高到低羅列出來作為結(jié)果。在該項(xiàng)功能的測試中,選擇“meat”單詞為樣例,具體測試結(jié)果如表1所示。表1相似詞推薦結(jié)果從表1可以看出,輸入meat,我們所提出的zl-cbow模型訓(xùn)練結(jié)果顯示前5個(gè)都是“肉”,且都屬于meat的相似詞;而“janodkillian;mohamedmorchid;richarddufour;georgeslinarèsalog-linearweightingapproachintheword2vecspaceforspokenlanguageunderstandingieeespokenlanguagetechnologyworkshop(slt)year:2016pages:356-361,doi:10.1109/slt.2016.7846289”提出的ll-cbow模型顯示結(jié)果中,第四個(gè)和第五個(gè)已經(jīng)不是“meat”了;cbow顯示結(jié)果中,前四個(gè)是“meat”??梢姡緦@岬膠l-cbow模型的相似詞推薦結(jié)果比cbow和ll-cbow都要好。實(shí)施例4本實(shí)施例敘述了本發(fā)明一種基于zolu函數(shù)的詞嵌入學(xué)習(xí)模型及訓(xùn)練方法在具體實(shí)施時(shí)與mikolov所提cbow模型相比,在準(zhǔn)確度方面的提高。以capital-common-countries為例,通過改變窗口尺寸大小得到不同的詞相似度準(zhǔn)確值,如下表2所述:表2不同窗口尺寸大小zl-cbow與cbow準(zhǔn)確率對比從表2中可以看出窗口尺寸從2到9依次增大情況下,使用zolu作為激活函數(shù)的zl-cbow訓(xùn)練模型在窗口尺寸變化過程中其詞向量計(jì)算的準(zhǔn)確率數(shù)值比同樣窗口尺寸的使用sigmoid函數(shù)作為激活函數(shù)的cbow模型詞訓(xùn)練的準(zhǔn)確率數(shù)值每一列均有提高,其中窗口尺寸為2和3時(shí),準(zhǔn)確度的提升分別高達(dá)17%,即73.72%-56.72%,和11.07%,即82.02%-70.95%;即使針對窗口尺寸為7,提升也有0.6%,即:82.81%-82.21%。下表3是針對不同數(shù)量的隱層節(jié)點(diǎn)數(shù)大小,對比zl-cbow和cbow在預(yù)測單詞功能方面的準(zhǔn)確度(運(yùn)行腳本analogy.sh)。表3隱層節(jié)點(diǎn)數(shù)不同zl-cbow及cbow模型在預(yù)測單詞方面的準(zhǔn)確率對比100200300zl-cbow86.17%86.36%84.98%cbow81.42%82.61%81.23%從表3可以看出:a).不論隱藏層節(jié)點(diǎn)是100、200還是300,本發(fā)明所提的zl-cbow模型,均比mikolov的cbow預(yù)測單詞的準(zhǔn)確率要高。b).由200個(gè)隱層節(jié)點(diǎn)下降至100個(gè)隱層節(jié)點(diǎn)時(shí),其計(jì)算詞向量相似度的復(fù)雜性降低一半,然而本發(fā)明所提zl-cbow模型的預(yù)測準(zhǔn)確性卻幾乎沒受到影響,即:zl-cbow性能好又穩(wěn)定。c).無論是使用zolu作為激活函數(shù)的zl-cbow模型還是使用sigmoid函數(shù)作為激活函數(shù)的cbow模型,都在隱層節(jié)點(diǎn)數(shù)為200時(shí)達(dá)到了準(zhǔn)確率的最大值;為了降低復(fù)雜度節(jié)省資源,在不影響預(yù)測效果的前提下,仍應(yīng)該選擇100為最佳的隱層節(jié)點(diǎn)數(shù)目。實(shí)施例5本實(shí)施例敘述了本發(fā)明一種基于zolu函數(shù)的詞嵌入學(xué)習(xí)模型及訓(xùn)練方法在具體實(shí)施時(shí)與mikolov所提cbow模型相比,在復(fù)雜度方面,屬于同一量級。以步驟7.1a中的zl-cbow學(xué)習(xí)模型中采用hs為例,更新公式為(1)和(2);而對應(yīng)mikolov所提出的cbow學(xué)習(xí)模型中采用hs的更新公式如下(10)和(11):對比(2)和(10)以及(3)和(11),可以發(fā)現(xiàn),有如下兩點(diǎn)區(qū)別:a:對于zl-cbow,前面的系數(shù)是2,而cbow,前面的系數(shù)是1;b:對于zl-cbow,更新函數(shù)為zolu,而cbow,更新函數(shù)為sigmoid。下表4分別針對詞相似度及預(yù)測單詞功能對zl-cbow及cbow運(yùn)行時(shí)間做以對比。表4zl-cbow和cbow運(yùn)行時(shí)間對比從表4可以看出,在運(yùn)行詞相似度及預(yù)測單詞功能時(shí),zl-cbow模型的運(yùn)行時(shí)間只是稍微比cbow分別多7%到9%的時(shí)間,沒有數(shù)量級的提升,在實(shí)際應(yīng)用過程中是完全可以忍受的。因此,zl-cbow算法復(fù)雜度與cbow復(fù)雜度量級相同,也可以適用于極大規(guī)模語料庫的訓(xùn)練。以上所述為本發(fā)明的較佳實(shí)施例而已,本發(fā)明不應(yīng)該局限于該實(shí)施例和附圖所公開的內(nèi)容。凡是不脫離本發(fā)明所公開的精神下完成的等效或修改,都落入本發(fā)明保護(hù)的范圍。當(dāng)前第1頁12當(dāng)前第1頁12
當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1
安阳市| 卢氏县| 石柱| 苗栗县| 乌什县| 万山特区| 邮箱| 莒南县| 澄江县| 大城县| 清流县| 焦作市| 屏山县| 乌兰县| 威宁| 丹东市| 宁海县| 前郭尔| 郴州市| 合肥市| 伊通| 琼结县| 和田市| 西乌| 青阳县| 沙坪坝区| 云南省| 江永县| 南昌县| 中卫市| 长白| 龙南县| 芦山县| 内江市| 瑞昌市| 杨浦区| 洛阳市| 赤壁市| 隆安县| 庆云县| 措美县|