「直男變暖男」—— 當推薦系統遇上知識圖譜

  • 2019 年 10 月 8 日
  • 筆記

本文轉載自文旅記

作為一個文科生,深知文化娛樂、旅遊休閑、市場營銷等領域正在迎接推薦演算法的洗禮,傳統的分析、內容生產,勢必會發生改變。因此筆者一直關注技術領域,斥巨資(狗頭保命

)先後參加了python機器學習、知識圖譜的課程學習。入門路漫漫,血淚有誰知,吾將上下而求索。本文只是作為探索之路的一個開頭,與感興趣的朋友共同努力,推動文科生走出技術白痴的困境。

本文章內容來源為集智學園孫星愷課程《系統講解知識圖譜——從建模到應用》課程,CDA機器學習工程師課程相關筆記整理,課程版權歸原作者所有。


一、被人嘲笑的推薦系統

當女孩子說「我肚子疼」,「鋼鐵直男」可能會告訴女孩子說「多喝熱水」。如今的推薦系統,可能也像「鋼鐵直男」一樣遭到一些人吐槽。當我們打開音樂軟體,手賤點擊了一首「改革春風吹滿地」的惡搞歌曲之後,第二天就會收到「江南皮革廠倒閉了」的推送;更哭笑不得的是,在「猜你喜歡」中,我們可能會看到「Are U OK」「Shnappi」等搞笑歌曲。不禁讓人感嘆,明明我們還喜歡其他類型的音樂,可是為什麼只推送這一種奇葩音樂呢?這看似人工智慧的音樂軟體,怎麼就「宛如人工智障」了呢?

推薦系統是一項工程技術解決方案,本質上是銷售系統的一部分,它代替用戶評估其從未看過、接觸過和使用過的物品。從「沒得選」「人幫選」再到「演算法選」,實現了初步脫離面對面的產品推薦模式,通過用戶的註冊資訊、歷史行為、社交關係、興趣點、所處上下文環境、地理位置等各種資訊,加上演算法,找出用戶最可能喜歡的東西推薦給用戶,現在很多電子商務網站都有這個應用。

目前用的比較多、比較成熟的推薦演算法是協同過濾 (Collaborative Filtering,簡稱 CF)推薦演算法,CF的基本思想是根據用戶之前的喜好以及其他興趣相近的用戶的選擇來給用戶推薦物品。

如圖所示,在CF中,用m×n的矩陣表示用戶對物品的喜好情況,一般用打分表示用戶對物品的喜好程度,分數越高表示越喜歡這個物品,0表示沒有買過該物品。圖中行表示一個用戶,列表示一個物品,Uij表示用戶i對物品j的打分情況。CF分為兩個過程,一個為預測過程,另一個為推薦過程。預測過程是預測用戶對沒有購買過的物品的可能打分值,推薦是根據預測階段的結果推薦用戶最可能喜歡的一個或Top-N個物品。

要將推薦系統落地到業務上需要大量的工程開發,涉及到日誌收集,ETL,分散式計算,特徵工程,推薦演算法建模,數據存儲,提供介面服務,UI展示與交互,推薦效果評估等各個方面,推薦系統是一項龐大而複雜的體系工程。過程中,會用到數據挖掘、機器學習、深度學習等技術。在用戶畫像、物品畫像、匹配模型等方面有廣泛的用途。

然而,現在不管是基於特徵的推薦,還是基於用戶或者物品的協同過濾推薦,都遇到了一些瓶頸:「資訊繭房」、稀疏性、冷啟動、多樣性、可解釋性等問題。

都說直男不懂女孩潛台詞,其實可能是女孩子根本沒有給直男了解她更多愛好、更多行為的機會。但話說回來,女孩子的隱私是隨隨便便就能打探到的嗎?問她「幹嘛呢」,更是大忌,跟你非親非故,為啥要天天向你報備呢?推薦系統同樣如此,如果我們不注意方法,很容易被用戶「開除球籍」。

這個時候,知識圖譜就顯示出了優勢。

二、當推薦系統遇上知識圖譜

知識圖譜能夠給推薦系統帶來三個好處:

一是提高精準度,知識圖譜為物品引入了更多的語義關係,就可以深層次地發現用戶興趣。

二是增加多樣性,知識圖譜提供了不同的關係連接種類,有利於推薦結果的發散,避免推薦結果越來越局限於單一類型。

三是容易解釋,知識圖譜可以連接用戶的興趣歷史和推薦結果,提高用戶對推薦結果的滿意度和接受度,增強用戶對推薦系統的的信任。

那麼什麼是知識圖譜呢?

知識圖譜,從本質上說,是一種大規模的語義網路。富含實體(entity)、概念(concepts)及其之間的各種語義關係(semantic relationships)。

作為一種語義網路,是大規模時代知識表示的重要方式之一;作為一種技術體系,是大數據時代知識工程的代表性進展。

構建知識圖譜的目標,從多源數據中抽取出Schema中定義的實體與關係數據,形成一個多元知識節點互聯的資料庫,進而支撐知識檢索、知識推薦、知識問答、知識分析等知識服務。

其中,知識圖譜的存儲,就是設計一個合理的存儲方案實現對知識(知識元與關係)的持久化存儲並提供高效的檢索。

而知識推理,從知識庫中已有的實體關係數據出發,進行電腦推理,建立實體鏈的新關聯,從而拓展和豐富知識網路。主要用於知識補全、關係預測、知識問答等,它是基於符號驗算的推理+基於數值計算的推理。

知識圖譜的應用場景有很多:結合場景、數據、技術,我們可以在搜索、推薦、問答、解釋、決策中使用到它。

三、知識圖譜試圖解決推薦系統哪些問題?

一是數據稀疏性和冷啟動問題。一個常見思路是,在推薦演算法中額外引入一些輔助資訊(side information)作為輸入。輔助資訊,可以豐富對用戶和物品的描述、增強推薦演算法的挖掘能力,從而而有效地彌補交互資訊的稀疏或缺失。

常見的輔助資訊包括:

1、社交網路(social networks)

2、用戶、物品屬性(attributes)

3、影像、影片、音頻、文本等多媒體資訊(multimedia)

4、上下文

與此伴生的,是如何根據具體推薦場景的特點將各種輔助資訊有效地融入推薦演算法,這也一直是推薦系統研究領域的熱點和難點。

二是可解釋性問題。可解釋推薦是在給出推薦結果的同時,給出對結果的支援論據(即解釋)。也就是說,選擇這個演算法模型,效果好在哪裡呢?

如果需要更細地進行定義,就要考慮具體應用及目標:

如果更側重模型可解釋性(模型導向),就要求論據能夠幫助用戶更好地理解模型行為;

如果更注重解釋品質中的說服力,則要求論據能夠幫助用戶更好地做決定。

1、在建模之前的可解釋性方法。

2、建立本身具備可解釋性的模型。

3、在建模之後使用可解釋性方法對模型做出解釋。

總體而言,知識圖譜包含了實體之間豐富的語義關聯,為推薦系統提供潛在的輔助資訊來源,可更好地進行用戶畫像和物品畫像,描繪他們的關係網路。從而使得推薦結果更精確,推薦內容更多樣,推薦同時還能給出一些合理解釋。

四、主要實現方法

基於知識圖譜的推薦系統,有很多種實現方法,在本文中,主要介紹5種。

1、異構資訊網路

異構資訊網路作為一種新的建模方式,包含更多的資訊以及整合豐富的語義關係,成為網路數據挖掘的重要工具,各類任務如相似度度量,分類、排序、推薦等都已得到廣泛應用,它有四個特點:

(1)基於路徑的推薦方法MetaGraph:將知識圖譜視為一個異構的資訊網路HIN,然後構造物品之間的基於meta-path或者meta-graph的特徵(兩個實體的一條特定的路徑)。

(2)利用了知識圖譜的網路結構,由不同類型的元路徑相連的兩個物品都具有一定的相似度

(3)手動涉及meta-path或者meta-graph

(4)無法在實體不屬於同一個領域的場景中應用

2、DKN(DeepKnowleage-Aware Network)

這種方法,主要被用於新聞內容的推薦演算法中。原因有三個:

(1)新聞標題和正文中存在大量的實體,

(2)實體間的語義關係可以有效地擴展用戶興趣

(3)實體間的語義關係難以被傳統方法(話題模型、詞向量方法)發掘

DKN方法包括三個方面,

一是知識提取(Knowledge Distillation),包括標題word embedding,標題entity embedding,上下文實體特徵contextual entity embedding;

二是新聞特徵提取CNN (Knowledge Aware-CNN深度卷積網路);

三是基於注意力機制的用戶興趣預測。

總體說來,DKN是結合了用戶嵌入、注意力網路、知識卷積網路三者的整體點擊率預測系統。然而,它並不是一個端到端的方式。

此時,一個基於協同過濾和知識圖譜特徵學習的推薦系統模型就出現了。

3、基於協同過濾和知識圖譜特徵學習的推薦系統模型

這種模型將推薦演算法和知識圖譜特徵學習的目標融合,並在一個端到端的優化目標中進行訓練。在推薦系統中引入了結構資訊、文本數據、影像數據等知識庫中的資訊,來提升推薦系統的品質。通過訓練一個模型,給定具有結構知識、文本及圖片的知識庫和用戶的的隱式回饋,返回給用戶最有可能感興趣的物品列表。

基於用戶-物品交互記錄生成用戶表示向量,各種知識綜合成物品的表示向量,最終,用戶向量和物品向量都輸入神經網路,依據網路的輸出值來判斷物品是否值得推薦給用戶,返回每一個用戶最有可能感興趣的item列表。

由於協同過濾演算法比較成熟,這種融合模型目前也是應用相對廣泛的一種模型。

4、知識圖譜增強推薦能力的多任務特徵學習

推薦系統和知識圖譜特徵學習2個任務之間存在相關性,將推薦系統和知識圖譜特徵學習視為兩個分離但是相關的任務,採用多任務學習框架。

它的好處在於:資訊互補、擺脫局部極小值、防止推薦系統過擬合、提高推薦系統的泛化能力。

由於推薦系統中的物品和知識圖譜中的實體存在重合,所以兩個任務並非相互獨立。交叉特徵共享單元(一個可以讓兩個任務交換資訊的模組)作為兩者的連接紐帶。

推薦部分使用用戶和物品的特徵表示作為輸入,預測的點擊概率作為輸出。

知識圖譜特徵學習部分使用一個三元組的頭結點和關係表示,作為輸入,預測的尾節點表示作為輸出。

5、基於知識圖譜的跨領域推薦(Cross Domain Recommender systems,CDRS)

由於用戶的興趣偏好或物品特徵在領域之間存在一致性/相似性,跨領域推薦系統能夠通過源領域的資訊對目標領域進行輔助推薦,CDRS由三個基本要素構成:領域(domain),用戶-物品重疊場景(user-itemoverlap)和推薦任務(recommendation task)。

CDRS一般有4種實現方法:

(1)基於圖的方法,用於計算源領域和目標領域的用戶與項目之間的關係

(2)基於因式分解的方法,用於提取出源領域和目標領域的用戶和項目之間的通用特徵

(3)基於語義的方法,將源領域的屬性應用到目標領域中,生成知識圖譜

(4)基於標籤的方法,生成涉及領域之間相互關聯的元數據

跨領域推薦的場景一般有三類:

(1)用戶/物品完全重疊,能比較容易地將兩個領域合併成一個領域

(2)用戶/物品部分重疊,重疊的用戶/物品成為新興共享和遷移學習的橋樑

(3)用戶/物品完全不重疊,需要挖掘領域間隱含的共同用戶/物品或其他關係進行遷移學習。

利用知識圖譜發現不同實體間的關聯路徑,並計算相關度。基於迭代的權重傳播(類似於PageRank)可跳出頭尾實體節點的相關程度。

五、總結

我們需要清醒的看到,對物品知識的獲取,需要人工構建知識,對長尾實體的覆蓋有限;用戶知識的獲取,系統需要用戶輸入資訊,甚至要反覆交互,體驗感差。

不管什麼工具或者是什麼方法,肯定是以應用需求為導向,從常見簡單應用場景進行嘗試,從「小場景」入手,對本領域業務目標有一定認知,定義好場景與問題邊界,相信在知識圖譜的助力下,「直男」推薦系統以後能夠更懂人性,更「暖男」,有更好的應用前景。