WPS智能輔助寫作平臺架構實踐分享

結合當下流行的NLP等人工智能相關技術,金山辦公軟件有限公司武漢AI部門自主研發了WPS智能輔助寫作平臺。利用意圖識別、文本聚類等語義匹配算法,該平臺實現了AI輔助用戶寫稿創作,並具備公文模板、素材推薦和輔助生成等特色功能,同時還實現了公文素材的海量收集,數據規模達到千萬級文章、百萬級提綱和段落。

作爲一款技術立業、用戶角度的寫作產品,wps智能輔助寫作平臺在不斷提升用戶寫作體驗的同時,也在積極尋求和新思路、新技術的融合碰撞,下面爲大家帶來結合了Milvus相關技術的素材推薦解決方案的案例分享。

整體架構

在WPS智能輔助寫作平臺重要組成部分的素材推薦模塊中,基於Milvus的向量處理模塊作爲核心功能,發揮了極其重要的作用,其目標是在海量的文本中高效提取、存儲高質量公文素材,並針對不同用戶需求進行精準推薦。

圖1.1 結合Milvus的WPS智能輔助寫作平臺示意圖

本案例的素材推薦服務按模塊可以分爲數據處理模塊和編碼存儲模塊以及推薦查詢模塊。涉及到Milvus向量數據庫的主要是編碼存儲模塊以及推薦查詢模塊。

圖1.2 素材推薦服務整體架構

數據處理模塊主要分爲數據清洗、提綱及段落抽取,從海量數據中得到篩選後的提綱、段落數據。

編碼存儲模塊則涉及到文本編碼和向量存儲兩部分。文本編碼通過深度學習方法得到256維高維向量,再將向量及其對應的原文id等信息插入Milvus向量數據庫,並按照Milvus提供的索引建立方法IVFFLAT對每條數據建立索引。

推薦查詢模塊則根據用戶輸入等搜索條件進行編碼得到輸入搜索向量,在Milvus向量數據庫中使用官方提供的相似度計算方法(L2距離)進行最近鄰搜索,返回粗召回的向量和原文id等,再通過畫像、模型等進行精準排序推薦。

組件/技術

在數據處理模塊,所用方法主要涉及到特徵工程、正則匹配及NLP模型打分等。

文檔是人類使用複雜語義的代表,從字到詞、句子、段落和文章,多層次分佈着大量的語義信息。對文檔建立特徵工程,是最大化提取語義特徵的有效途徑之一。

結合實際文本數據,本案例選擇從詞彙、句子等多級別出發,建立文檔的詞彙特徵和語句特徵。

在詞彙特徵級別上,經過分詞建立語料詞庫,再通過TF-IDF算法,

計算單詞頻率項(TF):

以及逆文檔頻率項(IDF):

得到TF-IDF值:

經過排序提取出文檔關鍵詞。

同時考慮到對象文本含有大量的人名、機構名稱等實體詞彙,這些實體在排序召回尤其是精準排序時發揮了巨大作用,因此採用深度學習模型:BLSTM-CNNs-CRF對文檔中的實體詞進行抽取。

圖2.1 NER模型計算流程

BLSTM-CNNs-CRF模型可以分爲三個部分,首先在字符級別嵌入(Char Embedding)的基礎上,使用CNN模型對每個單詞計算其字符級別表示(Char Representation),再將該結果連接到單詞級別嵌入向量(Word Embedding),輸送到雙向長短期記憶網絡(BLSTM),最後將BLSTM的輸出反饋到條件隨機場(CRF),共同解碼最佳標籤序列。

圖2.2 NER模型結構示意圖

在語句特徵級別上,本案例使用TextRank抽取文檔中表達觀點的摘要性句子作爲文檔關鍵句,TextRank算法作爲一種抽取式的無監督的文本摘要方法,借鑑了用於對在線搜索結果中的網頁進行排序的PageRank算法,通過分割文本、向量化並建立圖模型, 利用轉移概率矩陣對文本語句進行排序, 在文檔內部實現了關鍵句抽取。

圖2.3 TextRank算法流程示意圖

同時本案例還訓練了一個TextCNN模型用於提取文檔中的高質量段落和語句,將抽取任務看作分類任務,爲了更好的捕捉語句之間的局部相關性,本案例在使用預訓練的詞向量(Word2Vec)基礎上,利用多個不同大小(Size)的卷積核(Kernel),實現語句對單詞的強關聯。

TextCNN主要分爲嵌入層(Embedding)、卷積層(Convolution)、池化層(MaxPooling)和全連接輸出層(Full-Connection and Softmax),作爲常用的文本分類算法之一,其優勢體現在結構簡單,效果良好,可擴展性強。

圖2.4 TextCNN模型結構示意圖

在編碼存儲模塊,編碼主要使用語義理解模型,在存儲中主要用到了索引Index組件。

在編碼部分,傳統的語句嵌入多使用無監督方法,然而這些方法在處理長語句時不夠魯棒。在本案例場景下,採用了有監督訓練方法的語句嵌入模型中的Infersent模型,儘可能對句子進行通用表徵。

作爲有監督模型,Infersent選取SNLI作爲分類任務,通過設計好的編碼器(Encoder)對句子對(text, hypothesis)進行編碼得到其對應的特徵向量U、V,經過連接、差值和內積後得到分類所用的特徵,經過全連接層和Softmax層後輸出對應分類(Judgements),在訓練完成後即可通過Encoder得到語句的編碼向量。

圖2.5 Infersent模型結構示意圖

在索引部分,IndexFlatL2索引是作爲針對歐式距離計算設計的暴力搜索索引,但考慮到際應用場景,本案例選擇了在IndexFlatL2索引基礎上添加聚類的IVF-FLAT索引,通過劃分搜索空間,在查詢時檢索某幾個聚類,大大加快了整體速度。

本案例也用到了Milvus的分區功能,爲數據劃分不同的種類,使得查詢變得更加快速和準確。

線上服務部分主要使用K8s共享集羣,同時考慮具體數據內容,選擇mysql保存元數據信息,沒有使用默認的SQLite,側面也反映了Milvus組件的靈活性。

性能目標

目前部署於0.6.0-CPU版本Milvus向量數據庫約有200萬文本,用於支持WPS智能輔助寫作微信小程序搜索,同時正在處理增加數據,預計可以達到千萬級規模語料。

在響應時間方面,本案例使用共享集羣,計算資源被其他應用所共享,因此本案例的數據只能作爲參考標誌,在目前的版本中單次單條服務總體響應時間平均達到0.2s。

應用效果

在面向黨政領域的素材智能推薦功能上,意圖識別準確率達80%以上,用戶素材引用率達40%;在面向公文領域的輔助生成功能上,實現了多類法定公文的寫作模板和輔助創作,並支持一鍵生成全文。

以WPS智能輔助寫作網頁客戶端爲例,現支持工作總結、心得體會以及評論觀點等9類常見公文類型的輔助寫作,輔助功能則主打一鍵全文和智能生成功能。一鍵全文功能通過對標題、關鍵詞的意圖理解,通過相關推薦算法選擇合適的提綱和段落,生成一篇完整的文章供用戶修改使用。而特色的智能生成功能則先初步爲用戶提供多篇可更換的提綱段落,同時在用戶修改創作過程中,通過AI生成算法對選中字段結合上下文語境生成適度文字段落供用戶引用和發散思維,達到以人爲主、輔助創作的效果。

而WPS智能輔助寫作平臺微信小程序在相關公文功能的基礎上,開發了諸如詩詞創作、信件模板推薦等實用功能,同時引入了寫作社區,方便用戶開拓視野、分享創作,以文交友,進一步提升寫作體驗。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章