九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
你好,機(jī)器作詩了解一下。丨語言學(xué)午餐

還記得當(dāng)年的Alpha Go嗎?人工智能在圍棋領(lǐng)域戰(zhàn)勝了人類,我們都曾為此唏噓不已。當(dāng)時,高曉松說:“等有一天,機(jī)器做出了所有的音樂與詩歌,我們的路也會走完”。 這一天真的會到來嗎?機(jī)器的“詩和遠(yuǎn)方”又會是怎樣的呢?


隨著人工智能領(lǐng)域的蓬勃發(fā)展,人們也開始探索它在文藝領(lǐng)域的應(yīng)用。在這方面,機(jī)器作詩(Automated Poetry Generation)無疑是最受熱議的話題之一。


那繁星閃爍的幾天蒼色  

那滿心的紅日 

看萬里天使在世界  

我就像夢

看那星 閃爍的幾顆星 

西山上的太陽 

青蛙兒正在遠(yuǎn)遠(yuǎn)的淺水

她嫁了人間許多的顏色


選自微軟小冰詩集《陽光失了玻璃窗》


2017年5月,微軟亞洲研究院發(fā)布了由智能機(jī)器人小冰創(chuàng)作的第一部人工智能詩集《陽光失了玻璃窗》。這個里程碑事件也引起了計算機(jī)科學(xué)、語言學(xué)、文學(xué)等領(lǐng)域?qū)θ斯ぶ悄芘c詩歌本質(zhì)的大討論。最近,在央視的《機(jī)智過人》節(jié)目中,清華大學(xué)的機(jī)器作詩系統(tǒng)“九歌”也得到了專業(yè)人士的贊譽(yù)。

利用九歌作詩系統(tǒng)所創(chuàng)作的藏頭詩


雖然這些作詩系統(tǒng)讓人感到驚喜、有趣,但也有許多人對人工智能創(chuàng)作的所謂“詩歌”抱負(fù)面態(tài)度。詩人群體大多認(rèn)為這只不過是一場文字游戲:


'一個語言游戲而已。但無論輸入多少句子還是寫不了真詩。真詩是靈性的。這個設(shè)計者水平有限,它設(shè)計不了靈性,設(shè)計不了詩成泣鬼神這種東西。 '

—— 詩人于堅評價微軟小冰


盡管詩歌的本質(zhì)以及評判標(biāo)準(zhǔn)還很難界定,機(jī)器作詩系統(tǒng)背后的語言學(xué)原理仍然非常令人好奇。人工智能系統(tǒng)到底是如何寫出這些詩歌的呢?今天午餐君就來從計算語言學(xué)(Computational Linguistics)的角度,和大家簡單聊聊機(jī)器作詩的原理。


下文約4500字,預(yù)計閱讀時間為15分鐘。



在聊原理之前,我們先來做個小游戲,猜猜哪首詩歌是機(jī)器所作?

第一首:

白鷺窺魚立,

青山照水開。

夜來風(fēng)不動, 

明月見樓臺。


第二首:

滿懷風(fēng)月一枝春,

未見梅花亦可人。

不為東風(fēng)無此客,

世間何處是前身。



從這兩首詩中,我們可以看到它們基本符合古體詩歌的結(jié)構(gòu)和形式。詩中意象之間的聯(lián)系也非常緊密,比如白鷺、魚、青山和水。不僅如此,第二首詩中后兩句的對仗關(guān)系也相當(dāng)工整。其實(shí)這兩首詩歌都是人工智能系統(tǒng)創(chuàng)作的!


這個系統(tǒng)來自愛丁堡大學(xué)的博士生 Xingxing Zhang 與 Mirella Lapata 教授在2014年所發(fā)表的一篇論文。它是最早的基于人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Networks的機(jī)器作詩系統(tǒng)之一。近幾年的機(jī)器作詩系統(tǒng)都或多或少地受到了此篇論文的啟發(fā),因此我們今天也主要來聊聊它。


在了解機(jī)器如何作詩之前,我們先來想想,我們?nèi)祟愂侨绾螌W(xué)習(xí)詩歌創(chuàng)作的呢?



《紅樓夢》中“香菱學(xué)詩”這個青春勵志的學(xué)詩故事告訴我們:首先要多讀詩、讀好詩,其次是需要不斷練習(xí)我們的大腦,最后需要一個像林妹妹一樣的老師,可以快速指出我們創(chuàng)作的詩歌哪里有不足。


其實(shí),一個典型的機(jī)器學(xué)習(xí)(Machine Learning)情景也是類似的:我們需要準(zhǔn)備好數(shù)據(jù)(data)、一個可以優(yōu)化的計算模型 (model)以及一個判斷模型優(yōu)劣的評價指標(biāo)(evaluation metric。


多讀詩、讀好詩 → 準(zhǔn)備數(shù)據(jù)

大腦 → 計算模型

練習(xí)、找林妹妹指導(dǎo)  → 模型訓(xùn)練與評價




數(shù)據(jù)


數(shù)據(jù)層面上,香菱和機(jī)器所面對的情況類似:他們都需要大量閱讀古人的優(yōu)秀詩歌,才能掌握詩歌寫作的模式(pattern),也就是我們說的“套路”。不同之處在于,作為人族少女的香菱就算再怎樣地“苦志學(xué)詩,精血誠聚”,恐怕一輩子也讀不完幾萬首詩,更別說去思考了。


然而對于機(jī)器而言,處理大量的詩歌語料庫完全沒有問題,尤其是在計算資源極度豐富的今天。這篇論文就采用了七萬首唐宋明清的四行詩(quatrain)作為數(shù)據(jù)。



模型


  • 人工神經(jīng)網(wǎng)絡(luò)


香菱相比機(jī)器最大的優(yōu)勢在于她有著世界上幾乎最神奇的學(xué)習(xí)系統(tǒng)——人類大腦。而人工智能系統(tǒng)只能通過構(gòu)建計算模型(建模)來模擬人類學(xué)習(xí)語言過程。(如果模型的效果不符合正常的人類思維,就成了人工智障啦!) 



神經(jīng)元、人工神經(jīng)元、人工神經(jīng)網(wǎng)絡(luò)


大部分近年的主流作詩系統(tǒng)都基于人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network)。所謂的人工神經(jīng)網(wǎng)絡(luò)(簡稱神經(jīng)網(wǎng)絡(luò)),是一種模仿生物神經(jīng)系統(tǒng)結(jié)構(gòu)與功能的計算模型。從定義看上去,人們會誤以為這種計算模型和大腦一樣復(fù)雜。但實(shí)際上,它只簡單地模擬了神經(jīng)元的激活函數(shù),以及神經(jīng)元之間的鏈接方式。


我們今天所要介紹的機(jī)器寫詩系統(tǒng)主要是基于一種特殊的人工神經(jīng)網(wǎng)絡(luò)——循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)。 


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


人類的自然語言句子可以被天然地看作是一種字(或詞所組成的序列。無論我們是在閱讀還是在寫作,大多都是以一種線性、序列化的方式來去理解或者生成文本的。所以,自然語言文本常常被當(dāng)做是一種序列型數(shù)據(jù)(Sequential Data來被處理和計算,而RNN則是專門對序列型數(shù)據(jù)建模的網(wǎng)絡(luò)結(jié)構(gòu)。


機(jī)器寫詩模型的整體流程


  • 生成候選首句集合


人類寫詩需要先定下主題,機(jī)器寫詩自然也需要一些輸入才能進(jìn)行。在常見的寫詩系統(tǒng)中,起點(diǎn)往往是用戶輸入的幾個關(guān)鍵詞,比如 {“春”、“琵琶”,“醉”。當(dāng)然,不同的寫詩系統(tǒng)有著不同的輸入:藏頭詩寫作系統(tǒng)則需要輸入每句的第一個字,看圖作詩的模型則需要輸入一幅圖片。不過,不同的輸入對模型的核心部分影響不大。我們這里討論最常見的情況,輸入為關(guān)鍵詞集合。


萬事開頭難,一首詩的第一句往往決定了整首詩的主題、氛圍和氣魄。拿到關(guān)鍵詞之后,為了寫出第一句,模型首先需要擴(kuò)展主題詞。


這里作者利用了從《詩學(xué)含英》(清 劉文蔚, 1735里手工構(gòu)建的“詩意詞典”。這個詞典有1016個意群,每個意群由一個關(guān)鍵詞作為標(biāo)記。意群中其他詞則是與標(biāo)記相關(guān)的字或詞組。比如“春”所標(biāo)記的意群里,就會包含有“暖風(fēng)”,“鶯”這種詩句中常見的詞匯。


有了詩意詞典,產(chǎn)生第一句詩看起來就沒那么難了。我們要做的無非在找到和每個關(guān)鍵詞所相關(guān)的所有字和詞組,然后用它們拼湊出第一句詩。


繼續(xù)利用{春,琵琶,醉}這個輸入作為例子。我們可以從詞典中找到每個詞所對應(yīng)的意群,然后將這三個意群中的所有詞拿出來組成一個新的集合:{鶯,暖風(fēng),遲日,醉,百囀,鶯聲}。這樣就完成了主題詞的擴(kuò)展。


如果我們想作的是五言詩,那么就可以用程序在這個集合中找出所有長度為5的序列。利用格律要求(比如平仄規(guī)則)去篩選這些五字句后,就生成了許多滿足條件的候選句,比如“暖風(fēng)/遲日/醉”和“鶯/百囀/鶯聲”。


  • 挑選最優(yōu)首句


我們接著從中挑選一個最通順、最有詩意的一個候選作為首句。對比這兩句,我們?nèi)祟愅ㄟ^閱讀可以很快發(fā)現(xiàn)“暖風(fēng)遲日醉”比 “鶯百囀鶯聲”要更為通順而富有詩意。那么問題來了,機(jī)器該如何判斷哪句詩的更通順、更有詩意呢?


在計算語言學(xué)里,判斷一句話的通順程度,一般是通過構(gòu)建統(tǒng)計語言模型 (statistical language model, 簡稱語言模型) 來完成的。簡單來說,語言模型是在某個語料庫上計算得到的統(tǒng)計模型。它能夠?qū)θ我饨o定的一個句子,計算出這句話在這個語料庫中出現(xiàn)概率。概率越大,就意味著這句話越符合這個語料庫的特征,自然也就越“通順”。在寫詩的例子里,語料庫是詩句組成的,這里的“通順”自然也就帶上了“詩意”的效果。


RNN可以幫助我們快速有效地對詩歌語料庫建立語言模型。利用這個語言模型,機(jī)器便可以計算所有候選首句的概率。我們可以假設(shè)“暖風(fēng)遲日醉”和“鶯百囀鶯聲”存在的概率是這樣計算得到的:


P(暖風(fēng)遲日醉) = P(暖) * P(風(fēng)|暖) * P(遲|暖風(fēng)) * P(日|暖風(fēng)遲) * P(醉|暖風(fēng)遲日)

P(鶯百囀鶯聲) = P(鶯) * P(百|(zhì)鶯) * P(囀|鶯百) * P(鶯|鶯百囀) * P(聲|鶯百囀鶯)


其中,P(X) 表示X這個字在整個語料庫中出現(xiàn)的概率,P(Z|XY) 表示在前兩個字是XY的情況下,第三個字是 Z 的條件概率。


我們可以發(fā)現(xiàn)第一句詩的幾個局部概率都應(yīng)該很高,比如“暖風(fēng)遲”,“暖風(fēng)遲日”,聽起來都很順。而在第二句中,雖然“鶯百囀”還算通順,但是“鶯百囀鶯”存在的概率就會非常低。這主要因?yàn)?,詩歌語料庫中一句詩中較少會出現(xiàn)兩個相同的字,而且“鶯”接在“囀”的后面的情況也肯定都不如“日”接在“遲”后面的概率。


按照這種計算的方法,我們可以對之前產(chǎn)生的每一個五言句打分。選擇分?jǐn)?shù)最高的,也就是最通順的一句作為機(jī)器作詩的第一句話。


第一句詩產(chǎn)生之后,我們的問題就簡化成了:如何根據(jù)已經(jīng)寫好的前n句詩,來產(chǎn)生第n+1句詩,直到全詩完成?


  • 后續(xù)詩句的生成


我們?nèi)嗽賹懺姷臅r候,寫某個字時一定會不斷重復(fù)讀前面已經(jīng)寫過的句子,從而才能使整首詩更加連貫、自然。我們構(gòu)建的計算模型也應(yīng)該有這樣的機(jī)制。


假設(shè)我們的模型正在構(gòu)思如何寫第3句的第4個字(模型的輸出),那么我們這個階段的模型所接受的輸入便是“第1句 + 第2句 + 第3句的前3個字”。


一種經(jīng)典的計算語言學(xué)的建模方式是編碼器-解碼器架構(gòu) (Encoder-Decoder Architecture)。這種建模方式將核心問題化歸為兩步: 

  1. 構(gòu)建編碼器,將輸入的信息綜合編碼成一個向量;

  2. 構(gòu)建解碼器,對之前編碼后的向量進(jìn)行解碼,成為我們需要的輸出。


這種框架其實(shí)暗合了我們?nèi)四X在創(chuàng)作時的一般邏輯:首先理解(encoding)已創(chuàng)作的部分,得到一個全局的觀感,然后在此基礎(chǔ)上繼續(xù)創(chuàng)作(decoding)。


注意到我們已創(chuàng)作的部分有些是整句(第1句和第2句),有些則是半句(第3句前3個字),編碼器對于它們應(yīng)該做不同的處理:對于完整的詩句,論文作者利用了卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks, CNN)來編碼;  而未完成的半句詩,則利用了更合適的RNN的結(jié)構(gòu)來編碼。


等等.....CNN是個什么東西?為什么用它來編碼完整的詩句呢?之前不是說RNN更適合自然語言嗎?


CNN和RNN一樣,都是一種主流的基礎(chǔ)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。它和RNN的主要區(qū)別在于處理數(shù)據(jù)的模式上:CNN著眼于固定的局部結(jié)構(gòu),利用層層遞進(jìn)的方式編碼全局信息;而RNN著眼于序列結(jié)構(gòu),以線性方式編碼信息。


基于CNN的貓狗圖片分類器


CNN廣泛應(yīng)用在計算機(jī)視覺領(lǐng)域, 還有像圍棋棋盤這樣的數(shù)據(jù)模式,而RNN主要應(yīng)用在計算語言學(xué)領(lǐng)域。想象一下我們?nèi)嗽诶斫鈭D片/棋盤時,往往是一塊一塊看到圖片,然后拼湊成全局的樣貌;而理解文本/語音則常常是一字一句地順著理解下去。


(視覺和語言是我們?nèi)四X感知世界的兩大重要能力,這大概也說明了為什么CNN和RNN是現(xiàn)在人工智能研究地最火熱的兩大神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。)


午餐君好像有點(diǎn)扯遠(yuǎn)了!到底為什么這里我們用CNN而非RNN來處理完整的詩句呢?一個重要的原因就是古詩所特有的結(jié)構(gòu)蘊(yùn)含著豐富的信息。比如一個完整的詩句有著固定的長度,句讀位置有一定規(guī)律;而一個不完整的詩句則沒有固定的長度。

基于CNN對整句詩進(jìn)行編碼


其實(shí)仔細(xì)想想,一首完整的中文古詩,是不是也有著視覺上的美感呢?我們之前說CNN適合視覺理解,在此處也有所體現(xiàn)!當(dāng)然,如果是現(xiàn)代詩的話,CNN的作用就相對小一些了。


最后總編碼器匯總CNN和RNN分別編碼的信息,再送到解碼器,從而算出我們所需要的“第3句的第4個字”。以此類推,我們的整首古詩就可以完成啦!


模型訓(xùn)練與評測


我們知道了模型正向的運(yùn)作方式,可是如何利用我們收集到的古人詩句去訓(xùn)練這個模型,讓它能聰明起來呢?俗話說得好,熟讀唐詩三百首,不會作(吟)詩也會吟。 所以,我們的訓(xùn)練模型的目標(biāo)也就可以簡化成:期望這個模型能夠背誦7萬首詩,做到給出上句,能背出下句的程度來。


小學(xué)時,如果我們背不出下一句詩然后隨便亂編一個的時候,老師會罰我們站打我們手板。然而,如果模型不記得下一句時能夠憑著它的'語感'編出來了一句還不錯的詩句,這就是勝利呀!


我們想要模型掌握的就是這種語感,這種語感的本身就決定了作詩能力的高下!這就好比張無忌同學(xué)在學(xué)太極劍法時,張三豐說他完全忘記了才是學(xué)會了。


那么怎么來評判模型編的新詩句,好還是不好呢?如果不好,如何改進(jìn)呢?


聰明的讀者可能已經(jīng)想到了,請林妹妹來指導(dǎo)呀!也就是找到一個數(shù)字化的評價指標(biāo),每次機(jī)器寫完詩,拿這個指標(biāo)去衡量模型寫的詩有多好或者有多壞,然后再以此去改善模型。


然而,假如香菱每寫一首詩都讓林妹妹來給她評價一番,做指導(dǎo),這似乎不太現(xiàn)實(shí)。想想林妹妹嬌弱的身體,還要考慮人情債。問多了,林也就煩了。也就是說,好的評價指標(biāo)(林妹妹)評價一次可能很費(fèi)計算資源。


林妹妹:你咋又來問我了?(嫌棄臉)


既然香菱不能每寫一首詩都讓林妹妹去看,那怎么辦呢?我們只能以一種高效的方式來得到近似的評測結(jié)果。


具體來說,我們假設(shè)讓香菱去請教林妹妹的貼身丫鬟紫鵑。紫鵑何以擔(dān)此重任?一是她和林妹妹日夜相處,也耳濡目染了林妹妹的評價體系,雖然也許不夠精準(zhǔn),但是也不會偏差太大(近似);二是她地位不高,可以頻繁請教(高效)。

紫鵑:喵喵喵???


所以利用數(shù)據(jù)訓(xùn)練模型時,我們不會頻繁利用評測指標(biāo)來優(yōu)化模型,而是找到一個間接的方式——損失函數(shù) (loss function)。損失函數(shù)一般要求計算復(fù)雜度低,可以和模型的參數(shù)更好的融合,從而高效地優(yōu)化模型的參數(shù)(parameters/weights)。


而林妹妹這種高級的評價指標(biāo),適合我們用來調(diào)整整個模型的大局框架,比如是否使用CNN來編碼完整詩歌這種比較重要的、宏觀的改善。紫鵑這種損失函數(shù)呢,就來幫我們改改字,提點(diǎn)微觀上的建議。


實(shí)際中,我們就算想找林妹妹這樣的人來評價一個寫詩系統(tǒng)的能力,也是非常困難的。論文的作者先是使用了文本生成領(lǐng)域最常見的自動化指標(biāo) (比如Perplexity 和 BLEU)。 


當(dāng)然,最理想的評測方式是把機(jī)器的詩歌和真正的古詩混在一起,讓人類去分辨,或在不同維度上打分。如果連人們分辨不出哪些是真的古詩,或者給機(jī)器做的詩歌打分更高的話,我們就可以相對有自信地認(rèn)為這個機(jī)器作詩系統(tǒng)比較完善啦。





機(jī)器寫詩雖然看似是一個玄妙的過程,但是背后的原理卻遠(yuǎn)沒有那么神秘。午餐君期待未來的機(jī)器寫詩系統(tǒng)會融入更加多元化的信息,比如視頻、音頻、社交網(wǎng)絡(luò)結(jié)構(gòu)等等,與推薦系統(tǒng)相結(jié)合,給人類生活帶來更多的趣味。


打包帶走你的語言學(xué)午餐: 

  • 大多數(shù)人工智能機(jī)器作詩系統(tǒng)是基于人工神經(jīng)網(wǎng)絡(luò)模型的,與深度學(xué)習(xí)(Deep Learning)等領(lǐng)域密切相關(guān)。

  • 文中提到的香菱學(xué)詩的過程是一個較為完整和典型的機(jī)器學(xué)習(xí)的例子,她利用了古人的詩集(數(shù)據(jù))和自己的大腦(計算模型,還求助了紫鵑和林妹妹(模型的訓(xùn)練與評測。

  • 衡量一句話的流暢程度,可以用到(統(tǒng)計)語言模型。

  • RNN與CNN是兩大主流的基礎(chǔ)神經(jīng)網(wǎng)絡(luò)。

  • 損失函數(shù)的存在主要是為了更加高效地評價并優(yōu)化模型。


P.S. 小編希望未來繼續(xù)和大家聊有關(guān)計算語言學(xué)的主題,小吃貨們有什么建議?


最后分享給大家一首關(guān)于文字與語言的小詩《來自1979年3月》,作者為2011年諾貝爾文學(xué)獎得主托馬斯·特蘭斯特羅默。

 

From March 1979


Weary of all who come with words, 

words but no language.
I make my way to the snow-covered island.
The untamed has no words.
The unwritten pages spread out on every side!
I come upon the tracks of deer in the snow.
Language but no words.


By Tomas Transtr?mer

Translated from the Swedish by Robin Fulton






References


Zhang, Xingxing and Mirella Lapata. “Chinese PoetryGeneration with Recurrent Neural Networks.” EMNLP (2014).


Yan, Rui et al. “Chinese Couplet Generation with NeuralNetwork Structures.” ACL (2016).


Oliveira, Hugo Gon?alo. “A Survey on Intelligent PoetryGeneration: Languages, Features, Techniques, Reutilisation and Evaluation.”(2017).


Yang, Xiaopeng et al. “Generating Thematic Chinese Poetrywith Conditional Variational Autoencoder.” CoRR abs/1711.07632 (2017)


Mikolov, Tomas et al. “Recurrent neural network basedlanguage model.” INTERSPEECH (2010).


He, Jing et al. “Generating Chinese Classical Poems withStatistical Machine Translation Models.” AAAI (2012).


Smedt, Tom De. “The INLG 2017 Workshop on ComputationalCreativity in Natural Language Generation.” (2017).


 林禹臣 林語塵 





本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
矣曉沅,孫茂松:計算機(jī)的詩意
矣曉沅:清華古典詩歌自動生成系統(tǒng)“九歌”的算法
詩詞創(chuàng)作話靈感
(11)孫力平《杜詩句法藝術(shù)闡釋》序
雅各布森詩歌批評的要點(diǎn)
海德格爾:人詩意地棲居
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服