(十四)【RecSys 2016】Personalized Recommendations using Knowledge Graphs: A Probabilistic【看不懂】
題目: Personalized Recommendations using Knowledge Graphs: A Probabilistic Logic Programming Approach(一種概率邏輯編程方法)
論文鏈接:
代碼:
想法
(1)推薦系統就是求出user和item的特征表示,最后通過一個公式來解決預測問題!
(2) wikifier or an entity linker
(3)真的很難理解,后面基本都是原地翻譯的!看不下去,未來再回來看吧
創新點
- 元路徑的數目首先是不需要定的,超參數優化!
- 將外部知識用到ProPPR是首次。
- 這里通過ProPPR根據歷史數據來得到seedset! 之后才用于推薦!!!
ABSTRACT
難點
content-based 和 CF結合是趨勢,最近已經有工作集中到用外在的KGs來補充content-based推薦系統
我們
我們使用多用途的概率邏輯系統(ProPPR)的三種方法來制作基于KG的推薦系統。 模型最簡單EntitySim,僅僅使用了圖的連接; 之后擴展該模型到TypeSim,也用了實體的類型來增強它的泛化能力; 之后,開發一個基于潛在因素模型的圖表,GraphLF。
同時我們也證明了,在解決冷啟動和數據稀疏問題時,KG有很大的優勢,但是有更多的數據時,KG graph反而變的冗余。
數據集: Yelp、MovieLens-100K
Keywords:基于知識圖的推薦; 概率邏輯編程; 基于圖的矩陣分解
1. 介紹
社交方法最適合解決用戶多而項目相對較少的問題,基于內容的最適合解決冷啟動和長尾的設定。 而一個重要的方向就是如何利用外在的知識來提高基于內容的推薦系統。
與基于元路徑來推斷用戶對item的方法不同, 我們的方法將問題表述為一個概率推理和學習任務,提出了三種建議的方法。 而且在其中,許多像特定的元路徑或者是元路徑的長度的工程問題被消除,這樣可以使得系統能夠發現元路徑方法的更多變體。
EntitySim,最簡單的方法,方法是學習用戶在內容上的偏愛,并利用KG的連接結構來做出預測。
TypeSim,在某些情況下,還可以獲得關于內容的類型信息。因此本方法基于EntitySim但是額外的建立了Type流行度和Type相似性模型。 與【27】中相似,【27】也使用類型優化路徑選擇
GraphLF:最復雜的模型提出,是一個潛在的因子分解模型知識圖,和類型無關, 即它不需要鍵入類型KG
除此之外,本論文中用實驗證明,隨著密度的變化,圖連接結構就足夠了,類型圖反而是冗余的。 更大的數據密度下,甚至KG本身就是冗余的。 簡單的方法反而效果很好。
2. Related Work
HeteRec_p提出了KGs來增強推薦系統,從而實現很好的效果。
HyPER系統:最近另一個使用多種信息源的是HyPER系統,里面作者展示了如何推薦使用概率軟邏輯框架。他們創建了規則來模擬CF風格推薦,比如user-based CF中, 梅開三度: 第一度: 使用公式SimilarUsers(u1,u2)∧Rating(ui,i)?Rating(u2,i)SimilarUsers(u_1, u_2)\wedge Rating(u_i, i)\Rightarrow Rating(u_2,i)SimilarUsers(u1?,u2?)∧Rating(ui?,i)?Rating(u2?,i)來推斷,其中$SimilarUsers(u1,u2)SimilarUsers(u_1, u_2)SimilarUsers(u1?,u2?)表示的是u1u_1u1?和u2u_2u2?在kkk-nearest 鄰居算法離線計算下兩人是相似的; 第二度: 如果朋友網絡是可用的,可以利用Friends(u1,u2)∧Rating(ui,i)?Rating(u2,i)Friends(u_1, u_2)\wedge Rating(u_i, i)\Rightarrow Rating(u_2,i)Friends(u1?,u2?)∧Rating(ui?,i)?Rating(u2?,i);梅開三度:如果其它的評分預測算法比如矩陣分解(MF)可用,然后,他們利用這些規則歸納出一個集成推薦程序RatingMF(u,i)?Rating(u,i)Rating_{MF}(u, i)\Rightarrow Rating(u,i)RatingMF?(u,i)?Rating(u,i)和?RatingMF(u,i)??Rating(u,i)\rightharpoondown Rating_{MF}(u, i)\Rightarrow \rightharpoondown Rating(u,i)?RatingMF?(u,i)??Rating(u,i)。 最后,在訓練階段,他們使用PSL框架學習每個規則的權重,該權重隨后用于預測測試集中的評分。
和HyPER系統類似,提出了一個 Markov Logic Networks,在該網絡中,使用貝葉斯網絡來創建一個hybrid推薦器。 而我們則是使用了外部知識后通用概率推理系統。
而在基于KG的方法中,都是添加各種特殊目的或者是特定領域的知識圖, 或者是添加社交網絡,計算最相近的鄰居。 使用他人的評級來推薦自己的。
2.1 HeteRec_p
目的是使用metapaths來找到用戶對沒有評級的items的親和度。首先定義什么是元路徑:
Meta-path:
A是node types,R是關系集合。 之后給定一個meta-path P, 我們使用PathSim的變體—User Preference Diffusion來計算user i和item j在P上的相似度。 所以當給定L條原路徑后,可以生成作者定義的L個user-item矩陣R~(1),R~(2)…R~(L)\tilde{R}^{\left ( 1 \right ) } ,\tilde{R}^{\left ( 2 \right ) } \dots \tilde{R}^{\left ( L \right ) }R~(1),R~(2)…R~(L)! 每一個R~(q)\tilde{R}^{\left ( q \right ) }R~(q)都可以使用使用低秩矩陣逼近技術被近似分解為U~(q)?V~(q)\tilde{U}^{(q)}·\tilde{V}^{(q)}U~(q)?V~(q)。 之后整體模型被表示為r(ui,vj)=∑q∈LθqU^i(q)?V^j(q)r\left(u_{i}, v_{j}\right)=\sum_{q \in L} \theta_{q} \hat{U}_{i}{ }^{(q)} \cdot \hat{V}_{j}^{(q)}r(ui?,vj?)=∑q∈L?θq?U^i?(q)?V^j(q)? ,其中前面的參數是path q的學習權重。
為了個性化推薦,他們會根據用戶的興趣對其進行聚類,之后推薦函數會定義為:
其中,CCC表示用戶的聚類,sim(Ck,ui)sim(C_k, u_i)sim(Ck?,ui?)給出一個相似度評分在user i和kthk^{th}kth聚類之間, 同樣的,前面的參數是學習的權重。
雖然很好,但是它需要很多超參數設定,比如元路徑的數目、cluster的數量還有一個包含了實體和連接類型的豐富KG。
3. PROPOSED METHOD
3.1 Preliminaries
Entity是一個可以映射到知識庫和本體的通用的詞來表示句子或者短語。 如果要使用Wikipedia等通用知識庫,需要使用wikifiler和entity linker。
HIN是異構信息網絡,和KGs的區別是有實體和鏈接的類型映射函數。
Heterogeneous Information:
V和E是實體和鏈接; 而A和R是實體類型和鏈接類型
這其中需要注意的是: 有兩個函數?\phi?和ψ\psiψ可以映射出實體和關系的類型!但是并未在圖中展示
本文中使用的是寬松版的HIN,也就是有些點沒有類型映射。 如果類型丟失,則只有EntitySim和GraphMF可用。
同樣使用binary user feedback。 如果評分矩陣entry Ri,jR_{i,j}Ri,j?為1就是有行為,否則無行為。
3.2 Running Example
下面我們根據三個Users來理解知識庫的作用。
(必須得知道這個,后面會用到)從歷史記錄來看,Alice看過了Saving Private Ryan and The Terminal,兩個都使得Steven Spielberg as the Director and Tom Hanks as an Actor。根據知識庫的設定 。 而且知識庫也提供了國家和發行時間得信息。 同樣的,我們也知道Bob和Kumar也看了這兩個電影。 除了看之外,我們還可以包括用戶的動作,比如“回顧”或“喜歡”,如果有的話。鑒于用戶過去的觀看歷史,我們可能想要知道他們觀看新電影Bridge of Spies的可能性。 除此之外,movies之間也是有聯系的,比如兩者可能是續集關系。
3.3 Recommendation as Personalized PageRank
隨機游走策略就是讓某點按照一定的概率順著各條路徑行走(包括回到自己),在多次游走穩定后,這種游走會產生許多沒有意義信息。 比如我們只想要產生user-movie的,而不想產生movie的director-genre-actors。
在上述方法中,沒有控制行走。行走的最終結果僅由鏈路結構和起始節點決定。然而最近方法在學著如何在圖上行走。 通過學習一個權重向量www,這個給了一個特征向量?uv\phi_{uv}?uv?在圖u?>vu->vu?>v中的一個邊,計算邊的力量為f(w,?uv)f(w,\phi_{uv} )f(w,?uv?)。
在訓練階段,學習www被認為是一個帶有約束的優化問題。PageRank正示例節點的計算值大于負示例節點的計算值。而在我們的例子中,積極的例子你用戶看過的電影,消極的例子則是用戶沒看過或者是差評的電影。
3.4 Learning to Recommend using ProPPR
ProPPR代表了Programming with Personalized PageRank,是一個一階概率邏輯系統,接受一個在結構和語義上與邏輯程序和許多facts相似的program,輸出一個entities的排序列表,這些實體根據facts answer program。ProPPR根據查詢證明圖(下文解釋)中的個性化PageRank過程對查詢的可能答案進行評分。下面將解釋如何進行推薦。
首先我們會根據用戶的歷史數據得到用戶感興趣的一組,我們把它稱為seedset。 接下來我們將會將seedset作為該用戶隨機游走的種子傳入到ProPPR程序中。如上圖展示的, ProPPR程序有三條規則。 第一規則表明了如果U已經評價了M,M和實體X連接,X和E是相關的,那么實體E屬于用戶U的seedset; 規則二,如果兩個實體是一樣的,那么兩個實體被定義為相關的; 規則三,如果X和另一個實體Z連接,而Z和E相關,那么X和E也是相關的。 最后一條規則是遞歸的,也就是說可以無限延長。 **Link**和*Type*(isEntity, isItem and isUser)消息形成了我們實例中的知識圖譜。 從知識圖譜中取樣的ProPPR的格式在圖3中。 為了找到屬于Alice的seedset,我們將發出查詢Q=seedset(Alice,E)Q = seedset(Alice, E)Q=seedset(Alice,E)給ProPPR。 (這里需要注意的是,種子集不是開始的節點,而是經過查詢用戶歷史數據后得到的感興趣的一組nodes)
找用戶的seedset
ProPPR以圖搜索的方式執行推理。給定像圖2的LP程序和一個查詢集Q,ProPPR開始創建圖像GGG,叫做proof graph。每個圖中的節點代表一個有待驗證的條件列表。 根節點v0v_0v0?就是QQQ,然后它遞歸地給GGG添加節點和邊: 讓uuu成為表單[R1,R2,...,RkR_1, R_2,...,R_kR1?,R2?,...,Rk?]的結點,其中R?R_*R??是它的謂詞。 如果ProPPR能在數據庫中找到與R1R_1R1?匹配的fact,然后相應的變量就有了界限,R1R_1R1?就會被從列表中移除。 否則,ProPPR在表單S?S1,S2,...,SlS\longleftarrow S_1,S_2,...,S_lS?S1?,S2?,...,Sl?de LP中尋找規則,其中SSS匹配R1R_1R1?,如果它發現了這樣一個規則,它將創建一個新節點,其中R1替換為S的主體, v=[S1,S2,...,Sl,R2,...Rk]v=[S_1,S_2,...,S_l,R_2,...R_k]v=[S1?,S2?,...,Sl?,R2?,...Rk?],并且連接uuu和vvv。
在實際運行中,v0v_0v0?是seedset(Alice, E),然后連接到經過Rule 1得到的v1=[reviewed(Alice,M), link(M,X), related(X,E), isEntity(E)]; 之后,ProPPR將使用訓練(歷史)數據為 reviewed 創建兩個節點v2和v3 [link(Saving Private Ryan,X), related(X,E), isEntity(E)]and[ link(The Terminal,X), related(X,E), isEntity(E)]來代替Saving Private Ryan 和 The Terminal , 并稱為 M。 ProPPR將使用規則等等從知識圖中替換X和**related(X,E)**直到它到達一個謂詞都被替換的節點。這些節點是應答節點,因為它們表示原始查詢的完整證明。用于到達這些節點的變量綁定可用于回答查詢。例如:
注意,這樣的圖構造可能是無限的。因此,ProPPR使用近似接地機制及時構建近似圖,在時間O(1α∈)O(\frac{1}{\alpha _ {\in} })O(α∈?1?),其中∈\in∈是一個大約的錯誤,α\alphaα是重置參數。一旦構建了這樣一個圖,ProPPR將運行一個個性化的PageRank算法,起始節點為v0v_0v0?,并根據其PageRank得分對答案節點進行排序
圖2程序的輸出是用戶U的實體的排序列表,其中前K個將會被存儲到U的種子集。 請注意,個性化PageRank評分將那些可以從用戶評價了電影出發 ,有多條短路徑可以到達的實體排名靠前,相反,相對較遠的或者是并沒有太多的路徑可以到達的實體排名靠后。
預測
在生成每個user的種子集后,我們下一步驟就是訓練模型來預測。 一種方法我們使用圖4中的PRoPPR程序, 它表明如果一個實體E屬于U的種子集,那么用戶U可能喜歡一個電影M,U喜歡E,并且E和另一個實體X相關,這出現在電影M中(Rule 4)。 謂詞isApplicable為每個用戶控制訓練和測試信息。在訓練期間,它列出了積極和消極的訓練例子,在測試階段,為每個用戶的測試。謂詞related的定義與前面一樣是遞歸的。對于謂詞likesEntity的定義,請注意術語**{l(U,E)}。這對應于用于標注使用該規則的邊的特性。舉個例子,如果規則是調用U = Alice和E = Tom Hanks**,那么這個特征就是l(Alice, Tom Hanks),在訓練階段,ProPPR從訓練數據中學習該特征的權重。在預測階段,ProPPR使用特征習得的權值作為邊緣的權值。注意,每個user-item pair的這些學習權值與從圖2的種子集生成程序中獲得的排名無關,因為這些權值是特定于預測函數的。
訓練階段,ProPPR使方案的基礎類似于前面討論過的種子集代。EntitySim的一個例子 grounding在圖5中描述,其中Bridge Of Spies和Captain Phillips在Alice的測試例子的集合中,我們可能還有其他測試Alice的例子,但如果它們不能用規則證明(或超過一定的近似誤差),它們將不會出現在 grounding。ProPPR遵循類似于Backstrom等人在[3]中提出的程序來訓練隨機步行者。通過學習一個權重向量www,這個給了一個在圖u?>vu->vu?>v中的一個邊的特征向量?uv\phi_{uv}?uv?,計算邊的力量為f(w,?uv)f(w,\phi_{uv} )f(w,?uv?)。權值和特征向量的函數。也就是穿過邊的概率 P(v∣u)∝f(w,Φuv)P(v \mid u) \propto f\left(\mathbf{w}, \mathbf{\Phi}_{u v}\right)P(v∣u)∝f(w,Φuv?). 我們的方法使用f(w,Φuv)=ew?Φuvf\left(\mathbf{w}, \mathbf{\Phi}_{u v}\right)=e^{w· \mathbf{\Phi}_{u v}}f(w,Φuv?)=ew?Φuv?.
在訓練階段,學習www被認為是一個帶有約束的優化問題。PageRank正示例節點的計算值大于負示例節點的計算值。
其中,是用w得到的邊權計算得到的PageRank向量p。ProPPR所使用的公式6的優化函數是標準的正負對數損失函數,而不是[3]中使用的成對損失函數。為了學習w,我們使用AdaGrad[8]來代替[3]中使用的準牛頓方法和[26]中使用的SGD。將AdaGrad使用的初始學習率和正則化參數μ設為1。關于ProPPR的詳細描述,請讀者參閱[26]和[25]。
3.5 Approach 2: TypeSim
EntitySim方法只使用知識圖鏈接來了解用戶的偏好,然而,回想一下,我們實際上使用的是一個異構信息網絡,除了鏈接信息之外,我們還知道實體的“類型”。例如,我們知道New
York City的類型是City,Tom Hanksis的類型是Actor。為了利用這些額外的類型信息,我們將EntitySim方法擴展為typesim方法,如圖6所示。
TypeSim模型通過使用p(T)來學習實體類型提供的總體可預測性,從而對規則10中每個節點類型的普遍流行程度進行建模。例如,類型actor的節點可能比類型Country的節點更深入地了解用戶的偏好。注意,學習權重不是針對用戶的,因此它的權重是由所有用戶共享的。與規則10類似,在規則9中,模型學習實體本身提供的整體可預測性,獨立于使用p(E)的用戶。例如,史蒂文·斯皮爾伯格導演的電影可能比其他不太知名的導演的電影更受歡迎。Type-Sim也使用規則11和12建模兩種類型之間的一般遍歷概率。例如,與country→Movie相比,Actor→Movie在圖表上的遍歷更具預測性。這些權重被納入到規則7所示的entitysimas的預測規則中。
3.6 Approach 3: GraphLF
協作過濾(CF)最成功的類型之一是潛在因子(LF)模型[15]。他們試圖發現描述每個對象的隱藏維度,從而將用戶和項目映射到相同的特性空間,以提高推薦性能。Koren等人在[15]中指出,對于電影來說,潛在因素可能衡量明顯的維度,如喜劇與戲劇,動作的數量,或兒童取向,以及定義不太明確的維度,如角色發展的深度,或古怪,甚至無法解釋的維度。對于用戶來說,每個因素衡量的是用戶對在相應因素中得分較高的電影的喜愛程度。奇異值分解(Singular Value Decomposition, SVD)是生成推薦LF模型的常用方法之一。SVD方法在每個隱藏維度上為用戶和項目分配值,同時在預測和實際評級矩陣上最小化損失函數。
協同過濾方法的主要吸引力在于,它們不需要任何關于用戶或物品的知識,只根據評級矩陣進行預測。類似地,基于潛在因素的CF模型的主要吸引力在于,它們基于評分數據開發用戶和項目的一般表示,這些評分數據更一般化,通常在原始數據中無法識別。
鑒于我們可以訪問通過不同實體連接條目的KG,我們在本文中提出的第三種方法,GraphLF,集成了潛在因子分解和基于圖的推薦。圖7定義了整個規則集。其主要規則是潛因子相似性SIMLF規則(17)和(18)的定義。本質上,兩個輸入實體X和Y的SIMLF是通過首先選擇一個維度,然后測量x和y 伴隨著 d的值來測量的。如果兩個X和Y的值都很高,那么它們的相似度評分也會很高。一個實體X和維度的值,val(X,D)在訓練階段從數據中學習,如規則(18)中定義的那樣。
注意,規則(16)中兩個相關實體related(X,Y)相關性的遞歸定義現在如何改變,以解釋它們之間除了存在聯系之外的潛在因素相似性。此外,原來的預測規則在rule(13)中已經更改,以使用用戶和實體之間的新關聯評分。本質上,規則(14)中related(U,E)的定義用用戶和屬于其種子集的實體之間的潛在因子相似性simlf (U,E)替換了先前的謂詞LikesEntity (U,E)。因此,模型不再學習每個user-entity對的權重,而是沿著每個維度分別學習用戶和實體的權重。
同樣需要注意的是,與type sim 和 heterec_p不同,GraphLF是類型無關的。類型并不總是可用的,特別是在像Wikipedia圖這樣的通用圖的情況下。因此,類型不可知是一個理想的屬性,可以提高其對廣泛數據域的適用性。
3.7 Model Complexity
讓n是用戶的數量和m是items的。即不同實體的數量和類型。那么,本文提出的每種方法所學習的參數個數表征的模型復雜性如下所示:
- EntitySim-O(n):在這種方法中,我們每個用戶-實體對學習一個參數。然而,通過這些規則,我們限制從該用戶的種子集中選擇實體,該種子集的大小是常數。
- TypeSim-O(n+e+t2t^2t2):除了學習EntitySim的這些參數外,它還學習每個實體和類型的+t權重。此外,它還學習導致附加參數的類型對之間的類型關聯。
- GraphLF-O(n+m+e):對于每個用戶、實體和項目,我們學習與潛在維度相對應的固定數量的權重
在典型領域中,我們期望t?mt\ll mt?m,因此,從參數的數量來看,EntitySimis本文提出的模型中最簡單的,graphlfi是本文提出的模型中較為復雜的
4. EXPERIMENTS AND RESULTS
4.1 Datasets
4.3 Performance Comparison on Yelp and IM100K
4.5 Effect of Dataset Density on Performance
總結
以上是生活随笔為你收集整理的(十四)【RecSys 2016】Personalized Recommendations using Knowledge Graphs: A Probabilistic【看不懂】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android wsdl封装,《andr
- 下一篇: 神经网络 - 用单层感知器实现多个神经元