《DKN: Deep Knowledge-Aware Network for News Recommendation》知識圖譜與推薦系統結合之DKN

轉自:https://cloud.tencent.com/developer/article/1095691

【導讀】傳統的新聞推薦算法僅僅從語義層對新聞進行表示學習,而忽略了新聞本身包含的知識層面的信息。本文將知識圖譜實體嵌入與神經網絡相結合,將新聞的語義表示和知識表示融合形成新的embedding表示,以此來進行用戶新聞推薦。這種方法考慮了不同層面上的信息,實驗證明比傳統的方法效果好。

▌摘要



網絡新聞推薦系統旨在解決新聞信息爆炸的問題,爲用戶提供個性化的推薦服務。一般來說,新聞語言是高度濃縮的,包含了很多知識實體和常識。然而,現有的方法很少利用這些外部知識,也無法充分發現新聞之間潛在的知識層面(knowledge level)的聯繫。因此,對用戶的推薦結果僅限於簡單的模式,不能合理地擴展。爲了解決上述問題,本文提出了一種將知識圖譜表示引入到新聞推薦中的深度知識感知網絡(deep knowledge-aware network ,DKN)中。

DKN是一個基於內容的深度推薦框架,用於點擊率預測。DKN的關鍵部分是一個多通道和單詞-實體對齊的知識感知卷積神經網絡(KCNN),它融合了新聞的語義層面和知識層面的表示。KCNN將單詞和實體視爲多個通道,並在卷積過程中顯式地保持它們之間的對齊關係。此外,爲了解決用戶不同興趣的問題,作者還在DKN中設計了一個注意力模塊,以便動態地聚合當前候選對象的用戶歷史記錄。通過在一個真實的在線新聞平臺上進行大量的實驗,結果表示,DKN模型的效果超過了現有的state-of-art模型。

▌簡介



隨着萬維網的發展,人們的新聞閱讀習慣逐漸從傳統的報紙、電視等媒介轉移到互聯網上。在線新聞網站,如Google News和Bing News,從各種來源收集新聞,爲讀者提供新聞的總覽。網絡新聞平臺的一個最大的問題是,文章的數量可能會讓用戶望而卻步。各類新聞平臺都存在信息過載的問題,爲了減輕信息過載的影響,關鍵是要幫助用戶確定他們的閱讀興趣,並提出個性化推薦。

但如今新聞推薦面臨三個重要挑戰:

1)與電影、餐廳推薦不同,新聞文章具有高度的時效性,相關性在短時間內很快就會失效。過時的新聞經常被更新的新聞所取代,這使得傳統的基於ID的方法,比如協同過濾(CF)會因此失效。

2)人們在新聞閱讀中對話題敏感,因爲他們通常對多個特定的新聞類別感興趣。如何根據當前候選新聞多樣化的閱讀歷史動態測量用戶的興趣,是新聞推薦系統的關鍵。

3)新聞語言通常是高度濃縮的,由大量的知識實體和共識組成。例如,如圖1所示,一位用戶點擊一條標題爲“Boris Johnson Has Warned Donald Trump To Stick To The Iran Nuclear Deal”的新聞,該新聞包含四個知識實體:“Boris Johnson”, “Donald Trump”, “Iran” 和 “Nuclear”。 事實上,用戶也可能對另一條標題爲“North Korean EMP Atack Would Cause Mass U.S. Starvation, Says Congressional Report”的新聞感興趣,因爲它與以往的語境知識在常識推理方面有着緊密的聯繫。

然而,傳統的語義模型或主題模型只能根據詞的共現或聚類結構來判斷它們之間的關聯性,而很難發現它們之間潛在的知識層次的聯繫。因此,用戶的閱讀模式將被縮小到一個有限的範圍,不能在現有推薦方法的基礎上進行合理的擴展。

爲了解決上述問題,作者將知識圖譜引入新聞推薦系統中,提出了DKN模型。DKN是一種基於內容的點擊率預測模型,它以一條候選新聞和一個用戶的點擊歷史爲輸入,輸出用戶點擊新聞的概率。

具體而言,對於輸入新聞,作者通過將新聞內容中的每一個詞與知識圖中的相關實體相關聯來豐富其信息,還搜索並使用每個實體的上下文實體集(即知識圖中的近鄰)來提供更多的互補和可區分的信息。然後,作者設計了DKN中的一個關鍵部分,即知識感知卷積神經網絡(KCNN),將新聞的詞級表示和知識級表示融合起來,生成一個知識感知嵌入向量。與現有工作不同的之處在於:

1)多通道。將新聞的詞嵌入、實體嵌入和上下文實體嵌入視爲像彩色圖像一樣的多層通道;

2)單詞-實體對齊。因爲它將一個詞及其相關實體在多個通道中對齊,並應用一個轉換函數來消除單詞嵌入和實體嵌入空間的異構性。

圖1. 通過知識實體連接的兩條新聞圖解

▌準備工作



  • 知識圖譜嵌入

一個典型的知識圖譜由數以百萬計的實體-關係-實體三元組(h,r,t)組成,其中h、r和t分別表示三元組的頭、關係和尾。給定知識圖譜中的所有三元組,知識圖譜嵌入的目標是學習每個實體和關係的低維表示向量,以保存原始知識圖的結構信息。近年來,基於翻譯的知識圖嵌入方法以其簡潔的模型和優越的性能受到了廣泛的關注。簡要回顧幾種方法:

1)TransE:

假設h, r, t分別是head, relation, tail對應的向量,如果(h,r,t)存在三元組關係,則假定

。TransE評分函數爲:

,評分函數越小,則網絡中h,t的三元組關係((h,r,t))越可靠。

2)TransH

通過將實體嵌入到關係超平面中,允許實體在不同的關係中有不同的表示。評分函數爲:

,其中

是h, t 映射到相同超平面

以後的向量,

3)TransR

爲每個關係r引入一個投影矩陣Mr,將實體嵌入到相應的關係空間。評分函數爲:

,其中

4)TransD

將transr中的投影矩陣替換爲實體關係對的兩個投影向量的乘積:

,其中

,這裏的

是實體及關係的另一組向量表示,I是單位矩陣。

  • CNN句子特徵提取

傳統的方法通常使用詞袋(BOW)技術來表示句子,即以字數統計作爲句子的特徵。然而,基於BOW的方法忽略了句子中的語序,容易產生稀疏性問題,導致泛化性能差。一種更有效的建模句子的方法是將給定語料庫中的每個句子表示爲分佈式低維向量。最近,研究人員提出了許多基於CNN的句子表示學習模型。本文作者利用了一種經典的CNN結構,Kim CNN,來提取句子特徵表示。

圖2顯示了Kim CNN的架構。用句子所包含詞的詞向量

組成的二維矩陣作爲句子的原始輸入,特徵ci經過一層卷積運算

,其中h是一個卷積濾波器。在將濾波器應用到字嵌入矩陣中的每個可能位置之後,就可以得到一個特徵映射

。然後,在特徵映射c上使用max-over-time的pooling操作來識別最有意義的特徵

,作者利用了多個濾波器(具有不同的窗口大小)來獲得多個特徵,並將這些特徵連接在一起得到最後的語句表示。

圖2:一種典型的用於句子表示學習的CNN結構

▌方法



一、問題定義

給定用戶i,其歷史行爲是

,其中

是用戶i單擊的第j新聞的標題,

是用戶i單擊的新聞的總數。每個新聞標題t由一系列詞組成,即t=[w1,w2,...],其中每個單詞w可能與知識圖中的一個實體e相關聯。例如,在“Trump praises Las Vegas medical team”的標題中,“trump”與實體“Donald trump”相關聯,而“Las”和“Vegas”則與實體“Las Vegas”相關聯。給定用戶的單擊歷史以及新聞標題中的單詞與知識圖譜中的實體之間的關係,我們要預測的是:對於一個用戶i,是否會點擊他沒有瀏覽過的候選新聞tj。

二、知識感知的深度神經網絡

DKN的框架如圖3所示,DKN以一條候選新聞和一條用戶點擊的新聞作爲輸入,每條新聞都使用一個專門設計的KNCC來處理其標題並生成嵌入向量。通過KNCC,可以得到了一組用戶點擊歷史的嵌入向量,爲了得到用戶關於當前候選新聞的嵌入,作者使用一種基於注意力的方法,自動地將候選新聞匹配到其點擊新聞的每一段,並用不同的權重來聚合用戶的歷史興趣。

圖3. DKN算法框架

  • 知識提取(Knowledge Distillation)

圖4. 知識提取的過程

知識提取的過程如圖4所示,該過程由四個步驟組成:

1)首先,爲了區分新聞內容中的知識實體,作者利用實體鏈接技術來消除文本中提到的歧義,將它們與知識圖中的預定義實體關聯起來;

2)基於這些被識別的實體,構造了一個子圖,並從原始知識圖中提取出它們之間的所有關係鏈接。之後,將知識子圖擴展到所有的實體中。注意,被識別的實體之間的關係可能很稀疏,而且缺乏多樣性。

3)構建好知識子圖以後,可以利用前文所述多種知識圖譜嵌入方法,如TransH, TansR,TransD來學習實體的向量表示;

4)將學到的實體表示作爲KCNN的輸入。

雖然最目前的知識圖譜嵌入方法一般可以保留原圖中的結構信息,但是在後續的推薦中使用單個實體的學習嵌入信息仍然是有限的。爲了幫助識別實體在知識圖中的位置,作者爲每個實體提取額外的上下文信息。在知識圖中,實體e的“上下文”被看作是其近鄰的集合:

其中,r是關係,G是構建的知識圖譜子圖。由於上下文實體在語義和邏輯上通常與當前實體密切相關,上下文的使用可以提供更多的補充信息,並有助於提高實體的可識別性。圖5展示了一個上下文示例。給定實體e的上下文,上下文嵌入表示由其上下文實體的平均值計算得到:

圖5:知識圖譜中實體的上下文的示例

  • 知識感知的CNN(Knowledge-aware CNN)

通過知識提取後,可以獲得一個單詞w對應的實體向量表示和上下文向量表示。給定上述輸入,組合單詞和相關實體的一個簡單方法是將這些實體視爲“僞詞”,並將它們連接到單詞序列中。比如:

但是,作者認爲這種簡單的連接策略有以下的侷限性:1)連接策略破壞了詞和關聯實體之間的聯繫,並且不知道它們之間的一致性。2)不同的方法學習詞嵌入和實體嵌入,這意味着不適合在單個向量空間中將它們融合在一起。3)級聯策略隱式地強制詞嵌入和實體嵌入具有相同的維數,這在實際設置中可能不是最優的,因爲詞嵌入和實體嵌入的最優維度可能會相互影響。考慮到以上的侷限性,作者提出了一個多通道和詞-實體對齊的KCNN,用於將單詞語義和知識信息結合起來。

KCNN的具體結構如圖3左下角所示,對於每一個新聞標題t,作者利用了兩種的映射方法:(transformed entity embeddings)

和(transformed context embeddings)

,其中g是映射函數,可以是線性的

,也可以是非線性的

。由於轉換函數是連續的,它可以將實體嵌入和上下文嵌入從實體空間映射到單詞空間,同時保持它們的原始空間關係。g(e1:n)和g(e2:n)大小相同,類似於彩色圖像的多通道,因此將三種embedding矩陣對齊疊加可以得到多通道的詞表示W:

獲得了多通道的詞表示W之後,利用形如KCNN中不同窗口大小的濾波器對W進行處理獲取新聞標題的表示:

,其中m是濾波器的個數。

  • 基於注意力的用戶興趣預測

注意力網絡如圖3左上部分所示。給定具有單擊歷史記錄的用戶i,他點擊的新聞的嵌入可以寫成

,具體地,對於用戶i點擊的新聞ti和候選新聞tj,先將它們的嵌入表示連接起來,然後用一個DNNH作爲注意網絡和Softmax函數來計算歸一化的影響力權重:

注意網絡H接收兩個新聞標題的嵌入作爲輸入並輸出影響權重。因此,用戶i相對於候選新聞tj的表達可以計算爲他點擊的新聞標題嵌入表示的加權和。:

。給定用戶i的表示e(i)和候選新聞表示e(tj), 用戶i點擊新聞tj的概率用另外一個DNN來計算:

▌實驗



  • 數據集

本文的數據集來自Bing新聞的服務器日誌。每一段日誌主要包含時間戳、用戶id、新聞url、新聞標題和單擊計數(0表示不點擊,1表示單擊)。作者收集了一個隨機抽樣平衡數據集,從2016年10月16日到2017年6月11日作爲訓練集,從2017年6月12-8月11作爲測試集。此外,作者還搜索了數據集中所有發生的實體以及它們在Microsoft Satori知識圖譜實體,並提取了可信度大於0.8的三元組。新聞數據集和提取的知識圖的基本統計和分佈分別見表1和圖6。

表1. 新聞數據集的基本統計及提取的知識圖譜

圖6. 新聞數據集中統計分佈的圖解和知識圖譜的提取。

  • Baseline方法

1. LibFM

2. KPCNN

3. DSSM

4. DeepWide

5. DeepFM

6. YouTubeNet

7. DMF

  • 評價指標

1. ROC曲線下面積(AUC)

2. F1-score

  • 實驗結果

不同模型的實驗結果對比如表2所示。另外,針對DKN不同的設置,作者也做了對比實驗,見表3。

表2. 不同模型對比

表3. DKN變體的比較

▌實例分析



爲了直觀地展示知識圖和注意力網絡的使用效果,作者隨機抽取了一個用戶,並從訓練集和測試集中提取他的所有日誌(爲了簡單起見,省略了標籤爲0的訓練日誌)。如表4所示,點擊後的新聞清楚地顯示了他的興趣點:1號-3號涉及汽車,第4-6號涉及政治(類別不包含在原始數據集中,是由作者手工標記)。

表4. 隨機抽樣用戶的培訓和測試日誌(省略標籤爲0的培訓日誌)

作者使用全部的訓練數據來訓練DKN的全特徵和沒有實體或上下文嵌入的DKN,然後將該用戶的每一對可能的訓練日誌和測試日誌提供給這兩個經過訓練的模型,並獲得它們的注意網絡的輸出值。結果如圖7所示,較深的藍色表示更大的注意力值。

從圖7(a)中可以觀察到,測試日誌中的第一個標題與訓練日誌中的“Cars”有很高的注意力值,因爲它們有相同的單詞“Tesla”,但是第二個標題的結果不太令人滿意,因爲第二個標題與訓練集中的任何標題,包括第1-3號,沒有明確的詞彙相似性。在測試日誌的第三個標題中,情況類似。相比之下,在圖7(b)中,我們看到注意網絡精確地捕捉了兩個類別“Cars”和“Politics”之間的關聯性。這是因爲在知識圖譜中,“General Motors”和“Ford Inc.”與“Tesla Inc.”和“Elon Musk”分享了大量的上下文。

圖7. 隨機抽樣用戶訓練日誌和測試日誌的注意力可視化

▌總結



本文提出了一種基於知識圖表示的深度知識感知網絡DKN。DKN解決了新聞推薦中的三大挑戰:1)DKN是一種基於內容的深度點擊率預測模型,適用於高度時間敏感的新聞。2)在新聞內容中利用知識實體和常識,設計了DKN中的KCNN模塊,共同學習新聞的語義層和知識層表示。單詞和實體的多通道和對齊使KCNN能夠組合來自異構源的信息,並保持每個單詞不同表達的對應性。3)爲了模擬用戶不同歷史興趣對當前候選新聞的不同影響,DKN使用注意裏模塊動態計算用戶的聚合歷史表示。作者在Bing新聞的一個數據集上進行了大量實驗,結果表明DKN與最好的baseline相比具有更好的表現,知識實體嵌入和注意力模塊也有顯著效果。

原文:https://arxiv.org/pdf/1801.08284v1.pdf
參考:https://blog.csdn.net/u011748542/article/details/80137257
雲社區:https://cloud.tencent.com/developer/article/1095691
代碼:https://github.com.hwwang55/DKN

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