文/李闊
互聯網技術的飛速普及和發展給用戶帶來了海量的信息,在滿足用戶對于信息需求的同時,數據的爆炸式增長也將那些對于用戶真正有用的信息淹沒其中,面對信息超載問題,現階段解決信息超載的主要方式是推薦系統。在全民閱讀時代的背景下,文獻、書籍、期刊、報紙等資源由紙質保存的形式經過采集、處理、存儲與整合轉換為通過計算機進行存儲通過互聯網進行展示的電子資源。文獻資源作為目前電子資源的重要類型之一,同樣面臨著信息超載的問題,目前常用的電子文獻推薦算法可分為基于網絡的推薦、基于內容的推薦、協同過濾推薦。協同過濾推薦是最傳統的推薦技術,但協同過濾推薦是基于用戶-物品評分做推薦并沒有用到物品本身的信息,因而單純的協同過濾推薦算法應用于電子文獻的推薦是不合適的。目前應用于電子文獻的協同過濾推薦大多都是與基于內容相似性進行混合做推薦。而多數的電子文獻、電子圖書資源的推薦都是基于內容的推薦,基于內容的推薦利用電子資源本身帶有的信息挖掘出特征,找尋內容和內容之間的相似性做推薦,為用戶推薦與其偏好內容上相近的電子資源。目前電子文獻的特征提取用到的是文本數據挖掘領域的Word2Vec 技術和TF-IDF 技術,進而通過度量文本之間的相似性進行推薦,本文將闡述目前已有的基于Word2Vec 和TF-IDF 文本嵌入的推薦方法。截至目前大多數的電子文獻推薦都是對于純文本類型的數據進行推薦,但現實中的電子文獻資源系統中通常保存了多種數據資源,書籍、報紙、期刊,一些是以文本類型進行存儲,一些是以PDF(即圖片)類型進行存儲,如何解決對于不同書類型的推薦成為推薦系統可研究的一個方向。本文結合異質信息網絡領域最新的研究成果,介紹基于異質圖神經網絡推薦算法。
基于內容的電子文獻推薦算法思想是根據用戶過去喜歡的內容,為用戶推薦和他過去喜歡內容相似的內容,基于內容的電子文獻推薦過程包含三個步驟,分別是物品表示、特征學習、生成推薦列表。第一步從電子文獻資源的內容中抽取出代表它的屬性,常用的方法是通過一系列電子文獻資源中的詞組來表示這篇文獻,詞組的權重通過TF-IDF(詞頻-逆文檔頻率)來計算,或者通過Word2Vec 技術,都可以將一篇文本類型的電子資源轉換為向量進行計算;第二步根據用戶過去喜歡的電子文獻資源向量的平均值來刻畫;第三步將刻畫的用戶喜好向量與文獻資源向量做相似度比較,為用戶推薦相似度較高的前幾項電子文獻資源,從而生成推薦列表。
通過TF-IDF(詞頻-逆文檔頻率)做文本的嵌入思想是盡量凸顯只在本文獻中出現的詞組而在別的文獻上很少出現的詞組,這樣的詞組在邏輯上也最有可能代表一篇文獻的特征。TF-IDF 首先需要做分詞,然后將每一篇文獻看作一系列詞組的集合,為每一篇文獻生成一個向量,向量的每一維代表一個對應詞組在這篇文本中的值,這個值是通過下面這種方式計算的:TF 的代表某個詞在某篇文本中出現的頻率,用于度量這個詞在這篇本文中的重要程度,出現次數越多越重要。TF 詞頻計算公式如下,其中tk 是指第k 個詞組,dj 是指第j 篇文檔。
TF(tk,dj)=||tk∈dj||/||dj||
IDF 代表某個詞在這些文本資源中的區分度,邏輯上如果一個詞只在少量的幾篇文本中出現,說明他的價值量是巨大的。如果一個詞在多篇文本中出現,說明這個詞沒有很好的區分度,不能有效地對文本進行區分。IDF 的計算公式如下。
IDF(tk)=log(N/nk)
某篇文本中某個詞的TF-IDF 值就是通過TF*IDF 計算的,TF-IDF 計算公式如下,由此可以得到一篇文本的向量表示。
TF-IDF(tk,dj)=TF(tk,dj)*IDF(tk)
第一部分文本的表示已經完成,第二部分是學習用戶的特征,可以通過對用戶過去喜歡或瀏覽的文本向量累加求和取平均值作為這個用戶的偏好向量,形成用戶畫像,再把用戶偏好向量放到文本向量化后的向量空間中,通過余弦相似度或者歐式距離作為相似度度量,取與用戶向量最相近的且用戶沒看過的文本向量對應的文本作為待推薦的電子文獻。或者在用戶畫像刻畫好之后對于所有用戶向量進行聚類,為該用戶推薦一個類中其他用戶喜歡的文本內容。總之,特征學習和生成推薦列表階段的方式也有很多種,常用的有聚類、分類、決策樹等機器學習算法。

圖1:異質圖神經網絡框架
Word2Vec 是文本數據挖掘中常用的詞嵌入模型,具體分為兩種語言模型,如果是用一個詞組作為輸入,來預測他周圍的上下文,則稱為Skip-gram 模型。如果是哪一個詞組的上下文作為輸入,來預測這個詞組本身,則是CBOW 模型。本文采用Skip-gram 模型,Skipgram 模型本質上也是BP 神經網絡,首先需要將文本進行分詞處理,然后對每一個分詞后的詞組x 進行one-hot 編碼,以編碼后的向量作為Skip-gram 模型神經網絡的輸入,基于反向傳播算法對神經網絡進行訓練,當模型訓練完之后,最后得到輸入層到隱含層的權重,將這些權重組成一個向量vx 來表示詞組x,因為one-hot 編碼里的1 的位置不同,所以向量vx能唯一表示詞組x。Word2Vec 的本質是得到最后訓練好的神經網絡的輸入層到隱含層的權重組成的向量來表示詞組。
由此我們可以得到每一個詞組的向量表示,將一篇文本中的所有詞組向量進行累加運算可以得到一篇文本的向量表示,將一個用戶喜歡過的所有文本向量取平均值可以得到用戶偏好向量,在向量空間中可以通過余弦相似度、歐式距離做度量找到離用戶偏好向量最近的n個文本內容作為待推薦的電子文獻資源。基于Word2Vec 進行擴展,得到Doc2Vec(Par2Vec)模型,即考慮這個詞組的上下文信息加上段落信息作為輸入來預測下一個詞組,Doc2Vec 模型在異質圖神經網絡的框架中用來處理文本信息。
一般的基于網絡結構的推薦算法不關注用戶和物品的內容特征,而僅僅把他們看作抽象的節點,所有算法利用的信息都隱藏在用戶和物品的選擇關系之中。周濤等利用用戶-物品用二部圖(bipartite)建立用戶-物品關聯關系,并據此提出了基于二部圖結構的推薦算法。在這種二部圖的網絡結構中,節點和節點之間的關系只是用戶-物品的選擇關系,并未考慮物品-物品之間的內容相似性,針對電子文獻資源而言,電子文獻資源之間的內容相似性是我們首要考慮的推薦依據。其次,這樣的網絡結構中所有節點的類型相同,屬于基于同質信息網絡的推薦,但在電子文獻資源中存在多種數據,包括文獻、書籍、報刊,這些資源的存儲形式可以是文本或者掃描后得到的圖片,如何針對于多種不同數據類型的電子資源進行推薦將是我們接下來關注的問題。
異質信息網絡是由YiZhou Su 首先提出的,異質信息網絡與同質信息網絡不同的是網絡中的節點類型和邊的類型存在多種。異質信息網絡在被提出之后廣泛應用于圖表示學習、鏈路預測、分類、推薦。針對電子文獻資源存在多種數據類型的情況,在用戶-文獻網絡中生成多種類型的節點,建立用戶-文獻關系和文獻-文獻內在聯系,為用戶推薦其感興趣的文獻資料。
基于異質信息網絡建立的圖存在多種不同類型的節點,在對異質圖進行數據挖掘工作之前首先需要做數據預處理工作,稱為異質圖嵌入或異質圖表示學習,把圖中的每一個節點都轉換為向量從而進行之后的聚類、分類。異質圖的表示學習方法可以為每個節點獲得有意義的向量表示,可以為下游的任務(鏈路預測、分類、聚類、推薦等)提供研究基礎。圖嵌入與傳統的數據結構中的圖存儲不同,傳統的數據結構中圖的存儲是以鄰接矩陣的形式,在圖的節點數目非常多的情況下,矩陣的維數將非常多不利于計算。異質圖嵌入的方法有隨機游走、因子分解、深度學習等,圖嵌入的主要優點有兩點:第一點是將高維圖結構用低維向量表示,第二點是圖嵌入之前兩個相鄰節點在嵌入之后,兩個向量在圖嵌入的向量空間中也是相鄰的。
異質圖的表示學習面臨兩個挑戰,挑戰一是如何融合異質信息網絡中的結構信息,挑戰二是如何融合異質信息網絡中的內容信息。由Chuxu Zhang 等在2019年KDD 會議上提出的異質圖神經網絡(HetGNN)圖嵌入框架[13]很好地解決了這兩個挑戰,也為多數據類型的電子文獻資源推薦提供了圖嵌入框架。
異質圖神經網絡在異質圖表示學習中,采用圖神經網絡思想和Bi-LSTM神經網絡技術,融合異質圖的異質結構信息和異質內容進行圖的嵌入。
HetGNN 框架的目的是將圖中的每個節點都嵌入成向量,其中每個節點都包含自身的屬性和內容信息。嵌入過程如圖1所示,取圖1中一節點a,找到它附近的所有節點,將這些節點輸入至NN-1 這個網絡中,NN-1 這個網絡將對節點自身所帶有的信息進行融合處理,若一個節點帶有文本和圖片信息,則文本信息將通過par2vec 框架進行嵌入,圖片信息將通過CNN 框架進行嵌入,然后在通過Bi-LSTM雙向長短期記憶網絡進行處理,將處理后的結果進行融合得到這個節點的一個中間向量。將這些向量根據自身帶有的內容信息類型進行分類,將屬于一類的節點向量作為NN-2 的輸入,通過NN-2 框架將一類節點向量融合為一個向量作為類向量,最后將節點a 自身經過NN-1處理后的向量與a 附近節點經過內容融合和再分類之后嵌入得到的分類向量作為NN-3 框架的輸入,NN-3 框架引入注意力機制,最后輸出就是節點a 嵌入后的向量表示,可以發現HetGNN 框架融合了節點的內容信息和圖中節點的結構信息進行嵌入,此方法在下游任務(鏈路預測、分類、聚類等)上優于目前最先進的算法。
第一步構建異質信息網絡,將用戶和不同類型的電子文獻資源作為節點,將用戶瀏覽(喜歡)內容關系作為節點之間的邊,將內容和內容之間的已知相關關系作為節點之間的邊,由節點和邊共同構成異質信息網絡。第二步節點表示,根據HetGNN 框架將異質信息網絡中的所有節點嵌入得到節點的向量化表示。第三步特征學習,節點嵌入過程包含了用戶節點的嵌入,由此可以得到用戶偏好向量。第四步生成推薦列表,根據HetGNN 嵌入后得到的用戶偏好向量和電子文獻資源向量在向量空間中做相似性度量,相似性度量方法可以是向量的余弦相似度、向量之間的歐式距離、向量之間的馬氏距離,根據相似性度量方法找到離用戶向量最近的N 個內容節點向量,將這N 個節點向量代表的電子文獻添加到該用戶的推薦列表中。
根據HetGNN 的實驗數據,異質圖神經網絡在多源異構數據推薦系統領域表現優于目前的其他算法。但該方法依然存在一開始缺少用戶內容選擇關系的冷啟動問題,冷啟動問題一直是推薦系統中的一個難題,也將是該方法未來可以優化和研究的一個方向。
電子文獻資源的推薦一直是推薦系統領域一個研究的應用場景,基于電子文獻資源自身帶有內容的重要性,目前電子文獻資源推薦很少采用推薦系統中廣泛使用的協同過濾推薦,而是大多采用基于內容的推薦方式,本文闡述了三種不同的基于內容的推薦方法,首先基于單純的文本類型闡述了基于TF-IDF 的推薦算法和基于Word2Vec 的推薦算法原理,這兩種方法只是在文本嵌入的方式上不同,目前也有將兩種嵌入方式做融合的研究,也有基于Word2Vec 衍生出的Doc2vec 模型做文本嵌入的研究。最后根據多種數據類型的電子文獻資源,結合目前最新的多源異構數據嵌入框架HetGNN 提出了對多種數據類型電子文獻資源進行推薦的方法,該方法在多源異構數據上進行推薦優于目前的其他方法。