夏振宇 季 旺
(江蘇科技大學(xué)計(jì)算機(jī)學(xué)院 鎮(zhèn)江 212003)
社交網(wǎng)絡(luò)的的蓬勃發(fā)展在最近幾年尤為明顯,作為互聯(lián)網(wǎng)信息媒體一類重要服務(wù),如YouTube,Twitter還有新浪微博等,它們需要響應(yīng)海量用戶的服務(wù)請(qǐng)求,還要實(shí)時(shí)響應(yīng)用戶的個(gè)性化服務(wù),雖然基于協(xié)同過濾的推薦系統(tǒng)在一定程度上解決了推薦系統(tǒng)落地的問題,但是遺留的稀疏性和冷啟動(dòng)問題至今得不到很好的解決[1]。知識(shí)圖譜由此應(yīng)運(yùn)而生,解決了大數(shù)據(jù)下推薦系統(tǒng)的復(fù)雜問題,帶來了一定的技術(shù)革新。
知識(shí)圖譜就是有基本的單元三元組構(gòu)成的(h,r,t),意思及時(shí)實(shí)體h通過關(guān)系指向r指向?qū)嶓wt,其中每個(gè)實(shí)體或概念用一個(gè)全局唯一的ID 來標(biāo)識(shí),每個(gè)屬性一鍵值對(duì)刻畫了實(shí)體的內(nèi)在屬性,而關(guān)系用來連接兩個(gè)實(shí)體刻畫它們之間的關(guān)聯(lián)[2]。知識(shí)圖譜特征學(xué)習(xí)是比較常見與推薦系統(tǒng)的結(jié)合方式,知識(shí)圖譜特征學(xué)習(xí)為知識(shí)圖譜中每個(gè)實(shí)體和關(guān)系學(xué)習(xí)到一個(gè)低維向量,同時(shí)保持途圖中原有的結(jié)構(gòu)或語(yǔ)義信息,DKN[3]作為一種知識(shí)圖譜特征學(xué)習(xí)在推薦系統(tǒng)中得到了很好的應(yīng)用,通過歷史訪問以及標(biāo)題單詞和知識(shí)圖譜之間的關(guān)聯(lián)預(yù)測(cè)用戶是否點(diǎn)擊下一個(gè)新聞,來給用戶更精確地推薦可能感興趣的新聞。DKN 模型的核心是基于CNN 句子特征提取,通過知識(shí)圖譜的知識(shí)提取對(duì)標(biāo)題每個(gè)單詞em?bedding,然后得到標(biāo)題中每個(gè)單詞的embedding,最后得到每個(gè)單詞的上下文embedding,通過這3個(gè)通道信息實(shí)現(xiàn)對(duì)新聞模型的提取,通過KCNN[4],把實(shí)體的embedding 和實(shí)體的上下文embedding 映射到一個(gè)空間里,映射的方式可以選擇線性方式將其類似于RGB 圖片卷積方式使用兩個(gè)filter進(jìn)行卷積通過最大池化將其結(jié)果整合為新聞的特征表示向量,根據(jù)不同話題興趣模擬用戶歷史點(diǎn)擊,最后用softmax函數(shù)輸出正則化影響權(quán)重[5],由于是針對(duì)文本失效性,DKN 作為一種基于內(nèi)容的模型適合做一些博文點(diǎn)擊預(yù)測(cè),融合了知識(shí)圖譜和深度學(xué)習(xí),從語(yǔ)義層面和知識(shí)兩個(gè)層面對(duì)新聞之間的隱含關(guān)系,對(duì)于候選文章使用attention 機(jī)制[6]動(dòng)態(tài)學(xué)習(xí)歷史點(diǎn)擊的表示展現(xiàn)出了知識(shí)圖譜在推薦系統(tǒng)上顯著的優(yōu)越性。
本文將DKN 模型應(yīng)用推薦到用戶微博博文上,并對(duì)DKN 的embedding 進(jìn)行優(yōu)化,利用優(yōu)化過的DKN 模型實(shí)現(xiàn)微博上的個(gè)性化推薦,根據(jù)實(shí)驗(yàn)結(jié)果表面,優(yōu)化后的DKN 模型可以很好地實(shí)現(xiàn)微博個(gè)性化推薦,相比傳統(tǒng)的協(xié)同過濾的模型有很好的預(yù)測(cè)表現(xiàn)。
隨著信息科學(xué)的發(fā)展,智能信息處理愈發(fā)重要,互聯(lián)網(wǎng)平臺(tái)上的數(shù)據(jù)指數(shù)級(jí)增長(zhǎng),伴隨著信息爆炸,以谷歌為代表Google 的知識(shí)圖譜[7]可以理解超過5 億個(gè)實(shí)體以及35 億個(gè)屬性和關(guān)系。國(guó)內(nèi)百度等都在自己龐大的數(shù)據(jù)基礎(chǔ)之上構(gòu)建各自的知識(shí)圖譜,如百度知心以及阿里基于商品的知識(shí)圖譜,發(fā)展知識(shí)圖譜是大勢(shì)所趨。知識(shí)圖譜[8]旨在描述真實(shí)世界中存在的各種實(shí)體或概念其中,每個(gè)實(shí)體或概念用一個(gè)全局唯一的ID 來標(biāo)識(shí),每個(gè)屬性一鍵值對(duì)刻畫了實(shí)體的內(nèi)在屬性,而關(guān)系用來連接兩個(gè)實(shí)體刻畫它們之間的關(guān)聯(lián)。知識(shí)圖譜通常分為通用知識(shí)圖譜和專業(yè)知識(shí)圖譜[9],通用知識(shí)圖譜主要應(yīng)用于智能搜索領(lǐng)域如中文知識(shí)圖譜,專業(yè)知識(shí)圖譜描述的目標(biāo)是特定行業(yè)如金融知識(shí)圖譜,汽車知識(shí)圖譜等與通用知識(shí)圖譜相比較其描述范圍有限。在本文工作中,知識(shí)圖譜用一種由三元組以及三元組之間相互的鏈接形成的一個(gè)網(wǎng)狀知識(shí)庫(kù)來表示。主要用的是ownthink知識(shí)圖譜。
相關(guān)研究者者將知識(shí)圖譜應(yīng)用于推薦領(lǐng)域并取得了較好的效果。Hong 較早地提出將知識(shí)圖譜引人到推薦系統(tǒng)中[11]。Oramas 等通過DBpedia 豐富歷史數(shù)據(jù)集的語(yǔ)義信息,從而提升推薦效果[12]。Gu 更進(jìn)一步優(yōu)化旅游知識(shí)圖譜隱含的語(yǔ)義反饋信息,優(yōu)化了隱式語(yǔ)義反饋的路徑算法[13],Tang 通過融合商品知識(shí)圖譜和用戶評(píng)論通過基于路徑的特征處理[14]對(duì)數(shù)據(jù)集進(jìn)行挖掘,以捕獲項(xiàng)目之間的復(fù)雜關(guān)系,也得到了很好的效果。
知識(shí)圖譜的嵌入(KGE)[15]旨在將實(shí)體和關(guān)系進(jìn)行Embedding 表示,類似于Word2Vec,將字或詞表成Embedding 信息,然后根據(jù)是系統(tǒng)和關(guān)系的Embedding 信息進(jìn)行預(yù)測(cè),常見的KGE 模型分為基于翻譯的模型和基于路徑的模型[16],傳統(tǒng)的模型有TransE,TransH,TransD 模型,TransE 認(rèn)為屬于翻譯模型,將三元組實(shí)例(h,r,t)中關(guān)系rleation 看作是實(shí)體head 到實(shí)體tail 翻譯,通過調(diào)整h,r,t使(h+r)盡可能與t相等,TransE[17]采用最大間隔法,最小化定義一個(gè)距離函數(shù)d(h+r,t),用來衡量h+r和t之間的距離,目標(biāo)函數(shù)L下:
其中d(x,y)表示向量x與y的距離,可以是曼哈頓距離也可以是歐氏距離,γ表示邊界超參數(shù),[x]+表示當(dāng)x<0 時(shí)取0 的值。其中S是知識(shí)庫(kù)中的是你換及訓(xùn)練集,S'是負(fù)采樣三元組通過替換h或t所得而隨機(jī)生成,這樣梯度更新只需要更新計(jì)算距離d(h+r,t)和d(h'+r,t')。
不過transE 算法模型在處理自反關(guān)系以及多對(duì)一,一對(duì)多,多對(duì)多關(guān)系會(huì)使得一些不同的實(shí)體具有相同或者相似的向量,原因在于出現(xiàn)多個(gè)關(guān)系中的同一個(gè)實(shí)體表示是相同的,Wang 提出的TransH模型就解決了這個(gè)問題,對(duì)每一個(gè)關(guān)系定義一個(gè)超平面W和一個(gè)關(guān)系向量d,h',t'是h,t在w上的投影于是我們?cè)榷x在transE中的d(h+r,t)為對(duì)于平面W我們可以用法向量表示,我們假設(shè)w為平面W的法向量并加約束條,所以我們知道h在w上投影為
通過相似的可以知道t'=t-tw=t-wTtw所以可以合并得到函數(shù):
最終得到目標(biāo)函數(shù)L:
除此之外還有基于語(yǔ)義的匹配模型[18]使用類似于基于相似度的評(píng)分函數(shù)評(píng)估三元組概率,將實(shí)體和關(guān)系映射到隱語(yǔ)義控件進(jìn)行相似度度量,構(gòu)造一個(gè)二分類模型,將h,r,t輸入到網(wǎng)絡(luò)中,這樣可以通過概率來確定知識(shí)圖譜是否存在。
推薦系統(tǒng)的初衷是解決互聯(lián)網(wǎng)信息過載的問題,給用戶推薦其感興趣的問題,當(dāng)然微博個(gè)性化推薦仍然存在幾個(gè)待解決的問題。一個(gè)是時(shí)效性,眾所周知,微博的更新速度以及時(shí)效性堪比信息直播,第二個(gè)微博博文通常是140 字的限制所以語(yǔ)言都是相對(duì)濃縮的信息實(shí)體,第三就是微博用戶有很明顯的興趣和傾向,一個(gè)用戶閱讀了一個(gè)微博會(huì)屬于某個(gè)微博話題或主題,所以利用用戶歷史微博去預(yù)測(cè)候選的微博是微博推薦系統(tǒng)的關(guān)鍵,Deep Knowledge-aware Network(DKN)模型加入文章之間的知識(shí)層面就解決了這個(gè)問題,可以更加精確推薦微博用戶可能感興趣的博文。如圖1 可見,DKN有兩個(gè)輸入網(wǎng)絡(luò),一個(gè)是候選的微博博文集合,用戶歷史點(diǎn)擊的話題序列。輸入數(shù)據(jù)通過KCNN 來圖區(qū)特征,之上一個(gè)attention 層,計(jì)算候選的微博與用戶歷史訪問之間的attention 權(quán)重,在頂層拼接兩部分向量然后依次來計(jì)算用戶點(diǎn)擊該微博的概率。
圖1 DKN大致框架結(jié)構(gòu)
知識(shí)抽?。↘nowledge Extraction,KE)[19]是從結(jié)構(gòu)化(例如關(guān)系數(shù)據(jù)庫(kù)、XML)和非結(jié)構(gòu)化(例如文本、文檔、圖像)源中創(chuàng)建知識(shí)。產(chǎn)生的知識(shí)需要采用機(jī)器可讀和機(jī)器可解釋的格式,并且必須以便于推理的方式表示知識(shí),知識(shí)抽取是知識(shí)圖譜和推薦系統(tǒng)結(jié)合的重要流程,我們以某用戶的一個(gè)微博為例子“#足協(xié)表態(tài)將穩(wěn)妥推進(jìn)歸化球員工作#上觀:歸化球員因?qū)嵙Ω鼜?qiáng),短期肯定會(huì)占據(jù)本土球員的位置,長(zhǎng)期還會(huì)對(duì)中國(guó)足球青訓(xùn)產(chǎn)生致命影響。一旦歸化球員泛濫,中國(guó)足球的根基也會(huì)動(dòng)搖,直接全球購(gòu)買歸化球員就好了,中國(guó)足球還辛辛苦苦搞青訓(xùn)做啥?”新政一出,已有球迷發(fā)帖:“如果中國(guó)國(guó)家隊(duì)召入全部歸化球員,全部首發(fā),那我們唯一效力歐洲的留洋球員@武磊7是不是都沒位置了?”#國(guó)際足聯(lián)通過歸化球員新政#”,去除一些不規(guī)則的表情和符號(hào)通過Entity-Linking 技術(shù)消除歧義,根據(jù)已有的知識(shí)提取流程將博文中涉及的實(shí)體鏈接在一個(gè)step之內(nèi)所形成的子圖,然后利用基于距離的翻譯模型TransE,或者TransR 等得到子圖中每個(gè)實(shí)體的embedding,最后得到話題中每個(gè)單詞對(duì)應(yīng)的實(shí)體embedding,過程如圖2所示。
圖2 知識(shí)提取流程
由于知識(shí)圖譜通過特征學(xué)習(xí)的方法得到向量保存了大部分結(jié)構(gòu)信息,不過還是會(huì)存在信息丟失,于是DKN 模型通過每個(gè)實(shí)體相連的實(shí)體em?bedding 平均值來進(jìn)一步刻畫每個(gè)實(shí)體;我們假設(shè)實(shí)體e在知識(shí)圖譜的鄰居集合可得:
圖3 KCNN模型架構(gòu)
其中函數(shù)g表示線性變換或非線性變換,這樣我們就可以得到微博博文的輸入W:
使用兩個(gè)不同的filter[20]方式卷積得到類似關(guān)于h激活的子矩陣,通過最大池化,最后整合得到輸出的特征表示向量如下:
傳統(tǒng)的DKN 模型通過深度學(xué)習(xí)的注意力機(jī)制,由于不同的新聞話題興趣可能是不同的注意力機(jī)制通過模擬用戶點(diǎn)擊微博對(duì)候選話題微博的不同影響程度,采用如下公式來計(jì)算:
候選微博tj,用戶i的歷史點(diǎn)擊新聞兩者進(jìn)行連接,在使用DNN 函數(shù)H進(jìn)行計(jì)算最后采用函數(shù)輸出正則化影響權(quán)重,我們利用TransE的變種方法TransM 在知識(shí)嵌入時(shí)還可以表示實(shí)體之間關(guān)系變得權(quán)重大小,并且傳統(tǒng)的Attention 機(jī)制,給定的embedding,直接給定item embeding 可以用來做點(diǎn)積或者通過權(quán)重矩陣,優(yōu)化后的Attention機(jī)制如圖4所示,將輸入element wise[21]差值向量合并起來作為輸入,然后傳給全連接層,最后得出權(quán)重,嵌入和池化村按組操作的方式,將元素稀疏特征映射到定長(zhǎng)表示向量,然后將所有向量連接在一起獲得整體表示向量,這樣我們會(huì)發(fā)現(xiàn)損失的信息更少,深度興趣網(wǎng)絡(luò)(DIN)獲得用戶的定長(zhǎng)表示向量,通過將所有嵌入向量集中到用戶行為特征組上來產(chǎn)生興趣,如式(11)。此表示向量保持不論候選微博是什么,對(duì)于給定用戶而言都是相同的。這樣有限維度的用戶表示向量,表達(dá)用戶的不同興趣將成為瓶頸。為了使其足夠強(qiáng)大,一種簡(jiǎn)單的方法就是擴(kuò)大嵌入向量,不幸的是會(huì)增加大量學(xué)習(xí)參數(shù)。在有限的情況下會(huì)導(dǎo)致過度擬合訓(xùn)練數(shù)據(jù)并增加計(jì)算和存儲(chǔ)的負(fù)擔(dān)。與傳統(tǒng)模型相比,DIN[22]引入了一種新穎設(shè)計(jì)的局部激活單元,并保持其他結(jié)構(gòu)不變。特別,活單元應(yīng)用于用戶行為功能作為加權(quán)總和池執(zhí)行以自適應(yīng)地方式計(jì)算用戶行為功能,放棄輸出使用softmax進(jìn)行歸一化,對(duì)數(shù)似然函數(shù)定義為
圖4 優(yōu)化后的興趣注意力機(jī)制
其中S是大小為N的訓(xùn)練集,其中x是網(wǎng)絡(luò)y?{0,1}為標(biāo)簽,p(x)是網(wǎng)絡(luò)輸出在softmax 層之后,代表預(yù)測(cè)的概率單擊樣本x。由于特征對(duì)應(yīng)的embedding矩陣是巨大的,模型參數(shù)過多,直接上傳統(tǒng)的L2 正則也不現(xiàn)實(shí),于是提出新的正則化方式,其中K 表示特征空間維度,B 表示batch-size,從而決定是否對(duì)特征id 對(duì)應(yīng)的embedding 向量加上正則化。
1)實(shí)驗(yàn)環(huán)境和實(shí)驗(yàn)數(shù)據(jù)集
本文實(shí)驗(yàn)環(huán)境如下:
操作系統(tǒng):Windows 10 64位操作系統(tǒng)。
CPU:Intel Core i5-8265U 1.80GHz。
內(nèi)存容量:8GB。
對(duì)比兩組人員糖化血紅蛋白檢測(cè)(HbAlc)、空腹血糖水平(FPG)以及口服葡萄糖50 g篩選測(cè)試糖耐受量水平(GCT);同時(shí)對(duì)比不同檢測(cè)方式在妊娠期糖尿病中的診斷情況[3]。
IDE:Pycharm及Python3.7。
本文所使用的數(shù)據(jù)集是來自新浪微博API 公開數(shù)據(jù)集和ownthink公開的知識(shí)圖譜。
2)評(píng)價(jià)指標(biāo)
對(duì)構(gòu)建的模型進(jìn)行評(píng)估非常關(guān)鍵,AUC常常用的點(diǎn)擊率模型上面,代表模型預(yù)估樣本之間的排序關(guān)系,正負(fù)樣本之間預(yù)測(cè)gap 越大,auc 越大。但是AUC計(jì)算如果在線上出現(xiàn)新樣本,線下沒有見過會(huì)造成AUC 不足,阿里曾提出改進(jìn)AUC 評(píng)價(jià)指標(biāo),提出新的AUC 指標(biāo),新的AUC 計(jì)算公式如下:
3)實(shí)驗(yàn)參數(shù)設(shè)置
表1 實(shí)驗(yàn)參數(shù)設(shè)置
4)結(jié)果分析
本文采用DKN 模型+改進(jìn)后的用戶興趣預(yù)測(cè)注意力機(jī)制。最后對(duì)本文構(gòu)建的評(píng)價(jià)模型進(jìn)行實(shí)驗(yàn),通過與其他融合特征學(xué)習(xí)的推薦模型對(duì)比,得到以下試驗(yàn)結(jié)果。
從實(shí)驗(yàn)結(jié)果可以看出,本文采用的DKN 模型明顯優(yōu)于傳統(tǒng)的基于協(xié)同過濾的與推薦系統(tǒng)模型,并且在改進(jìn)注意力機(jī)制下的整體算法綜合指標(biāo)相較于傳統(tǒng)的DKN 模型有著大幅度提升?;贒KN模型+TransM 訓(xùn)練的改進(jìn)方法對(duì)總體預(yù)測(cè)效果最好,分類的準(zhǔn)確性也相對(duì)更高。無(wú)論是哪種知識(shí)圖譜embedding 方式,在使用改進(jìn)的用戶興趣預(yù)測(cè)模型都有著良好的效果,可見DKN+DIN+TransM是比較好的推薦模型。
表2 不同模型的測(cè)試結(jié)果對(duì)比
本文針對(duì)傳統(tǒng)DKN 模型,并在傳統(tǒng)DKN 模型的attention 機(jī)制進(jìn)行改良,對(duì)算法模型的評(píng)價(jià)指標(biāo)進(jìn)行了優(yōu)化和更新,可以更好地體現(xiàn)推薦算法的綜合性能,本文主要分析的DKN 模型主要用于點(diǎn)擊率類的推薦模型,在深度學(xué)習(xí)作用下,可以通過有效的概率來推斷出用戶點(diǎn)擊的概率主要應(yīng)用于新聞,微博,廣告頭條等個(gè)性化推薦,解決了信息爆炸下微博如何準(zhǔn)確進(jìn)行個(gè)性化推薦的問題,針對(duì)用戶興趣實(shí)現(xiàn)對(duì)用戶的興趣的建模做出相應(yīng)的推薦,進(jìn)一步提高DKN 在推薦系統(tǒng)下的使用,使知識(shí)圖譜與深度學(xué)習(xí)相結(jié)合的推薦系統(tǒng)越來越收到歡迎和普及。