春風得意馬蹄疾,AI作詩行不行?
作者 | 孫玉霞
編輯 | Vincent, Emily
AI 前線導讀:陽春三月,萬物復甦,又到了交······教 AI 作詩的季節了!你聽過李白放浪形骸的快意人生,聽過杜甫的大庇寒士的悲壯決心,在這個智能時代,人們已經不再滿足於讓 AI 從事單純的邏輯計算工作,更希望能讓 AI 嘗試創造性的工作,吟詩作對,你以為只有文人雅士可以做到?不不不,AI 作詩,也是別有一番滋味。
更多乾貨內容請關注微信公眾號「AI 前線」,(ID:ai-front)
2017 年年初,攜程推出了「詩情畫意」小詩機,讓機器能夠「理解」,「欣賞」用戶拍攝的照片,並基於小詩機自有的龐大知識庫體系,寫出符合圖片的意境和內容的古詩。目前,小詩機和上海地區詩人盲測實驗結果顯示,小詩機已經達到人類詩人的水平,專業評委和大眾評委無法區分出哪些是小詩機的「大作」,整體評分排名靠前。
同時,小詩機還具有基於圖片檢索古詩,作藏頭詩,寶塔詩等功能。小詩機是人工智慧在人類創造力和理解力上的挑戰,讓人們在旅遊的同時擁有詩和遠方。運用了知識圖譜和圖片識別、自然語言深度學習方面的前沿技術,是大數據和人工智慧的結合產物。我們使用機器學習進行景點實體關係和特徵的提取,構建大規模的旅遊景點知識圖譜,包括全球數萬景點、地區、美食、天氣等數據;使用自然語言技術基於 30 多萬首古今詩篇進行語義層級的主題詩歌自動生成。強大的知識支撐和先進技術的融合造就了「詩情畫意」的小詩機。部分樣例如下:
基於景物識別結果成詩。如圖 1,圖片包括樓,林木,梅花等元素,成詩時結合了當時的季節天氣等信息,如日色,冬晴光。
圖 1 景物識別信息成詩
基於人物性別,年齡,表情等成詩。如圖 2,圖片中是一個表情嚴肅的年輕男人。
圖 2 人物識別信息成詩
基於景點信息成詩。如圖 3,成詩結果融合了西湖的特色和周邊景點,比如麴院,孤山,寒湖,蓮葉,茶園,寺廟等。
圖 3 景點信息成詩
為了評估小詩機的效果,我們邀請 5 位文學愛好者(高校文學院學生或者老師,具有較好的文學功底)跟小詩機進行 PK:基於 11 組主題賦詩,文學愛好者有一天的時間進行詩歌創作,而小詩機即興創作,同時邀請兩位專業詩人和四位大眾詩人作為評委。11 個主題的評比結果如表 1,小詩機在 2 個主題下獲得第一名,3 個主題下獲得第二名,2 個主題下獲得第三名,綜合排名第三,通過 了詩歌創作的「圖靈測試」。
表 1 基於 11 場次的評比結果
下面我們通過整體流程介紹、知識圖譜構建、圖片識別、成詩引擎這四個方面來揭開「小詩機」的面紗。
整體流程
小詩機的基本流程如圖 4,主要包括知識圖譜、圖片識別和寫詩引擎。
圖 4 小詩機的整體流程(整體圖替換)
知識圖譜構建
知識來源
為了構建全面的旅遊行業知識圖譜,我們融合了多個維度的知識源,一方面是攜程特有的大量的旅遊行業的數據和景點數據,另一方面是互聯網上關於城市、歷史、傳說、民俗方面的數據,具體分為如下三個部分:
非結構化數據: 攜程的景點簡介,用戶遊記,用戶評論等文本信息。
半結構化數據:以維基百科,百度百科為代表的大規模知識庫,包含了大量結構化和半結構化數據,可以高效地應用到知識圖譜中。
結構化數據:包括自由行,團隊游,酒店,景點,用戶意圖等較為全面的結構化旅遊數據。
針對結構化數據,除了使用一些相關的維度信息,如景點所屬的城市,同時也會進行一些相關的統計分析,實現深入的信息提取和篩選,如對每個城市下重要的景點進行排名。
知識抽取
文本數據的知識抽取會涉及到許多自然語言處理的基本技術,包括分詞,詞性標註,依存句法分析,語義角色標註,命名實體識別等,實現對文本數據的清洗和結構化。主要的提取目標包括如下幾個部分:
實體抽取:利用 CRF++ 和字典結合的方式,從文本中自動識別人名,地名(國家,省市州,城市,景點),機構,節氣,時間等實體 [16]。
關係抽取:主要利用一些啟發式的規則和半監督的方法來從新學到的實例中學習新的 pattern 並擴充 pattern 集合挖掘各個實體之間的關係。
主題抽取:為了構建更全面的旅遊知識體系,同時使用改進的 tfidf,卡方 + TextRank,LDA 等方法 [17] 綜合進行文章主題,關鍵詞,摘要的抽取,從而實現景點實體和特徵實體的關係挖掘。
知識融合
我們的數據來自於不同的數據源,需要對各個數據源提取出來的知識進行融合。實體的融合和匹配是多數據源融合的核心,一方面通過語義向量維度 / 字面維度的相似度來進行實例、屬性、概念等的匹配 [19][20],另一方面結合實體對應的相關屬性以及結構信息進行多維度多層次的匹配 [18],最終利用自定義權重進行融合。
知識推理
在構建的實體關係庫上,使用基於符號邏輯推理方法,推理出新的實體關係以及約束關係。
圖片識別
對於計算機視覺任務而言,大多模型都是基於卷積神經網路(Convolutional Neural Network, CNN)。LeNet5[12] 是最早的卷積神經網路,但是由於硬體的限制並沒有被廣泛的採用。在視覺領域競賽 ILSVRC 2012 上,AlexNet[14] 的出現使得圖片分類的正確率得到了大幅度的提升,從傳統的 74.2% 提升到 83.6%,它是 LeNet5 的一種更深更寬的版本,首次利用 GPU 進行加速運算,並成功應用了 ReLU、Dropout 和 LRN 等技巧。在此基礎上,後續出現了 VGGNet[13]、GoogleNet[11]、ResNet[15] 等,網路的深度和寬度不斷提升,準確率也達到並超過了人類肉眼辨識的水平。
圖 5 ILSVRC 歷年的 Top-5 錯誤率
計算機視覺識別領域具有大量的公開數據集,這些數據集大部分具有高質量的標註。遷移學習能很好地運用這些數據,讓我們在擁有少量標註數據的情況下取得較好的圖片識別結果 [1]。
使用 inception-v3[2] 模型 + 遷移學習的方式,進行快速類別擴充。GoogLeNet 在擴大網路提升效果的同時擁有更好的計算效率,它是一個龐大的網路結構,如圖 6。
圖 6 GoogLeNet 神經網路結構
其中 inception 模塊是其核心,具體 inception 結構如圖 7。
圖 7 Inception 神經網路結構
使用基於 ImageNet 的 Inception-v3 模型,由於我們多分類數據量比較小,同時數據內容 ImageNet 內容有一定的差異性,因此並沒有直接利用網路的高層進行特徵的抽取,而是打開高層網路和淺層分類網路同時進行訓練,結果表明,該方法比直接利用網路高層進行特徵提取效果提升了 8 個百分點。這是由於網路的高層是對特徵的進一步抽象和提取,跟原任務數據具有較高的耦合性,而底層網路抽取的特徵則為一些基礎特徵,在此基礎上融合分類網路的訓練,對新任務具有更好的擬合性。最終在旅遊數據集上,我們在內部的類別標籤體系上取得了 92.5% 的 mAP。
在此同時,相似類別語料的添加也顯得尤為重要,譬如對於「溫泉」類別特別容易識別成「小河」或者「游泳池」,添加相近的類別語料供演算法進行學習,能夠有效提升識別結果的精確度。如圖 8,列出了圖片的識別結果。
圖 8 圖片識別結果
成詩引擎
傳統詩歌生成主要藉助統計模型,同時結合人工規則。在統計機器翻譯的方法中 [4],使用統計機器翻譯模型結合韻律規則進行下一句的生成。在遺傳演算法中 [3],則根據開發者對詩歌的理解,人工定義韻律,流暢性,主題相關性等各個評價因子,構建評估函數,同時使用統計語言模型進行詩歌的自動生成。
隨著深度學習技術的日益發展,使用神經網路進行詩歌自動生成是現在的流行趨勢。傳統的詩歌自動生成模型,由於古詩語言表達的簡潔性和語料數量的限制,基於統計的語言模型具有比較嚴重的稀疏性。在深度學習中,利用 RNN 訓練和獲取詩歌的語言模型,在一定程度上緩解了該問題 [5]。在此同時,encoder-decoder 框架做為成詩的基本模型,利用 encoder 模塊進行歷史內容 [6][8]、主題內容 [7][8] 的編碼,decoder 模塊進行詩句的生成,對主題關聯性和語義連貫性,使用不同方法進行嘗試,從而構建相關模型。模型 [8][9] 根據給定的關鍵詞首先對每句話進行主題的規劃,從而避免在逐句成詩過程中,主題關聯性的弱化。模型 [8][6] 利用 attention 機制,在成詩過程中進行主題、歷史生成內容的融合,而模型 [7] 則是使用 hierarchical 的 RNN 框架,進一步保證整體主題和語義的統一性。
對於小詩機而言,需要結合多重元素空間和多維主題,而且詩歌語料和主題體系相關性存在缺失,比較難進行端到端的深度學習模型的應用,因此結合了傳統模型和深度學習模型,具體從如下幾個維度進行了綜合優化:
主題規劃和相關性:
對景點 / 圖片與主題元素的相關性進行打分,多個維度進行綜合排序,使整個主題元素空間在全局上權重化,同時結合一定的寫詩慣例,基於概率模型動態預先確定每句話的主題元素。
基於關鍵詞語義空間的相關主題詞獲取。語義流暢性:
利用 RNNLM[21] 在一定程度上緩解傳統統計語言模型的稀疏性,提升詩歌的流暢性,如圖 9。
圖 9 RNN based language model with classes
基於語義層級體系獲取語言模型,從多個層次上來把握詩歌的語義搭配粒度, 使得表達更加的流暢。選優框架(AI 排版沒有體現出該小標題)
基於貪婪演算法和局部最優的二排演算法進行詩歌的自動生成,從而在保證性能和詩歌基本韻律的基礎上,一定程度上確保詩歌主題的相關性和表達的多樣性。
遺傳演算法也是對解空間尋求最優化,把古詩的生成看作是一個狀態空間搜索問題。將主題相關性,詩歌流暢度、韻律要求等綜合融入到評估函數中,適應度函數的設計則較為複雜,同時遺傳演算法速度較慢,更適合對於速度要求不高的場景。
總結
小詩機在總體上,是從技術和產品維度上的創新和探索,一方面構建了大規模全面的旅遊知識圖譜,另外一方面結合深度學習的方法進行基於圖片的成詩,使得詩具有較好的主題性和流暢度。在此基礎上,後續會進行進一步的標籤細化,包括知識庫和圖片識別兩個方面,使得小詩機擁有更加寬闊的旅遊視野和更加細膩的觀察維度。在此同時,進行成詩引擎的深入優化,適應更加多元化的元素,真正引領智慧旅遊。
作者介紹
孫玉霞,攜程技術中心基礎業務部演算法工程師,南京師範大學碩士,主要研究方向為自然語言處理,參與小詩機,智能客服,產品強化等相關項目。
相關文獻
[1] http://cs231n.github.io/transfer-learning/
[2] Szegedy C, Vanhoucke V, Ioffe S, et al. Rethinking the Inception Architecture for Computer Vision[J]. 2015:2818-2826.
[3] 周昌樂, 游維, 丁曉君. 一種宋詞自動生成的遺傳演算法及其機器實現 [J]. 軟體學報, 2010, 21(3):427-437.
[4] He J, Zhou M, Jiang L. Generating chinese classical poems with statistical machine translation models[C]. Twenty-Sixth AAAI Conference on Artificial Intelligence. AAAI Press, 2012:1650-1656.
[5] Mikolov T, Karafiát M, Burget L, et al. Recurrent neural network based language model[C]. INTERSPEECH 2010, Conference of the International Speech Communication Association, Makuhari, Chiba, Japan, September. DBLP, 2010:1045-1048.
[6] Wang Q, Luo T, Wang D, et al. Chinese song iambics generation with neural attention-based model[C]. International Joint Conference on Artificial Intelligence. AAAI Press, 2016:2943-2949.
[7] Rui Y. i, Poet: Automatic Poetry Composition through Recurrent Neural Networks with Iterative Polishing Schema. Proceedings of the Twenty-Fifth International Joint Conference on Artificial Intelligence. IJCAI-16,2238-2244
[8] Wang Z, He W, Wu H, et al. Chinese Poetry Generation with Planning based Neural Network[J]. 2016.
[9] Ghazvininejad M, Shi X, Choi Y, et al. Generating Topical Poetry[C]. Conference on Empirical Methods in Natural Language Processing. 2016:1183-1191.
[10] https://zhuanlan.zhihu.com/p/25084737?columnSlug=easyml
[11] Szegedy C, Liu W, Jia Y, et al. Going deeper with convolutions[C]. IEEE Conference on Computer Vision and Pattern Recognition. IEEE Computer Society, 2015:1-9.
[12] Yann LeCun, Leon B, Youshua B, Patrick H. Gradient based Learning Applied to Document Recognition. PROC OF THE IEEE, NOVEMBER 1988
[13] Simonyan K, Zisserman A. Very Deep Convolutional Networks for Large-Scale Image Recognition[J]. Computer Science, 2014.
[14] Krizhevsky A, Sutskever I, Hinton G E. ImageNet classification with deep convolutional neural networks[C]// International Conference on Neural Information Processing Systems. Curran Associates Inc. 2012:1097-1105.
[15] He K, Zhang X, Ren S, et al. Deep Residual Learning for Image Recognition[J]. 2015:770-778.
[16] 何炎祥, 羅楚威, 胡彬堯. 基於 CRF 和規則相結合的地理命名實體識別方法 [J]. 計算機應用與軟體, 2015, 32(1):179-185.
[17]Wu W, Zhang B, Ostendorf M. Automatic Generation of Personalized Annotation Tags for Twitter Users.Human Language Technologies: Conference of the North American Chapter of the Association of Computational Linguistics, Proceedings, June 2-4, 2010, Los Angeles, California, USA. DBLP, 2010:689-692.
[18] Otero-Cerdeira L, Rodríguez-Martínez F J,Gómez-Rodríguez A. Ontology Matching: A Literature Review [J]. Expert Systems with Applications, 2015, 42(2):949–971.
[19] Lambrix P, Tan H. SAMBO—A System for Aligning and Merging Biomedical Ontologies [J]. Web Semantics Science Services and Agents on the World Wide Web, 2006, 4(3):196-206.
[20] Li J, Wang Z, Zhang X, et al. Large Scale Instance Matching via Multiple Indexes and Candidate Selection[J]. Knowledge-Based Systems, 2013, 50(3):112-120.[21] T Mikolov , S Kombrink , A Deoras ,L Burget , ?ernocky. RNNLM --- Recurrent Neural Network Language Modeling Toolkit.
AI前線
緊跟前沿的AI技術社群
想看更多這類文章, 請給我們點個贊吧!


※淺析eBay聯盟營銷的上下文廣告機制
※用深度學習挖掘海量文本中的寶藏
TAG:AI前線 |