申 遠(yuǎn), 黃志良, 胡 彪, 王適之
(空軍預(yù)警學(xué)院, 武漢 430019)
隨著戰(zhàn)場信息搜集手段、處理分析方法的快速發(fā)展,使得作戰(zhàn)用戶能夠獲得大量的不同類型、不同粒度、不同時空的戰(zhàn)場態(tài)勢資源,但是也會使得指揮員需要耗費(fèi)很大的時間精力才能從海量的態(tài)勢中發(fā)掘有效信息資源,會出現(xiàn)“態(tài)勢泛濫”和“態(tài)勢缺乏”的矛盾,即一方面戰(zhàn)場態(tài)勢呈指數(shù)級增長,另一方面作戰(zhàn)用戶可以利用到的合適態(tài)勢資源卻很少[1]。目前解決該矛盾問題最直接有效的方法就是智能推送,態(tài)勢智能推送是以推薦算法為核心,利用知識發(fā)現(xiàn)、數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)、人工智能等多種方法為用戶提供合適的態(tài)勢資源,態(tài)勢智能推送能夠根據(jù)用戶個性化需求,主動為用戶提供合適的態(tài)勢,并且當(dāng)用戶需求變化時,態(tài)勢智能推送也能自適應(yīng)變化,及時準(zhǔn)確地為用戶提供個性化、智能化、動態(tài)化的態(tài)勢資源。
智能推送的核心是推薦算法,常見的推薦算法有協(xié)同過濾推薦算法[2]、基于內(nèi)容的推薦算法[3]和組合推薦算法[4]。目前在軍用領(lǐng)域,推薦算法理論研究也有一定的成果。胡旭等人[5]針對協(xié)同過濾推薦算法的數(shù)據(jù)稀疏性、擴(kuò)展性差問題,提出了初始聚類中心優(yōu)化的K-均值項(xiàng)目聚類推薦算法;余苗等人[6]利用層次向量空間構(gòu)建用戶興趣空間,根據(jù)情報用戶少量的定制信息和樸素貝葉斯分類算法建立用戶興趣模型,提出了一種基于樸素貝葉斯分類算法的雷達(dá)情報按需分發(fā)技術(shù);傅暢等人[7]設(shè)計(jì)并實(shí)現(xiàn)了一個包括采集、處理、存儲與檢索的Web軍事情報挖掘模型,提出了一種面向軍事情報應(yīng)用的文本聚類方法;袁仁進(jìn)[8]圍繞軍事新聞推薦模型構(gòu)建與更新、融合地理情境的軍事新聞推薦模型構(gòu)建等方面進(jìn)行了研究,提出了一種基于向量空間模型和Bisecting K-means聚類的軍事新聞推薦方法,針對顧及時間上下文的用戶興趣模型更新問題,構(gòu)造了一種基于時間的遺忘函數(shù),最后針對地理推薦問題,提出了基于地理上下文的軍事新聞推薦算法,并構(gòu)建了軍事新聞個性化推薦原型系統(tǒng)。
上述研究主要是利用用戶和態(tài)勢兩者之間的歷史交互關(guān)系進(jìn)行學(xué)習(xí)建模,但該方法存在的問題是用以實(shí)現(xiàn)算法模型訓(xùn)練的用戶歷史行為記錄數(shù)據(jù)是比較稀疏的,并且很難解釋用戶與這類態(tài)勢產(chǎn)生交互行為(如定制、瀏覽、評價等)的原因,比如用戶定制這類態(tài)勢而不定制另外一類態(tài)勢,很難用用戶—態(tài)勢需求度矩陣來解釋。如果能夠?qū)τ脩舢a(chǎn)生交互行為的相對應(yīng)態(tài)勢內(nèi)容進(jìn)行分析,那么必將使得用戶建模更為準(zhǔn)確,并具有很強(qiáng)的解釋性,能夠描述用戶歷史行為記錄背后隱藏著抽象的用戶—態(tài)勢需求關(guān)系。因此本文在神經(jīng)網(wǎng)絡(luò)推薦算法的基礎(chǔ)上,利用自然語言學(xué)習(xí)中的Doc2Vec算法來提取態(tài)勢內(nèi)容特征信息,并訓(xùn)練成態(tài)勢內(nèi)容特征向量,再與用戶—態(tài)勢需求度矩陣中的用戶—態(tài)勢交互行為向量進(jìn)行融合,這就使得算法模型能夠?qū)W習(xí)到態(tài)勢更多的特征信息,在一定程度上緩解數(shù)據(jù)稀疏性問題,從而提升推薦效果。
在對態(tài)勢進(jìn)行建模時,一般采用向量空間模型來表示。以預(yù)警情報為例,預(yù)警情報則可以表示為n維的特征向量{(t1,ω1),(t2,ω2),...(ti,ωi),(tn,ωn)},ti、ωi分別表示這些特征的關(guān)鍵詞和相應(yīng)的權(quán)重。這種表示方法的核心是對關(guān)鍵詞進(jìn)行提取,如文獻(xiàn)[9]將預(yù)警情報特征提取為位置、高度、航向、速度、屬性、機(jī)型等特征,這樣一來該特征選取方法明顯帶有主觀性,無法將情報更多的特征信息挖掘出來,會造成情報特征信息的流失,使得用戶需求建模就會變得不準(zhǔn)確。
在實(shí)際運(yùn)用過程中,戰(zhàn)場態(tài)勢種類是多種多樣的,如視頻類、音頻類、圖像類、文本類等。其中,文本類態(tài)勢特征明顯,特征提取相對容易,而諸如視頻類、音頻類、圖像類這些態(tài)勢特征提取較為困難,因此需要對這些非結(jié)構(gòu)化數(shù)據(jù)進(jìn)行結(jié)構(gòu)化處理,形成文本類態(tài)勢。在得到同類型的態(tài)勢文本數(shù)據(jù)后,可以利用相應(yīng)的方法對態(tài)勢內(nèi)容進(jìn)行表示。而文本內(nèi)容一般采用詞袋模型將文本轉(zhuǎn)化成低維空間的稠密向量,這樣的表示方法會使得文本所有重要的特征被提取出來,而不是僅僅取幾個主要的文本特征[10]。以“敵方/導(dǎo)彈/距離/我方/20km”和“敵方/飛機(jī)/在/我方/東北/方向”為例,基于以上文本內(nèi)容則可建立詞典為:{“敵方”:1,“導(dǎo)彈”:2,“飛機(jī)”:3,“距離”:4,“在”:5,“我方”:6,“20km”:7,“東北”:8,“方向”:9}。假設(shè)每一個詞都有唯一的索引,根據(jù)各詞的出現(xiàn)順序及頻率,則上述文本用詞袋模型中9維的詞向量分別表示成[1,1,0,1,0,1,1,0,0]、[1,0,1,0,1,1,0,1,1]。這種表示方式好處在于將文本內(nèi)容的所有關(guān)鍵詞都提取出來,態(tài)勢信息主要信息被提取出來。缺點(diǎn)在于該方法忽略了各詞語的上下文順序,且當(dāng)存在大量且特征繁多的戰(zhàn)場態(tài)勢時,態(tài)勢特征的表示就會變得非常稀疏,即用詞袋模型表征所有的態(tài)勢特征時,對于單個態(tài)勢而言,所擁有的特征相對有限,則詞袋模型表示的大部分特征對單個態(tài)勢是沒有意義的。因此用向量空間模型來表示態(tài)勢將具有很大的局限性。
基于Doc2Vec的詞嵌入模型是Le和Mikolov提出的一種深度文本學(xué)習(xí)算法。Doc2Vec算法是從大型原始數(shù)據(jù)中以完全無監(jiān)督的方式進(jìn)行訓(xùn)練,而無需任何針對于特定任務(wù)的標(biāo)記數(shù)據(jù)[11]。該方法的優(yōu)點(diǎn)在于應(yīng)用場景廣闊,可利用神經(jīng)網(wǎng)絡(luò)將任何長度的文本生成詞向量嵌入到算法模型。Doc2Vec方法的基本思想是通過神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)訓(xùn)練,將文本中每一個詞表示成低維稠密向量形式,最終的目標(biāo)是生成可表示的詞向量。根據(jù)文本領(lǐng)域的不同,該向量的維度會有所不同,通常的做法是取值50或100,針對特定領(lǐng)域,向量維數(shù)固定的好處在于不會產(chǎn)生高維向量造成“維數(shù)災(zāi)難”問題。其中,向量的每一個維度包含著文本的某一種潛在特征,每個維度的取值范圍為0~1的實(shí)數(shù)。對于一個文本而言,在經(jīng)過預(yù)處理后,文本主要內(nèi)容特征很容易人工提取,關(guān)鍵問題戰(zhàn)場態(tài)勢是海量的,不可能對每個文本都采用這樣的方式,因此要根據(jù)文本內(nèi)容的上下文順序,利用Doc2Vec訓(xùn)練模型訓(xùn)練語料庫來預(yù)測下一個詞語,根據(jù)預(yù)測結(jié)果可以為每一個文本生成詞向量,然后, Doc2Vec方法具有2種模型。一種是分布式記憶模型(Distributed Memory,DM),另外一種是分布式詞袋模型(Distributed Bag of Words, DBOW)。2種方法的訓(xùn)練方式相同,都采用神經(jīng)網(wǎng)絡(luò)為基礎(chǔ)進(jìn)行訓(xùn)練。不同之處在于前者是設(shè)定一定閾值后,利用當(dāng)前詞語去預(yù)測閾值范圍內(nèi)的詞語,從而形成詞向量,而后者是根據(jù)詞語之間的上下文關(guān)系來預(yù)測下一個詞語,從而形成詞向量。對于態(tài)勢文本而言,文本中各類詞語往往具有很大的關(guān)聯(lián)性,采用分布式詞袋模型來對文本建模更為準(zhǔn)確,分布式詞袋模型結(jié)構(gòu)如圖1所示。
圖1 分布式詞袋模型結(jié)構(gòu)
深度神經(jīng)網(wǎng)絡(luò)算法因其魯棒性好、自適應(yīng)能力強(qiáng)、處理非線性關(guān)系能力優(yōu)異、并行計(jì)算速度快等優(yōu)點(diǎn)而廣泛應(yīng)用于圖像處理、模式識別、經(jīng)濟(jì)預(yù)測、業(yè)務(wù)決策等領(lǐng)域。文獻(xiàn)[13]提出將深度學(xué)習(xí)方法—多層感知機(jī)應(yīng)用于協(xié)同過濾推薦算法,該深度神經(jīng)網(wǎng)絡(luò)推薦算法(Deep Neural Network,DNN)通過建立多層前饋神經(jīng)網(wǎng)絡(luò)模型來學(xué)習(xí)用戶—態(tài)勢交互關(guān)系,使得算法模型更具備非線性建模能力。
深度神經(jīng)網(wǎng)絡(luò)推薦算法是利用需求度的已知項(xiàng)來預(yù)測需求度未知項(xiàng)。深度神經(jīng)網(wǎng)絡(luò)推薦算法通過建立利用用戶—態(tài)勢交互函數(shù)f∈RX×Y來表示用戶歷史反饋行為數(shù)據(jù),R為用戶—態(tài)勢需求度矩陣,X和Y分別表示用戶和態(tài)勢的數(shù)目,定義如下:
(1)
(2)
(3)
和矩陣分解推薦算法一樣,在得到預(yù)測需求度后,可建立目標(biāo)函數(shù)進(jìn)行參數(shù)優(yōu)化來找到最合適的參數(shù)P、Q和OT。
綜上所述,研發(fā)得到深度神經(jīng)網(wǎng)絡(luò)推薦算法的流程步驟分述如下:
Step1輸入用戶—態(tài)勢需求度矩陣;
Step2對P、Q和OT等模型參數(shù)進(jìn)行初始化;
Step3通過相關(guān)處理,將用戶和態(tài)勢特征向量輸入到深度神經(jīng)網(wǎng)絡(luò)來預(yù)測需求度;
Step4利用隨機(jī)梯度下降法對模型進(jìn)行訓(xùn)練,直到模型收斂;
Step6對各態(tài)勢的預(yù)測需求度進(jìn)行排序,將排序高的態(tài)勢推送給用戶。
研究中利用Doc2Vec方法將態(tài)勢的文本信息融入到深度神經(jīng)網(wǎng)絡(luò)模型后,文本中的內(nèi)容信息被建模成詞向量,與深度神經(jīng)網(wǎng)絡(luò)中的用戶的潛在特征向量和態(tài)勢潛在特征向量進(jìn)行拼接融合,通過在嵌入層的特征疊加,則算法模型可以學(xué)習(xí)用戶—態(tài)勢建立關(guān)聯(lián)關(guān)系隱含著的抽象特征?;贒oc2Vec和深度神經(jīng)網(wǎng)絡(luò)推薦算法結(jié)構(gòu)如圖2所示。
該模型主要分為輸入層、嵌入層、隱藏層和輸出層。其中,輸入層是輸入已經(jīng)分布式處理后的用戶特征向量、態(tài)勢特征向量和態(tài)勢內(nèi)容特征向量;嵌入層用于將用戶序列、態(tài)勢序列以及態(tài)勢內(nèi)容序列轉(zhuǎn)換成表征各自特征的低維稀疏向量,對于態(tài)勢內(nèi)容特征向量,文本中每一個詞語在嵌入層表示為多維向量Di={d1,d2,...,di,...,dn},這樣的表示方法使得文本中更多的特征被提取出來;在隱藏層,主要是對用戶特征向量、態(tài)勢特征向量以及態(tài)勢內(nèi)容特征向量進(jìn)行連接得到一個用戶—態(tài)勢—態(tài)勢內(nèi)容特征向量,用于深度神經(jīng)網(wǎng)絡(luò)的多層感知機(jī)的輸入,其中神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)采用是倒塔式結(jié)構(gòu),即下一層的神經(jīng)元的數(shù)目為上一層的一半,此時可以利用多層感知機(jī)對用戶—態(tài)勢—態(tài)勢內(nèi)容特征向量進(jìn)行特征學(xué)習(xí)并作為輸出層的輸入;輸出層主要是根據(jù)學(xué)習(xí)到的用戶—態(tài)勢—態(tài)勢內(nèi)容特征,可對用戶—態(tài)勢—態(tài)勢內(nèi)容特征向量進(jìn)行需求度預(yù)測,根據(jù)預(yù)測值與實(shí)際值的誤差情況進(jìn)行自適應(yīng)調(diào)整,如果輸出結(jié)果與實(shí)際結(jié)果相差太大,則不斷調(diào)整各個參數(shù),直到預(yù)測值與實(shí)際值的誤差值小到一定程度后,即神經(jīng)網(wǎng)絡(luò)訓(xùn)練達(dá)到最優(yōu)值,這時就不再調(diào)整參數(shù),每次這樣的深度神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)成功的結(jié)果都會被神經(jīng)網(wǎng)絡(luò)中的神經(jīng)元記憶儲存,當(dāng)作戰(zhàn)用戶提出態(tài)勢需求時,深度神經(jīng)網(wǎng)絡(luò)都可以根據(jù)學(xué)習(xí)的結(jié)果向該用戶主動推送合適的態(tài)勢資源。
圖2 基于Doc2Vec和深度神經(jīng)網(wǎng)絡(luò)推薦算法模型
Fig. 2 Recommendation algorithm model based on Doc2Vec and Deep Neural Network
(4)
因?yàn)樵谏疃壬窠?jīng)網(wǎng)絡(luò)算法中,態(tài)勢內(nèi)容向量也是在進(jìn)行預(yù)測,因此也會存在預(yù)測上的誤差(預(yù)測值與真實(shí)值),為防止訓(xùn)練過擬合,添加權(quán)重正則化項(xiàng)λD‖G‖2,則此時基于態(tài)勢內(nèi)容向量預(yù)測的目標(biāo)函數(shù)為:
(5)
對于深度神經(jīng)網(wǎng)絡(luò)部分,定義f+表示用戶和態(tài)勢有交互行為,f-表示用戶和態(tài)勢無交互行為,將輸出層輸出值范圍限定為[0,1],輸出層激活函數(shù)保持不變,則定義似然函數(shù)為:
(6)
對式(6)取負(fù)對數(shù),f(λDNN)表示深度神經(jīng)網(wǎng)絡(luò)的正則化項(xiàng),用于防止模型過擬合,則此時深度神經(jīng)網(wǎng)絡(luò)算法需要進(jìn)行優(yōu)化的目標(biāo)函數(shù)為:
(7)
根據(jù)式(5)~式(7)可知基于Doc2Vec和深度神經(jīng)網(wǎng)絡(luò)的推薦算法的目標(biāo)函數(shù)為:
FDNN+Doc2Vec=FD+FDNN=
(8)
在得到目標(biāo)函數(shù)后,利用隨機(jī)梯度下降法[14]進(jìn)行學(xué)習(xí)訓(xùn)練,根據(jù)訓(xùn)練結(jié)果,將一組預(yù)測需求度高的相應(yīng)態(tài)勢推送給用戶。
綜上所述,則可以得到基于Doc2Vec和深度神經(jīng)網(wǎng)絡(luò)的推薦算法的算法步驟詳述如下:
Step1輸入用戶—態(tài)勢需求度矩陣;
Step2對態(tài)勢原始數(shù)據(jù)進(jìn)行預(yù)處理,包括數(shù)據(jù)清洗,預(yù)訓(xùn)練等;
Step3利用Doc2Vec方法訓(xùn)練詞向量,并將文本內(nèi)容特征耦合到用戶—態(tài)勢潛在特征中去;
Step4對推薦模型參數(shù)初始化;
Step5利用隨機(jī)梯度下降法對模型進(jìn)行訓(xùn)練,直到模型收斂;
Step7對各態(tài)勢的預(yù)測需求度進(jìn)行排序,將排序高的態(tài)勢推送給用戶。
本文實(shí)驗(yàn)數(shù)據(jù)采用雷達(dá)航跡仿真得到各類情報750 000條,其中用戶定制的情報為1 500條,將數(shù)據(jù)劃分為訓(xùn)練集和測試集。將各類情報數(shù)據(jù)轉(zhuǎn)化成文本類型情報后,首先要對文本進(jìn)行清洗,包括剔除文本中無用的標(biāo)點(diǎn)符號信息;其次需要對文本進(jìn)行分詞及同義詞合并,在分詞的結(jié)果中剔除對語義表達(dá)沒有影響的停用詞;最后訓(xùn)練詞向量,實(shí)現(xiàn)更加精確的詞向量表示。
為評估算法性能,需要設(shè)置相應(yīng)的評價指標(biāo)來衡量算法優(yōu)劣。本文采用均方根誤差、準(zhǔn)確率、召回率和F1這四個指標(biāo),各指標(biāo)詳細(xì)解析參見文獻(xiàn)[15],此處不再贅述。實(shí)驗(yàn)編程語言用Python3.5,采用的機(jī)器學(xué)習(xí)庫包括Numpy、Pandas、Scikit-Learn、Gensim、Jieba和CPU版本的TensorFlow。
在參數(shù)設(shè)置上,最大迭代次數(shù)為40次、批處理參數(shù)為1 000、隱因子個數(shù)為8、正則化參數(shù)為λD=λDNN=0.05、學(xué)習(xí)速率為0.001、網(wǎng)絡(luò)層數(shù)分布為[64,32,16,8,1]。本文算法性能受迭代次數(shù)(epoch)、隱因子個數(shù)(factor)、正則化參數(shù)(regulation)、學(xué)習(xí)率(learningrate)、神經(jīng)網(wǎng)絡(luò)層數(shù)(layer)、推薦數(shù)目(k)等參數(shù)的影響。其它參數(shù)條件不變,來比較分析單一參數(shù)對算法性能的影響。對比實(shí)驗(yàn)的研究分析內(nèi)容具體如下。
(1)對比實(shí)驗(yàn)1。其它參數(shù)不變,不同迭代次數(shù)條件下,對比本文算法(DNN+Doc2Vec)與深度神經(jīng)網(wǎng)絡(luò)推薦算法(DNN)、矩陣分解推薦算法[16](MF)的均方根誤差。實(shí)驗(yàn)結(jié)果如圖3所示。
圖3 3種算法均方根誤差比較
由圖3可知,分析得到的研究結(jié)論可闡釋表述如下:
① 本文算法(DNN+Doc2Vec)均方根誤差隨迭代次數(shù)增加而減少,并且要小于深度神經(jīng)網(wǎng)絡(luò)推薦算法和矩陣分解推薦算法,本文算法在深度神經(jīng)網(wǎng)絡(luò)推薦算法的基礎(chǔ)上,利用Doc2Vec方法學(xué)習(xí)文本內(nèi)容特征,能夠提升模型精度;
② DNN+Doc2Vec算法均方根誤差隨迭代次數(shù)增加而減少,但減小速率變慢,這是因?yàn)榇藭rDNN+Doc2Vec算法訓(xùn)練正逐漸逼近最優(yōu)解,故而算法推薦性能有所提升。
(2)對比實(shí)驗(yàn)2。 其它參數(shù)不變,迭代次數(shù)為30次,不同推送數(shù)目下,本文算法與深度神經(jīng)網(wǎng)絡(luò)推薦算法(DNN)、矩陣分解推薦算法(MF)的準(zhǔn)確率、召回率和F1指標(biāo)比較。實(shí)驗(yàn)結(jié)果如圖4所示。
(a) 準(zhǔn)確率
(b) 召回率
(c) F1
Fig. 4 Comparison of the precision, recall andF1 of the three algorithms
由圖4(a)、(b)、(c)可知,分析得到的研究結(jié)論可闡釋表述如下:
(1)本文算法(DNN+Doc2Vec)與深度神經(jīng)網(wǎng)絡(luò)推薦算法和矩陣分解推薦算法一樣,準(zhǔn)確率均隨推送數(shù)目增大而變小,3種算法的召回率均隨推送數(shù)目增大而變大,3種算法的F1指標(biāo)均隨推送數(shù)目增大而變大;
(2)DNN+Doc2Vec算法與DNN算法、MF算法相比而言,前者的均方根誤差要小于后兩種算法,說明本文算法利用Doc2Vec方法學(xué)習(xí)文本內(nèi)容特征后,算法的推薦準(zhǔn)確性有一定的提升。
綜上所述,深度神經(jīng)網(wǎng)絡(luò)是推薦算法的基礎(chǔ),引入Doc2Vec方法來學(xué)習(xí)態(tài)勢文本內(nèi)容,能夠挖掘出用戶需求背后隱藏的用戶和態(tài)勢更加復(fù)雜的交互關(guān)系,使得態(tài)勢特征表征更加明確,推薦效果得以提升,證明本文算法(DNN+Doc2Vec)確實(shí)能夠提升推薦質(zhì)量。
本文在軍事運(yùn)用背景條件下,提出了一種基于Doc2Vec和深度神經(jīng)網(wǎng)絡(luò)的推薦算法。該算法是在深度神經(jīng)網(wǎng)絡(luò)推薦算法對用戶—交互關(guān)系進(jìn)行建模的基礎(chǔ)上,引入基于Doc2Vec的詞嵌入模型來對文本態(tài)勢實(shí)現(xiàn)建模,以期挖掘到態(tài)勢更多的特征信息,使得用戶需求建模更為準(zhǔn)確。實(shí)驗(yàn)表明,基于Doc2Vec和深度神經(jīng)網(wǎng)絡(luò)的推薦算法與深度神經(jīng)網(wǎng)絡(luò)推薦算法、矩陣分解推薦算法等算法相比,本文算法得到的推薦效果更為優(yōu)異。