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

        ?

        打造NLP文本分類深度學(xué)習(xí)方法庫

        2017-09-29 09:22:34編譯徐子淇李煜
        機器人產(chǎn)業(yè) 2017年5期
        關(guān)鍵詞:解碼器編碼器標簽

        □編譯/徐子淇、李煜

        打造NLP文本分類深度學(xué)習(xí)方法庫

        □編譯/徐子淇、李煜

        這個庫的目的是探索用深度學(xué)習(xí)進行NLP文本分類的方法。它具有文本分類的各種基準模型。它還支持多標簽分類,其中多標簽與句子或文檔相關(guān)聯(lián)。

        雖然這些模型大都看似簡單,可能不會讓你游刃有余地進行這項文本分類任務(wù)。但是其中還是有一些非常經(jīng)典的模型,可以說是非常適合作為基準模型的。

        每個模型在模型類型下都有一個測試函數(shù)。

        我們探討了用兩個seq2seq模型(帶有注意的seq2seq模型,以及transformer:attention is all you need)進行文本分類。同時,這兩個模型也可以用于生成序列和其他任務(wù)。如果你的任務(wù)是多標簽分類,那么你就可以將問題轉(zhuǎn)化為序列生成。

        我們實現(xiàn)了一個記憶網(wǎng)絡(luò):循環(huán)實體網(wǎng)絡(luò)(recurrent entity network),追蹤世界的狀態(tài)。它用鍵值對塊(blocks of key-value pairs)作為記憶,并行運行,從而獲得新的狀態(tài)。它可以用于使用上下文(或歷史)來回答建模問題。例如,你可以讓模型讀取一些句子(作為文本),并提出一個問題(作為查詢),然后請求模型預(yù)測答案;如果你像查詢一樣向其提供一些素材資源,那么它就可以進行分類任務(wù)。Network)

        模型

        1. fastText

        2. TextCNN

        3. TextRNN

        4. RCNN

        5. 分層注意網(wǎng)絡(luò)(Hierarchical Attention Network)

        6. 具有注意的seq2seq模型(seq2seq with attention)

        7. Transformer("Attend Is All You Need")

        8. 動態(tài)記憶網(wǎng)絡(luò)(Dynamic Memory

        9. 實體網(wǎng)絡(luò):追蹤世界的狀態(tài)

        其他模型

        1. BiLstm Text Relation

        2. Two CNN Text Relation

        3. BiLstm Text Relation Two RNN

        性能

        (多標簽預(yù)測任務(wù),要求預(yù)測能夠達到前5名,300萬訓(xùn)練數(shù)據(jù),滿分:0.5)

        注意:“HierAtteNetwork”是指Hierarchical Attention Network

        用途

        1. 模型在xxx_model.py中

        2. 運行python xxx_train.py來訓(xùn)練模型

        3. 運行python xxx_predict.py進行推理(測試)

        每個模型在模型下都有一個測試方法。你可以先運行測試方法檢查模型是否能正常工作。

        環(huán)境

        python 2.7+tensorflow 1.1

        (tensorflow 1.2也是可以應(yīng)用的;大多數(shù)模型也應(yīng)該在其他tensorflow版本中正常應(yīng)用,因為我們在某些版本中只是添了非常少的特征變化;如果你使用的是python 3.5,只要更改print / try catch函數(shù),它也會運行得很好。)

        注:一些util函數(shù)是在data_util.py中的;典型輸入如:“x1 x2 x3 x4 x5 label 323434”,其中“x1,x2”是單詞,“323434”是標簽;它具有一個將預(yù)訓(xùn)練的單詞加載和分配嵌入到模型的函數(shù),其中單詞嵌入在word2vec或fastText中進行預(yù)先訓(xùn)練。

        模型細節(jié)

        1.快速文本(fast Text)

        《用于高效文本分類的技巧》(Bag of Tricks for Efficient Text Classification)論文的實現(xiàn)。

        ① 使用bi-gram 或者tri-gram。

        ② 使用NCE損失,加速我們的softmax計算(不使用原始論文中的層次softmax)結(jié)果:性能與原始論文中的一樣好,速度也非???。

        查看:p5_fastTextB_model.py

        2.文本卷積神經(jīng)網(wǎng)絡(luò)(Text CNN)

        《用于句子分類的卷積神經(jīng)網(wǎng)絡(luò)》(Convolutional Neural Networks for Sentence Classification)論文的實現(xiàn)。

        結(jié)構(gòu):降維---> conv ---> 最大池化--->完全連接層--------> softmax。

        查看:p7_Text CNN_model.py

        為了能夠使用TextCNN獲得非常好的結(jié)果,你還需要仔細閱讀此論文“用于句子分類的卷積神經(jīng)網(wǎng)絡(luò)靈敏度分析(和從業(yè)者指南)”【A Sensitivity Analysis of (and Practitioners' Guide to) Convolutional Neural Networks for Sentence Classification】,它可以幫助你了解一些影響性能的相關(guān)見解。當然,你還需要根據(jù)具體任務(wù)來更改某些設(shè)置。

        3.文本循環(huán)神經(jīng)網(wǎng)絡(luò)(Text RNN)

        結(jié)構(gòu):降維--->雙向lstm ---> concat輸出--->平均 -----> softmax。

        查看:p8_Text RNN_model.py

        4.雙向長短期記憶網(wǎng)絡(luò)文本關(guān)系(BiLstm Text Relation)

        結(jié)構(gòu)與Text RNN相同。但輸入是被特別設(shè)計的。例如:輸入“這臺電腦多少錢?筆記本電腦的股票價格(how much is the computer? EOS price of laptop)”?!癊OS”是一個特殊的標記,將問題1和問題2分開。

        查看:p9_BiLstm Text Relation_model.py

        5.兩個卷積神經(jīng)網(wǎng)絡(luò)文本關(guān)系(two CNN Text Relation)

        結(jié)構(gòu):首先用兩個不同的卷積來提取兩個句子的特征,然后連接兩個函數(shù),使用線性變換層將映射輸出到目標標簽上,然后使用softmax。

        查看:p9_two CNN Text Relation_model.py

        6.雙長短期記憶文本關(guān)系雙循環(huán)神經(jīng)網(wǎng)絡(luò)(BiLstm Text Relation Two RNN)

        結(jié)構(gòu):一個句子的一個雙向lstm(得到輸出1),另一個句子的另一個雙向lstm(得到輸出2),最終softmax(輸出1 M輸出2)。

        查看:p9_BiLstm Text Relation Two RNN_model.py

        有關(guān)更多詳細信息,你可以訪問:《Deep Learning for Chatbots》的第2部分—在Tensorflow中實現(xiàn)一個基于檢索的模型(Implementing a Retrieval-Based Model in Tensorflow)。

        7.循環(huán)卷積神經(jīng)網(wǎng)絡(luò)(RCNN)

        用于文本分類的循環(huán)卷積神經(jīng)網(wǎng)絡(luò)。

        《用于文本分類的循環(huán)卷積神經(jīng)網(wǎng)絡(luò)》(Recurrent Convolutional Neural Network for Text Classification)論文的實現(xiàn)。

        結(jié)構(gòu):① 循環(huán)結(jié)構(gòu)(卷積層);② 最大池化;③ 完全連接層+ softmax。

        它用左側(cè)文本和右側(cè)文本學(xué)習(xí)句子或文檔中的每個單詞的表示:

        表示當前單詞= [left_side_context_vector,current_word_embedding,right_side_context_vecotor]。

        對于左側(cè)文本,它使用一個循環(huán)結(jié)構(gòu),前一個單詞的非線性轉(zhuǎn)換與左側(cè)上一個文本相結(jié)合;右側(cè)文本與其類似。

        查看:p71_TextRCNN_model.py

        8. 分層注意網(wǎng)絡(luò)(Hierarchical Attention Network)

        《用于文檔分類的分層注意網(wǎng)絡(luò)》(Hierarchical Attention Networks for Document Classification )論文的實現(xiàn)。

        結(jié)構(gòu):

        ① 降維;

        ② 詞編碼器:詞級雙向GRU,以獲得豐富的詞匯表征;

        ③ 詞注意:詞級注意在句子中獲取重要信息;

        ④ 句子編碼器:句子級雙向GRU,以獲得豐富的句子表征;

        ⑤ 句子注意:句級注意以獲得句子中的重點句子;

        ⑥ FC + Softmax。

        數(shù)據(jù)輸入:

        一般來說,這個模型的輸入應(yīng)該是幾個句子,而不是一個句子。形式是:[None,sentence_lenght]。其中None意味著batch_size。

        在訓(xùn)練數(shù)據(jù)中,對于每個樣本來說,有四個部分,每個部分具有相同的長度,將四個部分形成一個單一的句子。該模型將句子分為四部分,形成一個形狀為:[None,num_sentence,sentence_length]的張量。其中num_sentence是句子的個數(shù)(在設(shè)置中,其值等于4)。

        查看:p1_HierarchicalAttention_model.py

        9. 具有注意的Seq2seq模型

        具有注意的Seq2seq模型的實現(xiàn)是通過《共同學(xué)習(xí)排列和翻譯的神經(jīng)機器翻譯》來實現(xiàn)的。

        結(jié)構(gòu):

        ① 降維;

        ② bi-GRU也從源語句(向前和向后)獲取豐富的表示;

        ③ 具有注意的解碼器。

        數(shù)據(jù)輸入:

        使用三種輸入方法中的兩種:

        ① 編碼器輸入,這是一個句子;

        ② 解碼器輸入,是固定長度的標簽列表;

        ③ 目標標簽,它也是一個標簽列表。

        例如,標簽是:“L1 L2 L3 L4”,則解碼器輸入為:[_ GO,L1,L2,L2,L3,_PAD];目標標簽為:[L1,L2,L3,L3,_END,_PAD]。長度固定為6,任何超出標簽將被截斷,如果標簽不足,將其填充完整。

        注意機制:

        ① 傳輸編碼器輸入列表和解碼器的隱藏狀態(tài);

        ② 計算每個編碼器輸入隱藏狀態(tài)的相似度,以獲得每個編碼器輸入的可能性分布;

        ③ 基于可能性分布的編碼器輸入的加權(quán)和。

        通過RNN Cell使用這個權(quán)重和解碼器輸入以獲得新的隱藏狀態(tài)。

        Vanilla E編碼解碼工作原理:

        在解碼器中,源語句將使用RNN作為固定大小向量(“思想向量”)進行編碼:

        當訓(xùn)練時,使用另一個RNN嘗試通過使用這個“思想向量”作為初始化狀態(tài)獲取一個單詞,并從每個時間戳的解碼器輸入中獲取輸入。解碼器從特殊指令“_GO”開始。在執(zhí)行一步之后,新的隱藏狀態(tài)將與新輸入一起獲得,可以繼續(xù)此過程,直到達到特殊指令“_END”。我們可以通過計算對數(shù)和目標標簽的交叉熵損失來計算損失。logits是通過隱藏狀態(tài)的映射層(對于解碼器步驟的輸出,在GRU中,我們可以僅使用來自解碼器的隱藏狀態(tài)作為輸出)。

        當測試時,沒有標簽,所以我們應(yīng)該提供從以前的時間戳獲得的輸出,并繼續(xù)進程直到我們到達“_END”指令。

        注意事項:

        在這里使用兩種詞匯,一個是由編碼器使用的單詞; 另一個是用于解碼器的標簽。

        對于詞匯表,插入三個特殊指令:“_GO”,“_ END”,“_ PAD”; “_UNK”不被使用,因為所有標簽都是預(yù)先定義的。

        10. Transformer(“Attention Is All You Need”)

        狀態(tài):完成主要部分,能夠在任務(wù)中產(chǎn)生序列的相反順序。你可以通過在模型中運行測試函數(shù)來檢查它。然而,我還沒有在實際任務(wù)中獲得有用的結(jié)果。我們在模型中也使用并行的style.layer規(guī)范化、殘余連接和掩碼。

        對于每個構(gòu)建塊,下面的每個文件中都包含測試函數(shù),并且已經(jīng)成功測試了每個小塊的性能。

        帶注意的序列到序列是解決序列生成問題的典型模型,如翻譯、對話系統(tǒng)。大多數(shù)情況下,它使用RNN完成這些任務(wù)。直到最近,人們也應(yīng)用卷積神經(jīng)網(wǎng)絡(luò)進行序列順序問題。但是,Transformer,它僅僅依靠注意機制執(zhí)行這些任務(wù),便能快速地實現(xiàn)新的最先進的結(jié)果。

        它還有兩個主要部分:編碼器和解碼器。

        編碼器:

        共6層,每個層都有兩個子層。第一層是多向自我注意機制;第二層是位置的全連接前饋網(wǎng)絡(luò)。對于每個子層使用LayerNorm(x+ Sublayer(x)),維度= 512。

        解碼器:

        ① 解碼器由N = 6個相同層的堆疊組成;

        ② 除了每個編碼器層中的兩個子層之外,解碼器插入第三子層,其在編碼器堆棧的輸出上執(zhí)行多向注意;

        ③ 與編碼器類似,我們采用圍繞每個子層的殘余連接,然后進行層歸一化。我們還修改解碼器堆棧中的自我注意子層,以防止位置參與到后續(xù)位置。這種掩蔽與輸出嵌入偏移一個位置的事實相結(jié)合的操作確保了位置i的預(yù)測只能取決于位于小于i的位置的已知輸出。

        模型中的突出特點:

        ① 多向自我注意:使用自我注意,線性變換多次獲取關(guān)鍵值的映射,然后開始注意機制;

        ② 一些提高性能的技巧(剩余連接、位置編碼、前饋、標簽平滑、掩碼以忽略我們想忽略的事情)。

        有關(guān)模型的詳細信息,請查看:a2_transformer.py

        11.循環(huán)實體網(wǎng)絡(luò)(Recurrent Entity Network)

        輸入:

        ① 故事:它是多句話,作為上下文;

        ② 問題:一個句子,這是一個問題;

        ③ 回答:一個單一的標簽。

        型號結(jié)構(gòu):

        ① 輸入編碼:使用一個詞來編碼故事(上下文)和查詢(問題);通過使用位置掩碼將位置考慮在內(nèi)。

        通過使用雙向rnn編碼故事和查詢,性能從0.392提高到0.398,增長了1.5%。

        ② 動態(tài)記憶:

        a. 通過使用鍵的“相似性”,輸入故事的值來計算門控;

        b. 通過轉(zhuǎn)換每個鍵、值和輸入來獲取候選隱藏狀態(tài);

        c. 組合門和候選隱藏狀態(tài)來更新當前的隱藏狀態(tài)。

        ③ 輸出(使用注意機制):

        a. 通過計算查詢和隱藏狀態(tài)的“相似性”來獲得可能性分布;

        b. 使用可能性分布獲得隱藏狀態(tài)的加權(quán)和;

        c. 查詢和隱藏狀態(tài)的非線性變換獲得預(yù)測標簽。

        這個模型的關(guān)鍵點:

        ① 使用彼此獨立的鍵和值塊,可以并行運行;

        ② 上下文和問題一起建模。使用記憶來追蹤世界的狀態(tài),并使用隱性狀態(tài)和問題(查詢)的非線性變換進行預(yù)測;

        ③ 簡單的型號也可以實現(xiàn)非常好的性能,可以簡單的編碼作為詞的使用包。

        有關(guān)模型的詳細信息,請查看:a3_entity_network.py

        在這個模型下,它包含一個測試函數(shù),它要求這個模型計算故事(上下文)和查詢(問題)的數(shù)字,但故事的權(quán)重小于查詢。

        12.動態(tài)記憶網(wǎng)絡(luò)

        模塊:Outlook

        ① 輸入模塊:將原始文本編碼為向量表示。

        ② 問題模塊:將問題編碼為向量表示。

        ③ 獨特的記憶模塊:通過輸入,通過注意機制選擇哪些部分輸入,將問題和以前的記憶考慮在內(nèi)====>它將產(chǎn)生“記憶”向量。

        ④ 答案模塊:從最終的記憶向量生成答案。

        詳情:

        ① 輸入模塊:

        一個句子:使用gru獲取隱藏狀態(tài)b.list的句子,使用gru獲取每個句子的隱藏狀態(tài)。例如 [隱藏狀態(tài)1,隱藏狀態(tài)2,隱藏狀態(tài)...隱藏狀態(tài)n]。

        ② 問題模塊:使用gru獲取隱藏狀態(tài)。

        ③ 記憶模塊:使用注意機制和循環(huán)網(wǎng)絡(luò)來更新其記憶。

        a.需要多集===>傳遞推理。

        e.g. ask where is the football? it will attend to sentence of "john put down the football"),then in second pass, it need to attend location of john.

        b.注意機制:

        two-layer feed forward nueral network.input is candidate fact c,previous memory m and question q. feature get by take: elementwise,matmul and absolute distance of q with c,and q with m.

        c.記 憶 更 新 機 制:h = f(c,h_previous,g)。 最后一個隱藏狀態(tài)是應(yīng)答模塊的輸入。

        ④ 答案模塊:

        要做的事情:

        ① 文本分類的字符級卷積網(wǎng)絡(luò);

        ② 文本分類的卷積神經(jīng)網(wǎng)絡(luò):淺詞級與深字符級;

        ③ 文本分類的深度卷積網(wǎng)絡(luò);

        ④ 半監(jiān)督文本分類的對抗訓(xùn)練方法。

        猜你喜歡
        解碼器編碼器標簽
        科學(xué)解碼器(一)
        科學(xué)解碼器(二)
        科學(xué)解碼器(三)
        線圣AudioQuest 發(fā)布第三代Dragonfly Cobalt藍蜻蜓解碼器
        無懼標簽 Alfa Romeo Giulia 200HP
        車迷(2018年11期)2018-08-30 03:20:32
        基于FPGA的同步機軸角編碼器
        不害怕撕掉標簽的人,都活出了真正的漂亮
        海峽姐妹(2018年3期)2018-05-09 08:21:02
        基于PRBS檢測的8B/IOB編碼器設(shè)計
        標簽化傷害了誰
        JESD204B接口協(xié)議中的8B10B編碼器設(shè)計
        電子器件(2015年5期)2015-12-29 08:42:24
        日韩成人精品一区二区三区| 男人扒开添女人下部免费视频| 国产精品一卡二卡三卡| 国产97色在线 | 亚洲| 国产午夜精品理论片| 国产无遮挡又黄又爽无VIP| 国产免费一区二区三区三| 24小时在线免费av| 国产精品国产三级国产av品爱网| 任你躁国产自任一区二区三区| 这里有精品可以观看| 国产av天堂亚洲国产av麻豆| 日本超骚少妇熟妇视频| 亚洲日本精品国产一区二区三区| 午夜精品久久久久久久99热| 国产欧美日韩久久久久| 亚洲阿v天堂2018在线观看| 国产精品99久久不卡二区| 日本刺激视频一区二区| 国产日韩欧美一区二区东京热| 免费a级毛片无码a∨男男| 在线a亚洲视频播放在线观看 | 人妻系列影片无码专区| 国产亚洲精品免费专线视频| 国产精品国产高清国产专区 | 荡女精品导航| 中文字幕一区二区三区.| 一本色道久久88加勒比| 性刺激的大陆三级视频| 中文字幕熟妇人妻在线视频| 国产亚洲精品性爱视频| 国产另类av一区二区三区| 亚洲成av人片一区二区密柚| 少妇太爽了在线观看免费视频| 亚洲 成人 无码 在线观看| 亚洲中文字幕在线第二页| 日韩中文字幕素人水野一区| 婷婷射精av这里只有精品| 韩国v欧美v亚洲v日本v| 国产成人精品一区二免费网站| 久草中文在线这里只有精品|