新聞智能推薦之Tensorflow自動生成標題的研究及應用
引言:
隨著人工智慧的快速興起,Google發布的深度學習框架TensorFlow在短短兩年內,就成為了當前最流行的深度學習項目。
在圖像處理、音頻處理、自然語言處理和推薦系統等場景中,TensorFlow都有著豐富的應用。雖然開源沒多久,但是TensorFlow正在悄然滲透到我們的工作生活當中。
研究背景:
某新聞企業通過接入極光智能推薦系統,在其APP端增加智能推薦模塊,為其用戶私人訂製感興趣的新聞。極光機器學習雲能夠快速、精準的提取每條新聞的主題,並對新聞進行主題分類,藉助極光自有的用戶標籤,向用戶實時的推薦個性化新聞。
通過TensorFlow深度學習框架,在自然語言處理方向,極光已經通過機器學習演算法實現了文章標題、摘要和關鍵詞的自動生成功能。
研究方案:
文本自動總結的模型一直都是深度學習中的研究熱點。有一些諸如 TFIDF和TextRank之類常規演算法,其基本原理是直接抽取文本中重要的句子。也有一些較為複雜的演算法如重新生成新的句子,但效果不佳。目前常用的模型是seq2seq,它是基於Encoder-Decoder的一個結構,首先將原始文本中的句子encode成一個固定大小的向量,然後通過decoder部分一個字元一個字元生成目標句子。
TensorFlow,也就是Tensor和Flow,這就意味著Tensor和Flow是TensorFlow的基礎要素。Tensor意味著數據,Flow意味著流動、計算和映射,這也體現出數據是有向的流動、計算和映射。TensorFlow的結構由會話(session),圖(graph),節點(operation)和邊(tensor)組成,它使用圖(graph)來表示計算任務,圖在被稱之為會話(Session)的上下文(context)中執行,其狀態是通過變數(Variable)來維護的,使用feed和fetch可以為任意的操作(arbitrary operation)賦值或者從其中獲取數據。
這篇文章中我們將採用基於Tensorflow的Seq2seq+Attention模型,訓練一個新聞標題自動生成模型。
加入Attention注意力分配機制,是為了使Decoder在生成新的目標句子時,可以得到前面Encoder編碼階段每個字元隱藏層的信息向量,提高生成目標序列的準確度。
數據處理:
樣本數據為該企業新聞客戶端2016年11月份的新聞,超過10M的語料數據,包含新聞標題和新聞正文信息。由於在Encoder編碼階段處理的信息會直接影響到整個模型的效果,所以對新聞數據的預處理工作需要非常細緻。對新聞中的特殊字元、日期、英文、數字以及鏈接都要進行替換處理。
文本預處理後,就是訓練樣本的準備工作。這裡的Source序列,就是新聞的正文內容,待預測的Target目標序列是新聞標題。為了保證效果,正文部分不能過長,這裡設定分詞後的正文不超過100個詞,不足用PAD字元補齊,設定標題不超過20個詞。在生成訓練樣本的時候,定義了create_vocabulary()方法來創建詞典,data_to_id()方法把訓練樣本(train_data.txt)轉化為對應的詞ID。
訓練樣本的數據格式如下:
演算法解析:
Seq2Seq是一個基於輸入的sequence,預測一個未知sequence的模型。模型由Encoder編碼階段和Decoder解碼階段兩部分構成。模型編碼階段Encoder的RNN每次會輸入一個字元代表的向量,將輸入序列編碼成一個固定長度的向量;解碼階段的RNN會一個一個字元地解碼,如預測為X。在訓練階段時會強制將上一步解碼的輸出作為下一步解碼的輸入,即X會作為下一步預測Y時的輸入。
當編碼階段輸入的序列過長時,解碼階段LSTM模型將無法針對最早的輸入序列解碼。Attention注意力分配機制,在解碼階段每一步解碼時,都會有一個輸入,對輸入序列所有隱含層的信息進行加權求和,能夠很好的解決這個問題。
將分詞後的新聞文本數據拆分為訓練樣本和測試樣本,共四個文件:train_data.txt,train_title.txt,test_data.txt,test_title.txt 。新聞正文內容和其對應的新聞標題需要分開存放在兩個文件內,一行為一條新聞樣本。
實證效果:
運行腳本,訓練好的模型將被保存下來,部分預測好的Text Summarizaion如下:
總結:
隨著互聯網的迅速發展,網路中的新聞資源呈指數級增長,通過深度學習自動生成的標題往往能很直觀的體現新聞的主題內容,便於讀者快速的瀏覽新聞,準確選擇自己感興趣的內容,節約時間成本,能夠給讀者帶來很好的體驗感。
智能推薦已經成為一種勢不可擋的趨勢,隨著人工智慧的發展,演算法推薦必將成為內容領域的主流之一。極光即將推出一套完整的智能推薦引擎,模型引入極光用戶標籤,將基於Tensorflow的LSTM主題分類的個性化推薦和非個性化推薦相結合,不僅能很好的解決用戶冷啟動問題,而且可以滿足企業的個性化需求和用戶的實時智能推薦。
推薦閱讀:
※用R語言爬取美國新總統-川普的twitte進行數據分析
※猴子數據分析第四關 複雜數據分析
※ggplot2 函數學習
※Apache kylin的基礎運維
TAG:大数据分析 |