陶天一,王清欽,付聿煒,熊 贇,俞 楓,苑 博
(1.復旦大學計算機科學技術學院上海市數據科學重點實驗室,上海 201203;2.國泰君安證券股份有限公司,上海 201201)
在移動互聯網時代,人們的閱讀需求呈現出碎片化、多場景的特征,個性化新聞資訊推薦逐漸成為移動資訊行業的主流。面對信息爆炸的沖擊,人們越來越習慣于淺閱讀的閱讀模式,即讀者沒有明確的閱讀目標,更傾向于被動接受資訊推送。這些資訊對于整個讀者群體而言是最為熱門的,而對于讀者個體而言并不總是能對應到他的興趣,這也使得讀者個體的閱讀體驗碎片化。因此,研究人員提出個性化新聞推薦算法[1-3],提供“千人千面”的資訊,有效解決用戶碎片化閱讀的問題。
知識圖譜是由Google 公司于2012 年提出的一個具有語義處理能力與開放互聯能力的知識庫,以“實體-關系-實體”三元組(h,r,t)的形式表示事物間的關系,其中h、r和t分別代表一個三元組的頭實體、關系和尾實體。研究人員發現,結合實體間的關系信息學習到的表示特征,在搜索引擎[4]、推薦系統[1]、關系挖掘[5]等問題中都取得了良好的效果。因此,知識表示學習得到了人們的廣泛關注[1,4-6],其中,基于翻譯機制的知識表示學習TransX 系列模型成為具有代表性的模型[7-9]。
為了將新聞處理為結合文本信息與金融行業知識圖譜實體信息的向量表示,研究人員引入知識圖譜與自然語言處理技術。一方面,在金融知識圖譜的輔助下,從新聞文本識別出一系列實體,可以通過知識表示學習得到低維空間的向量表示。另一方面,將新聞文本本身的嵌入表示、新聞中識別到的實體表示、以及新聞中識別到的實體的上下文表示進行對齊,并利用基于詞的卷積神經網絡[10]、層次注意力機制[11-12]等方法,最終處理為目標向量表示。復雜類型的用戶行為序列可以用來建模用戶特征[13],并進一步被用于優化推薦算法的性能[14]。
目前已有研究人員提出結合知識圖譜的推薦算法。文獻[15]通過搜索數據和百科數據構建一個求職技能圖譜,并提出一個基于知識圖譜的面試問題推薦系統。文獻[16-18]將用戶和物品看作圖中的節點來進行特征的學習,并最終用于推薦任務。但是,上述方法不能很好地適應資訊推薦場景下常見的冷啟動問題等。
本文提出一種基于知識圖譜的金融新聞個性化推薦算法。利用基于知識圖譜的層次卷積神經網絡提取新聞特征,并通過用戶交易行為描繪用戶特征,最終結合兩方面特征,實現個性化金融新聞推薦。
假設用戶u的歷史新聞點擊行為記為,其中,是用戶u點擊的第i條新聞,Nu是用戶u點擊過的新聞數目。對于一條新聞,通過分詞、去除停用詞等處理轉成一個詞序列t=[w1,w2,…],而每個詞wj可能對應知識圖譜中的某一個實體e。例如句子“交通銀行2018年第一季度利潤增速放緩總體形勢保持上升趨勢”中的“交通銀行”對應“中國交通銀行”這一實體,對應在知識圖譜中有“交通銀行-所屬行業-銀行業”、“交通銀行-股票概念-大藍籌”和“交通銀行-所屬指數-滬深300”等關系。此外,結合用戶的歷史新聞點擊行為、交易行為(如用戶掛單和成交記錄、用戶自選股票、用戶持倉股票)等數據,可以為每個用戶生成一個特征表示向量。最終通過對以上信息的層次化建模,預測用戶對于給定的未點擊過的新聞及點擊閱讀的概率大小。
本節主要介紹KHA-CNN 算法模型。針對金融資訊即時性強、待推薦資訊多為冷啟動資訊(即被閱讀次數較少)的特點,在設計時摒棄了采用基于協同過濾的思路,使用基于內容的方法,從物品和用戶兩個角度分別去設計和建模。由于金融資訊中含有大量領域實體,結合金融領域知識圖譜的知識提取能夠使得物品側的建模更為準確。此外,金融領域中存在大量用戶和股票間的行為,可以將其用于用戶側的建模中。
KHA-CNN模型由左、右兩部分組成,如圖1所示。

圖1 KHA-CNN 模型整體框架Fig.1 Overall framework of KHA-CNN model
如圖1左側所示,對于一篇新聞,首先通過預訓練的詞向量得到其詞嵌入表示,然后根據知識圖譜提取其實體信息和實體上下文信息,隨后采用卷積神經網絡學習新聞中不同實體之間的關系作為最后新聞特征表示的知識特征,并且采用注意力模塊關注重要的單詞。如圖1右側所示,從歷史新聞點擊行為和交易行為(具體為持倉股票信息和自選股票信息兩類)挖掘用戶潛在的興趣點,得到用戶行為特征,最后利用新聞文本特征和用戶行為特征,學習并預測用戶對新聞的點擊概率。
對于每篇新聞首先根據金融知識圖譜G 識別新聞中出現的各類實體,根據不同的關系ri構造其相關的實體e對應的上下文實體集合context(e):

以“格力電器”為例,在知識圖譜G 中考察與它有關的節點和關系:如“格力電器-所屬概念-大消費”、“格力電器-上游供應商-信力科技”等關系,構造“格力電器”在G 中對應的上下文實體集合。“格力電器”在“上游供應商”關系下對應的上下文實體集合就是{“華英包裝”、“信力科技”、“天意有福”}。對實體e在關系ri下對應的上下文實體集合context(e)中的所有實體特征向量取平均,作為其在這種關系下的特征表示:

其中,ei是context(e)集合中的成員ei根據知識表示學習TransX 模型得到的相應實體特征向量。
TransX 是知識表示學習領域的代表性模型,包括TansR[5]、TransE[6]、TransH[7]和TransD[8]等。在TranX 模型中,對于每一個三元組(h,r,t)都有一組與之對應的d維向量表示(h,r,t?Rd),且有近似關系h+r≈t成立[6]。定義三元組的損失函數為fr(h,t),正確的三元組關系對應的損失應較小[6]:

考慮到現實中頭尾實體存在差異,在模型中采用TransD[8]模型分別將頭實體和尾實體投影到兩個獨立的向量空間,然后再考慮三元組的損失函數。
為使模型能更準確地區分正確的三元組和錯誤的三元組,在訓練時都采用帶間距的損失函數[6-8]:

其中,γ是設定的間距參數,Δ、Δ′分別是正確的三元組(即存在于數據集中的三元組)的集合和錯誤的三元組(即數據集中不存在的三元組)的集合。
對于一個由n個詞組成的文本,首先通過預訓練好的d維詞向量,把n個詞橫向拼接起來得到文本的矩 陣表示x1:n?Rd×n:

其中,xi?Rn表示第i個詞xi對應的d維詞向量表示,⊕表示向量的橫向拼接操作。在此基礎上定義一個窗口大小為h的卷積核w?Rd×h操作,通過學習h個相鄰詞的詞向量得到輸入文本的新特征表示[10]。例如通過卷積核w將xi:i+h-1這h個詞對應的矩陣表示得到卷積操作后的特征ci:

其中,b?R 是偏置量,f是一個非線性激活函數,⊙是逐元素積。一個卷積核會作用在所有可能的窗口序列上{x1:h,x2:h+1,…,xn-h+1:n}來產生新的特征[10]:

其中,[˙]表示由若干標量拼接而成的向量,進行池化操作[19]得到最大特征=max{c}作為這個卷積核的輸出。
如圖1 左側所示的新聞標題“交通銀行2018 年第一季度利潤增速放緩總體形勢保持上升趨勢”,進行分詞后查找預訓練詞向量得到詞嵌入表示矩陣。分別用3 個窗口為3 的卷積核和4 個窗口為4 的卷積核在輸入的詞嵌入表示矩陣上進行卷積操作,通過池化得到7 維的向量表示,最后根據全連接層得到輸入句子相應的新特征表示。
用w1:n=[w1,w2,…,wn]表示輸入的原始新聞文本,w1:n?Rd×n=w1⊕w2⊕…⊕wn為相應的詞嵌入表示矩陣。經過2.2 節中所描述的知識提取操作后,在知識圖譜G 中有對應實體的詞wi對應著一個實體表示ei和一個實體上下文表示,而對于知識圖譜G 中沒出現的實體用零向量補全。此時,類似w1:n這一詞嵌入表示矩陣,構造兩個矩陣,即實體表示矩陣e1:n和實體上下文表示矩陣

為利用金融知識圖譜中實體的各種關系信息,首先對實體表示、實體上下文表示做一個線性變換g:g(e)=Me。如圖1 左側所示,最終組成的新聞特征表示為一個具有3 個維度的張量W?R3×d×n:

與文獻[10]卷積核直接作用在詞嵌入表示上不同,KHA-CNN 同時將卷積核作用在實體表示以及實體上下文表示上,即卷積核k除了對應的d維寬度、h維長度外,還具有一個3 維的深度,即k?R3×d×h。接著在卷積核kj的作用下進行卷積操作,得到每次卷積結果為:

通過一個時間上的最大池化,可以得到該卷積核作用下的最終特征:

在m個卷積核的作用下,最終可以得到這條新聞的基于知識的特征表示:

新聞標題是對新聞文本的概括性描述,對于用戶是否點擊該條新聞至關重要,為有效地學習標題的特征,本文采用詞級注意力機制[20]對新聞特征進行處理。假設輸入的新聞t的標題w1:n包括n個單詞:

首先使用一個雙向LSTM[21]作為輸入詞的編碼器,然后輸入詞對應的詞向量,得到編碼器輸出的隱狀態表示:

其中,‖表示兩個向量拼接為一個向量。
得到每個詞的隱狀態后,根據上文所述的詞級注意力機制聚合標題中每個單詞的特征,得到標題的整體加權特征表示st:

其中,uw是注意力機制中的權重向量,Ww是注意力機制中的線性變換參數矩陣,bw是該線性變換的偏置量,這3 個參數是模型中可學習的參數。
收集用戶的“歷史新聞點擊數據”、“股票持倉數據”和“用戶自選股票”作為用戶行為數據。假設用戶u擁有N只持倉股票信息,擁有M只自選股票信息,K條歷史新聞點擊數據,可分別表示成:


用戶的個性化特征(F)表示成“股票持倉特征”和“歷史新聞點擊特征”的平均值:

在用戶持倉股票和用戶自選股票特征中引入金融知識圖譜:將股票作為每一個目標實體節點,把金融知識圖譜中和目標節點相關的點(K-階鄰居)都作為它的上下文。如上文基于知識的卷積神經網絡所述,學習融合目標節點相關鄰居的特征信息來豐富目標節點特征:

本節通過實驗驗證KHA-CNN 模型的有效性,分析討論實驗中的場景數據、相關的參數設置。
KHA-CNN 使用的數據主要有金融知識圖譜數據和用戶行為相關的數據。金融知識圖譜數據由國泰君安公司提供,而用戶行為相關的數據來自于國泰君安的兼具資訊和投資功能的手機軟件“君弘APP”,分為新聞數據、用戶數據和埋點數據3 個方面,時間區間為2018年11月6日—2018年12月13日。其中,11 月6 日—12 月6 日數據作為訓練數據,12 月7 日—12 月13 日的數據作為測試數據。基本信息如表1 所示。

表1 測試數據基本信息Table 1 Basic information of test data
通過新聞數據分析獲取到新聞數據的ID、標題、摘要、文本內容及曝光時間等基本信息,新聞數據格式如圖2所示。

圖2 新聞數據格式示意圖Fig.2 Schematic diagram of news data format
“時效性”是金融領域新聞的重要特征之一,用戶一般只關心最新時刻發生的事件。如圖3 所示,把新聞第一次與最后一次被點擊的時間間隔作為新聞的生存周期,統計所有新聞生存周期。可以看出,多數新聞生命周期只有1 天,即只在新聞發布的當天被用戶閱讀,少量新聞生存周期為2 天~5 天,而生存周期大于5 天的新聞極少。

圖3 新聞生存周期統計Fig.3 Statistics of news life cycle
用戶新聞閱讀行為來自APP 中新聞資訊頁面埋點數據。模型所關心的主要為資訊曝光和資訊閱讀兩種埋點數據。資訊曝光表示資訊被推送到列表中,資訊閱讀表示用戶點擊并閱讀了該資訊。在模型訓練時,曝光且閱讀的資訊被認為是正樣本,而曝光但未被閱讀的資訊則被用作負樣本。類似地,測試集中用于預測的正例也是曝光且閱讀的資訊。由于埋點數據中90%以上的數據都是資訊曝光數據,遠超資訊閱讀的數量,為維持正負樣本的平衡性,對于每個正樣本,隨機采樣1 個負樣本構造數據集。
用戶數據分析主要存在兩類用戶,即手機注冊用戶和資金賬戶用戶,其中資金賬戶用戶除新聞閱讀行為外,還具有自選股票和持倉股票的數據。
訓練集存在新聞閱讀行為的有43 608 個資金賬戶用戶和24 517 個手機注冊用戶,資金賬戶閱讀數為3 983 447 個,手機注冊用戶交互閱讀數為982 170 個,大部分新聞閱讀交互記錄來自于手機注冊用戶。
本文采用的對比算法主要有如下4 種:
1)隨機森林(Random Forest)[22]算法。該算法是一種基于分類樹的集成方法,被廣泛地應用于廣告點擊率(Click-Through Rate,CTR)預測及推薦中。在3.2 節、3.4 節數據分析的基礎上,選擇新聞ID、新聞標題、新聞首發時間、新聞曝光時間、新聞近1 天~2 天閱讀數、用戶ID、用戶類型、用戶近1 天~3 天閱讀數、用戶自選股特征和用戶持倉股特征等作為模型的輸入。
2)DKN[1]算法。該算法采用了知識圖譜和CNN 來建模新聞特征,但沒有用戶行為特征。
3)ATRank-like 算法。該算法使用了用戶行為特征,但未使用知識圖譜,是針對金融新聞對ATRank 算法[13]的一個變種版本。因為新聞生存周期較短,用戶較少重復點擊同一新聞,所以將點擊行為序列看作集合,不采用原算法中的時序編碼。針對被點擊新聞本身的特征,還增加了基于詞嵌入表示的卷積神經網絡以得到點擊的新聞的特征表示。
4)KHA-CNN 算法。本文提出算法既使用了知識圖譜,又考慮了用戶的行為特征。
不同算法的F1 及AUC 值如表2 所示。

表2 KHA-CNN 及基準算法實驗結果Table 2 Experimental results of KHA-CNN and benchmark algorithms
從表2 可以看出:
1)與Random Forest 算法相比,KHA-CNN 算法在F1 值和AUC 兩個評價指標上都取得了更好的結果,且各變種算法也均能得到比Random Forest 算法更優的結果。這表明KHA-CNN 算法基于金融知識圖譜,同時考慮了新聞的文本特征和用戶行為特征,可以有效提升個性化推薦的性能。
2)與DKN 算法相比,KHA-CNN 算法取得了較優的結果,這表明基于用戶行為數據用戶畫像能夠提升新聞個性化推薦的性能。
3)與ATRank-like 算法相比,KHA-CNN 算法表現更好,進一步表明知識圖譜在個性化推薦中的重要性。
本文通過對比不同TransX 算法對KHA-CNN 性能的影響,具體使用的TranX 算法有TransE、TransH、TransR 與TransD 4 種。本文默認采用的TransX 算法為TransD,實驗結果如表3 所示。

表3 不同TransX 算法識別實體時的實驗結果Table 3 Experimental results when different TransX algorithms recognize entities
從表3 可以看出,算法基于TransD 的嵌入取得了最好的實驗結果,因為該算法能夠更好地捕獲圖譜中實體與實體間、實體與關系間的非線性關聯。
本文主要從CNN 維度和注意力機制兩個方面進行實驗。
1)CNN 維度的影響分析
考慮不同CNN 維度時的影響,主要包括:
(1)KHA-CNN-w/o-context-emb.,采用詞語嵌入表示和實體嵌入表示,不采用實體上下文表示。
(2)KHA-CNN-w/o-entity-emb.,采用詞語嵌入表示和實體上下文表示,不采用實體嵌入表示。在默認的KHA-CNN 中,詞語嵌入表示、實體嵌入表示和實體上下文表示都被采用,實驗結果如表4 所示。

表4 不同CNN 維度識別實體時的實驗結果Table 4 Experimental results when different CNN dimensions recognize entities
從表4 可以看出,在不使用實體上下文表示和不使用實體嵌入表示時,與KHA-CNN 相比,F1 值分別下降了1.8 個百分點、3.8 個百分點,這表明了在KHA-CNN 算法中使用基于知識的卷積神經網絡引入知識圖譜的有效性。
2)詞級注意力機制的影響分析
不采用詞級注意力機制時的變種算法為KHA-CNNw/o-attn.,實驗結果如表5 所示。

表5 KHA-CNN 與KHA-CNN-w/o-attn.算法的實驗結果Table 5 Experimental results of KHA-CNN and KHA-CNN-w/o-attn.algorithms
從表5 可以看出,與KHA-CNN-w/o-attn.算法相比,詞級注意力機制的F1 值和AUC 值分別提高1.1 個百分點和0.9 個百分點。
本文提出一種基于知識圖譜的金融新聞推薦算法KHA-CNN,通過知識表示學習得到知識圖譜中實體的向量表示,并學習新聞上下文中實體的關系特征,使用層次注意力模型學習新聞標題中重要的上下文信息,同時通過用戶的行為特征實現個性化的新聞推薦。實驗結果表明,KHA-CNN 在F1 和AUC 這兩項指標上都有較好的性能表現。