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

        ?

        基于Seq2Seq的機(jī)器人聊天應(yīng)用實(shí)踐

        2021-09-10 03:10:25翟高粵高乾龍趙云杰唐竹韻
        客聯(lián) 2021年5期
        關(guān)鍵詞:馬爾可夫字典語(yǔ)句

        翟高粵 高乾龍 趙云杰 唐竹韻

        摘 要:自然語(yǔ)言處理(NLP)中的語(yǔ)言對(duì)話一直是機(jī)器學(xué)習(xí)的“圣杯”,也是機(jī)器學(xué)習(xí)挑戰(zhàn)圖靈測(cè)試的主力。從人工智能的概念被提出開始,語(yǔ)言對(duì)話任務(wù)一直是業(yè)界研究的熱點(diǎn),本文通過NLP基礎(chǔ)理論知識(shí)、Seq2Seq模型來介紹中文聊天機(jī)器人的原理,并使用TensorFlow 2.0的高階API完成編程。

        關(guān)鍵詞:深度學(xué)習(xí);Seq2Seq模型;機(jī)器人聊天;Tensorflow2.0

        目前機(jī)器學(xué)習(xí),尤其是深度學(xué)習(xí),已經(jīng)成功的解決了圖像識(shí)別的問題。從IMAGENET大賽的近幾年成績(jī)看,識(shí)別類問題準(zhǔn)確度已經(jīng)接近100%。與此同時(shí),機(jī)器學(xué)習(xí)在解決“語(yǔ)音到文字”(Speech to Text)以及“文字到語(yǔ)音” (Text to Speech)方面也有了飛躍。聊天機(jī)器人的研究可以追溯到上個(gè)世紀(jì)五十年代,阿蘭圖靈提出了一個(gè)圖靈測(cè)試來回答“機(jī)器能思考嗎”的問題,隨后掀起了人工智能研究的熱潮。聊天機(jī)器人可應(yīng)用于多個(gè)人機(jī)交互場(chǎng)景,比如問答系統(tǒng)、談判、電子商務(wù)、輔導(dǎo)等。最近,隨著移動(dòng)終端數(shù)量的急劇增加,它也可以用于手機(jī)終端的虛擬助理,如Apple的Siri、微軟的Cortana、Facebook的Messenger,Google助手等,讓用戶更容易地從終端上獲取信息和服務(wù)。

        一、機(jī)器人聊天基礎(chǔ)理論知識(shí)簡(jiǎn)介

        (一)語(yǔ)言模型

        語(yǔ)言模型其實(shí)是一個(gè)打分模型,通過對(duì)一句話進(jìn)行打分來判斷這句話是否符合人類的自然語(yǔ)言習(xí)慣。語(yǔ)言模型的發(fā)展歷史久遠(yuǎn),經(jīng)歷了統(tǒng)計(jì)語(yǔ)言模型、n-gram語(yǔ)言模型和神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型三個(gè)階段。

        統(tǒng)計(jì)語(yǔ)言模型是統(tǒng)計(jì)每個(gè)詞出現(xiàn)的頻次來形成詞頻字典,然后根據(jù)輸入計(jì)算下一個(gè)輸出詞的概率,最后形成輸出語(yǔ)句的。統(tǒng)計(jì)語(yǔ)言模型輸出語(yǔ)句的概率是依據(jù)貝葉斯公式進(jìn)行鏈?zhǔn)椒纸庥?jì)算得到的,計(jì)算公式如下:p(w1,w2,w3,…,wn)=p(w1)p(w2|w1)p(w3|w1w2)…p(wn|w1w2w3…wn),這樣的計(jì)算求解方法雖然直觀、明了,但存在著致命的缺陷。我們細(xì)想一下就會(huì)發(fā)現(xiàn),如果字典中有1000個(gè)詞,當(dāng)處理一個(gè)句子長(zhǎng)度為3的語(yǔ)句時(shí),則需要計(jì)算輸出語(yǔ)句概率P的數(shù)量是10003;當(dāng)句子長(zhǎng)度為10時(shí),需要計(jì)算輸出語(yǔ)句概率P的數(shù)量是100010。在計(jì)算完輸出語(yǔ)句的概率之后,需要選擇P值輸出語(yǔ)句作為最終的生成語(yǔ)句。以上計(jì)算過程在通用算力下幾乎是不可能完成的。

        由上我們發(fā)現(xiàn),利用統(tǒng)計(jì)語(yǔ)言模型計(jì)算輸出語(yǔ)句概率的數(shù)量大到無法計(jì)算,是由依據(jù)貝葉斯公式通過鏈?zhǔn)椒▌t進(jìn)行展開后全量連乘所引起的,那么解決這個(gè)問題的方法只有一個(gè),就是縮短連乘的長(zhǎng)度,其理論依據(jù)是馬爾可夫假設(shè)。簡(jiǎn)單來說,所謂的馬爾可夫假設(shè)就是指當(dāng)前的狀態(tài)只與過去有限時(shí)間內(nèi)的狀態(tài)有關(guān)。基于馬爾可夫假設(shè)的語(yǔ)言模型稱為n-gram,這里的n表示馬爾可夫鏈的長(zhǎng)度,表示當(dāng)前狀態(tài)與前n-1個(gè)時(shí)間點(diǎn)事件有關(guān)。當(dāng)n=1時(shí),表示一個(gè)詞出現(xiàn)的概率與其周圍的詞出現(xiàn)的概率是相互獨(dú)立的,稱為unigram。在unigram中,假設(shè)字典大小為1000,我們所需計(jì)算的輸出語(yǔ)句概率P的數(shù)量為1000。依此類推,當(dāng)n=2時(shí),表示一個(gè)詞出現(xiàn)的概率只與其前一個(gè)詞出現(xiàn)的概率有關(guān),稱為bigram。在bigram中,假設(shè)字典大小為1000,我們所需計(jì)算的輸出語(yǔ)句概率P的數(shù)量為1000×1000。當(dāng)n=3時(shí),表示一個(gè)詞出現(xiàn)的概率只與其前兩個(gè)詞出現(xiàn)的概率有關(guān),稱為trigram。在trigram中,假設(shè)字典大小為1000,我們所需計(jì)算的輸出語(yǔ)句概率P的數(shù)量為1000×1000×1000。一般我們選擇 trigram,因?yàn)槿绻鹡過大的話,則同樣會(huì)出現(xiàn)統(tǒng)計(jì)語(yǔ)言模型遇到的問題。

        神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型是Begio等人在2003年發(fā)表的A Neural Probabilistic Language Model論文中提出的方法,其在n-gram語(yǔ)言模型的基礎(chǔ)上進(jìn)行了改進(jìn)。神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型采用one-hot(獨(dú)熱編碼)表示每個(gè)詞的分布情況,將輸入語(yǔ)句進(jìn)行編碼轉(zhuǎn)換后輸入神經(jīng)網(wǎng) 絡(luò),經(jīng)過tanh非線性變換和softmax歸一化后得到一個(gè)總和為1的向量,在向量中最大元素的下標(biāo)作為輸出詞的字典編碼,通過字典編碼查詢字典得到最終的輸出詞。

        (二)循環(huán)神經(jīng)網(wǎng)絡(luò)

        循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)是神經(jīng)網(wǎng)絡(luò)專家Jordan、Pineda.Williams、Elman等人于20世紀(jì)80年代末提出的一種神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)模型,這種網(wǎng)絡(luò)的特征是在神經(jīng)元之間既有內(nèi)部的反饋連接又有前饋連接。當(dāng)前主流的NLP應(yīng)用都集中在RNN領(lǐng)域。

        RNN的提出是神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型領(lǐng)域一次非常大的突破,但人們?cè)趹?yīng)用的過程中發(fā)現(xiàn)RNN存在兩個(gè)致命的缺陷:梯度消失和梯度爆炸。

        二、Seq2Seq模型介紹

        Seq2Seq的全稱是Sequence to Sequence,它是基于Encoder- Decoder框架的RNN的變種。Seq2Seq引入了Encoder-Decoder框架,提高了神經(jīng)網(wǎng)絡(luò)對(duì)長(zhǎng)文本信息的提取能力,取得了比單純使用LSTM 更好的效果。目前Seq2Seq在各種自然語(yǔ)言處理的任務(wù)中得到大量的應(yīng)用,最常用的是語(yǔ)言翻譯和語(yǔ)言生成。Seq2Seq中有兩個(gè)非常重要的概念需要我們掌握,其中一個(gè)是Encoder-Decoder框架;另一個(gè)是 Attention機(jī)制。

        (一)Encoder-Decoder框架

        Encoder-Decoder是處理輸入、輸出長(zhǎng)短不一的多對(duì)多文本預(yù)測(cè)問題的框架,其提供了有效的文本特征提取、輸出預(yù)測(cè)的機(jī)制。Encoder-Decoder框架包含兩部分內(nèi)容,分別是Encoder(編碼器)和Decoder(解碼器)。

        (1)編碼器

        編碼器的作用是對(duì)輸入的文本信息進(jìn)行有效的編碼后將其作為解 碼器的輸入數(shù)據(jù)。編碼器的目標(biāo)是對(duì)輸入的文本信息進(jìn)行特征提取,盡量準(zhǔn)確高效地表征該文本的特征信息。

        (2)解碼器

        解碼器的作用是從上下文的文本信息中獲取盡可能多的特征,然后輸出預(yù)測(cè)文本。根據(jù)對(duì)文本信息的獲取方式不同,解碼器一般分為4種結(jié)構(gòu),分別是直譯式解碼、循環(huán)式解碼、增強(qiáng)循環(huán)式解碼和注意力機(jī)制解碼。

        (二)Attention機(jī)制

        Attention機(jī)制有效地解決了輸入長(zhǎng)序列信息時(shí)真實(shí)含義獲取難的問題,在進(jìn)行長(zhǎng)序列處理的任務(wù)中,影響當(dāng)前時(shí)刻狀態(tài)的信息可能隱藏在前面的時(shí)刻里,根據(jù)馬爾可夫假設(shè)這些信息有可能就會(huì)被忽略掉。神經(jīng)網(wǎng)絡(luò)模型沒有辦法很好地準(zhǔn)確獲取倒裝時(shí)序的語(yǔ)言信息,要解決這個(gè)問題就需要經(jīng)過訓(xùn)練自動(dòng)建立起句子間的關(guān)聯(lián)關(guān)系,這就是Attention機(jī)制。

        三、基于seq2seq項(xiàng)目工程結(jié)構(gòu)設(shè)計(jì)

        整個(gè)項(xiàng)目工程結(jié)構(gòu)分為兩部分:文件夾和代碼文件,在編程實(shí)踐中建議采用文件夾和代碼文件的方式來設(shè)計(jì)項(xiàng)目工程結(jié)構(gòu)。所謂的文件夾和代碼文件的方式是指把所有的Python代碼文件放在根目錄下,其他需要存放的靜態(tài)文件、訓(xùn)練數(shù)據(jù)文件和模型文件等都放在文件夾中。本項(xiàng)目分為5個(gè)部分:配置工具(getConfig.py)、數(shù)據(jù)預(yù)處理器(data_util.py)、神經(jīng)網(wǎng)絡(luò)模型(seq2seqModel.py)、執(zhí)行器(execute.py)和應(yīng)用程序(app.py)。配置工具提供了通過配置文件來全局配置神經(jīng)網(wǎng)絡(luò)超參數(shù)的功能;數(shù)據(jù)預(yù)處理器提供了數(shù)據(jù)加載功能;神經(jīng)網(wǎng)絡(luò)模型實(shí)現(xiàn)了Seq2Seq神經(jīng)網(wǎng)絡(luò);執(zhí)行器提供了訓(xùn)練模型保存、模型預(yù)測(cè)等功能;應(yīng)用程序是一個(gè)基于Flask用于人機(jī)交互的簡(jiǎn)單Web應(yīng)用程序。在文件夾中,model_data存放訓(xùn)練導(dǎo)出的模型文件;train_data存放訓(xùn)練數(shù)據(jù);templates存放HTML渲染模板;static存放JS等靜態(tài)文件。具體功能如下所述。

        (一)工具類實(shí)現(xiàn)

        在實(shí)際的編程中,往往需要對(duì)參數(shù)進(jìn)行頻繁的調(diào)整,因此我們定義一個(gè)工具類來讀取配置文件中的配置參數(shù),這樣當(dāng)需要調(diào)參時(shí),只需對(duì)配置文件中的參數(shù)進(jìn)行調(diào)整即可。

        (二)data_util實(shí)現(xiàn)

        data_util對(duì)原始語(yǔ)料數(shù)據(jù)根據(jù)其格式特點(diǎn)進(jìn)行初步處理,比如將問句和答句分開、對(duì)語(yǔ)料進(jìn)行分詞等。

        (三)seq2seqModel實(shí)現(xiàn)

        seq2seqModel是本文的核心內(nèi)容,我們按照Encoder-Decoder框架構(gòu)建一個(gè)完整的Seq2Seq模型。

        (四)執(zhí)行器實(shí)現(xiàn)

        執(zhí)行器提供創(chuàng)建模型、保存訓(xùn)練模型、加載模型和預(yù)測(cè)的功能,在編程實(shí)踐中分別定義了create_model函數(shù)、train函數(shù)和預(yù)測(cè)函數(shù)用于實(shí)現(xiàn)以上功能。

        (五)Web應(yīng)用實(shí)現(xiàn)

        Web應(yīng)用的主要功能包括完成頁(yè)面交互、圖片格式判斷、圖片上傳以及預(yù)測(cè)結(jié)果的返回展示。這里我們使用Flask這個(gè)輕量級(jí)Web應(yīng)用框架來實(shí)現(xiàn)簡(jiǎn)單的頁(yè)面交互和預(yù)測(cè)結(jié)果展示功能。

        四、結(jié)論

        本文介紹了seq2seq的結(jié)構(gòu)、應(yīng)用及基本實(shí)現(xiàn)。seq2seq屬于encoder-decoder結(jié)構(gòu)的一種,其基本思想就是利用兩個(gè)RNN,一個(gè)RNN作為encoder,另一個(gè)RNN作為decoder。encoder負(fù)責(zé)將輸入序列壓縮成指定長(zhǎng)度的向量,這個(gè)向量就可以看成是這個(gè)序列的語(yǔ)義,這個(gè)過程稱為編碼,而decoder則負(fù)責(zé)根據(jù)語(yǔ)義向量生成指定的序列,這個(gè)過程也稱為解碼。本文為應(yīng)用seq2seq框架的技術(shù)人員提供了一個(gè)較為詳細(xì)的使用價(jià)值。

        【參考文獻(xiàn)】

        [1] 張鶴凝等.基于seq2seq模型的心理咨詢對(duì)話系統(tǒng)的研究[J],信息記錄材料,2021(3).

        [2] 張宇等.融入注意力機(jī)制的深度學(xué)習(xí)動(dòng)作識(shí)別方法[J],電訊技術(shù),2021(4).

        [3] 閆濤. 深度學(xué)習(xí)算法實(shí)踐 [M]. 電子工業(yè)出版社出版社,2020.

        [4] 王宇石等.一種基于卷積神經(jīng)網(wǎng)絡(luò)的違禁品探測(cè)系統(tǒng)及部署方法[J],科技創(chuàng)新與應(yīng)用,2020(7).

        猜你喜歡
        馬爾可夫字典語(yǔ)句
        開心字典
        家教世界(2023年28期)2023-11-14 10:13:50
        開心字典
        家教世界(2023年25期)2023-10-09 02:11:56
        重點(diǎn):語(yǔ)句銜接
        精彩語(yǔ)句
        我是小字典
        正版字典
        讀者(2016年14期)2016-06-29 17:25:50
        保費(fèi)隨機(jī)且?guī)в屑t利支付的復(fù)合馬爾可夫二項(xiàng)模型
        基于SOP的核電廠操縱員監(jiān)視過程馬爾可夫模型
        應(yīng)用馬爾可夫鏈對(duì)品牌手機(jī)市場(chǎng)占有率進(jìn)行預(yù)測(cè)
        認(rèn)知無線網(wǎng)絡(luò)中基于隱馬爾可夫預(yù)測(cè)的P-CSMA協(xié)議
        高清亚洲成av人片乱码色午夜| 自拍偷自拍亚洲精品第按摩| 国产精品婷婷久久爽一下| 亚洲国产av无码精品| 亚洲欧美激情精品一区二区| 国产精品无码片在线观看| 亚洲av乱码一区二区三区观影| 亚洲av免费不卡在线观看| 免费a级作爱片免费观看美国| 免费在线亚洲视频| 蜜桃av区一区二区三| 一本之道久久一区二区三区| 亚洲成在人网站av天堂| 亚洲国产夜色在线观看| 国产一区二区三区porn| 人人妻人人澡人人爽欧美一区| 国产欧美日韩精品丝袜高跟鞋| 精品久久亚洲中文无码| 制服丝袜人妻中出第一页| 蜜桃视频网站在线免费观看| 国产成人精品久久二区二区91 | 亚洲小说区图片区另类春色| 亚洲春色AV无码专区在线播放| 午夜无码亚| 精品一区二区三区人妻久久福利 | 香港日本三级亚洲三级| 色www亚洲| 精品国产亚洲av高清日韩专区| 天天爽夜夜爽人人爽| 国产一在线精品一区在线观看 | 日本女同av在线播放| 国内精品久久久久国产盗摄| 肉体裸交丰满丰满少妇在线观看 | 一个人看的www片免费高清视频| 久久乐国产精品亚洲综合| 九九精品国产99精品| 麻豆人妻性色av专区0000| 成 人免费va视频| 亚洲最大无码AV网站观看| 日韩人妖干女同二区三区 | 欧美日韩国产一区二区三区不卡|