苑樹強,史艷翠
(天津科技大學人工智能學院,天津300457)
隨著網(wǎng)絡技術的不斷發(fā)展,人們的生活越來越豐富,越來越多的用戶展現(xiàn)出豐富的興趣,并在各個領域都有所涉獵.研究[1]表明不同平臺的用戶偏好和項目特征存在相似性和相關性,因此推薦系統(tǒng)開始利用用戶在多個領域的交互信息提高推薦質(zhì)量,即跨領域推薦[2].跨領域推薦是通過將一個領域的知識轉(zhuǎn)移到另一個領域而緩解數(shù)據(jù)的稀疏性問題.尤其是當用戶進入一個新的領域時,也就是冷啟動問題,可以利用用戶以前已有交互領域中的信息為其推薦.這兩個問題也是推薦系統(tǒng)中長期存在的兩個問題.
在跨領域推薦中,最關鍵的問題是如何建立兩個領域之間的橋梁[3].Li等[4]提出一種密碼本遷移學習算法,認為跨領域推薦不一定需要遷移具體的數(shù)據(jù),而是將用戶的評分模式從密集的源域遷移至稀疏的目標域,以此豐富目標域的評分矩陣.基于共享知識模型的跨領域推薦算法SKP[5],將用戶屬性信息加入推薦過程以解決正遷移不足的問題,引入其他可用的輔助信息增加可用數(shù)據(jù)量,緩解數(shù)據(jù)稀疏帶來的影響.以上方法屬于傳統(tǒng)的跨領域推薦,沒有對每個域自身的特點進行域適應,也沒有進行特征映射.這可能會忽視不同域之間不同特征的影響,甚至會引入負遷移.
在不同的任務中,領域間的聯(lián)系有所不同,因此對于不同的情況,例如用戶、物品、文本屬性、評分、標簽、類別等都可能作為跨領域推薦的共享信息.Zhang等[6]通過捕獲不同標記之間的語義關系,識別域間相似的用戶和物品,通過用戶和物品的域內(nèi)和域間相關性約束矩陣分解;但域間用戶和物品相似度的準確性對推薦結果的影響很大.Guo等[7]在源域和目標域各自利用用戶配置文件生成用戶標簽矩陣,并利用矩陣分解找到與源域標簽相似的目標域標簽,將源域的用戶配置文件轉(zhuǎn)換為目標域的用戶配置文件,使跨域推薦轉(zhuǎn)為單域推薦;但稀疏的用戶-標簽矩陣導致標簽相似性計算困難.
對于跨領域推薦,可遷移特征的質(zhì)量也是影響推薦效果的重要因素.近年來,隨著深度學習的發(fā)展,研究人員開始利用深度學習的方法改善跨域推薦的效果[8].Man等[9]提出一種利用多層感知器捕獲跨域的非線性映射函數(shù)的框架,為學習各域?qū)嶓w的領域特征提供了很高的靈活性.Zhu等[10]認為不同用戶的偏好不同,所以其映射函數(shù)也應該不同.通過用戶特征嵌入反饋的元網(wǎng)絡生成個性化的映射函數(shù),以實現(xiàn)每個用戶的個性化偏好傳遞.上述算法利用深度學習的方法映射用戶特征,但訓練依靠域間的重疊用戶,而現(xiàn)實情況下域間重疊用戶較少.Kang等[11]提出使用歐氏距離反映用戶對物品的偏好,并使用半監(jiān)督的方法訓練映射函數(shù),但度量空間中用戶-物品偏好表示的準確性明顯影響推薦結果的準確性.
大部分情況下,物品、標簽等信息很難出現(xiàn)重疊;但隨著網(wǎng)絡的發(fā)展,信息越來越豐富,用戶可能會同時在多個領域存在交互信息.所以,針對源域和目標域存在重疊用戶的情況,本文提出一種基于用戶信息映射的跨域推薦算法.雖然不同領域中標簽沒有重疊,但是不同領域中可能會存在含義相似的標簽,即標簽對用戶和物品嵌入模型的影響應該是跨領域的.因此,首先通過用戶和標簽的交互信息得到用戶和物品特征,并使用降維方法處理成低維特征,再將用戶的源域特征映射到目標域.此外,用戶映射之后應保持自己的偏好類別,所以通過聚類方法生成用戶種群,并利用不同種群的偏好信息和重疊用戶訓練映射函數(shù).綜上所述,本文通過映射用戶在源域中的信息,為用戶推薦目標域的物品,本質(zhì)上屬于基于內(nèi)容的推薦系統(tǒng).
本文的主要工作如下:(1)提出一種新的用戶、物品信息表示方式,利用直接標簽和間接標簽表示用戶和物品,更好地體現(xiàn)用戶偏好和物品特性;(2)改進降維方式,利用用戶物品的交互信息降維,并考慮標簽信息特征的重要性;(3)對于映射函數(shù)優(yōu)化時標記樣本過少的問題,利用種群信息標記非重疊用戶,并優(yōu)化映射函數(shù).
跨領域推薦中存在一種情況:在一個系統(tǒng)中,存在一個信息豐富的領域A和一個信息較稀疏的領域B,當A中的用戶進入B領域時,由于該用戶在B領域中沒有信息,因此會遇到冷啟動問題,例如電商的圖書領域和CD光盤領域,此時需要遷移A中的信息為用戶改善推薦效果.在本文中,將信息豐富的領域稱為源域S,信息稀疏的領域稱為目標域T.源域和目標域的用戶集合為US、UT,物品集合為VS、VT,標簽集合為BS、BT,評分集合為RS、RT.m為用戶數(shù)量,n為物品數(shù)量.圖書領域和光盤領域在現(xiàn)實情況下一般不會存在重疊的物品和標簽,但可能會存在一些重疊用戶,使用UO=US∩UT表示重疊用戶集合.
根據(jù)以上描述,給出問題的定義:假設存在兩個領域,源域S和目標域T.US∩UT≠?,VS∩VT=?,BS∩BT=?,目標是為源域中的非重疊用戶推薦目標域物品.
要將源域的用戶特征映射到目標域,首先要得到用戶的向量化表示.大部分方法(如矩陣分解[12])的用戶向量都依靠用戶-物品的交互矩陣得到.但在目標域中用戶-物品的交互矩陣一般較為稀疏,影響生成用戶向量的準確性.并且,根據(jù)上述方法生成的用戶向量得到的用戶種群難以確認種群中用戶偏好相似性,缺乏可解釋性.標簽作為用戶自己理解和添加的信息,一定程度上反映了用戶的興趣,可以更好地反映用戶的偏好信息.因此,本文主要依據(jù)用戶和物品交互過的標簽信息進行推薦.
由于用戶和物品的向量化表示形式相同,下面用源域用戶集合US為例,介紹源域用戶向量生成的過程.對于US來說,每個用戶的唯一標識是離散的,互相沒有關系,可以使用one-hot編碼表示[13],向量維度為US中用戶的數(shù)量.對于標簽而言,用戶通常會交互多個標簽,將其表示成multi-hot的形式.用戶在打標簽時是對某一物品標注,不僅是用戶自己標注的標簽可以作為標簽信息,用戶標注過的物品的其他標簽也可以作為用戶的信息表示.
如圖1所示,對于用戶1而言,除了標簽1外,標簽2、3也可以作為標簽信息.將標簽1稱為用戶1的直接標簽,標簽2、3稱為用戶1的間接標簽.
圖1 標簽關系表示Fig.1 Representation of label relation
同理,對于物品1而言,標簽1、2、3為直接標簽,標簽4為間接標簽.用戶和物品的標簽信息由直接標簽和間接標簽組成.
以用戶為例,標簽信息表示為b,包括直接標簽和間接標簽兩部分.直接標簽表示成multi-hot向量形式,用符號b表示,間接標簽為交互過的物品的直接標簽的向量集合,使用符號b'表示.b'=+...+,表示該用戶交互的第z個物品直接標簽表示.
其中α為超參數(shù),表示間接標簽在用戶表示中的影響力.以用戶1為例,=[1 0 0 0],b'=[0 1 1 0],最終的標簽信息為b=[1αα0].用戶信息的整體表示如圖2所示.
圖2 用戶信息的整體表示Fig.2 Overall representation of user information
同理,物品向量也由one-hot編碼和標簽信息表示,標簽包括物品本身的標簽以及與該標簽交互的用戶的其他標簽.
本文源域和目標域中用戶、物品表示向量的集合分別使用uS、vS、uT、vT表示.
在現(xiàn)實情況下,如在亞馬遜數(shù)據(jù)集中,用戶數(shù)量和物品數(shù)量都非常龐大,所以1.2節(jié)的用戶向量和物品向量都是一個非常稀疏的高維向量,難以直接使用.因此,本文提出一種降維方式,將高維向量降維.采用深度學習嵌入方法,借鑒雙塔模型的思想[14],通過深度神經(jīng)網(wǎng)絡(deep neural networks,DNN)處理稀疏向量.但如果直接將該向量輸入DNN中,會導致網(wǎng)絡參數(shù)過多.為了解決這個問題,將輸入向量分成兩個部分,如圖3所示.下面以源域中的用戶i和物品j為例,將上一節(jié)得到的用戶向量或物品向量和作為輸入(∈uS,∈vS),并將one-hot編碼部分和標簽編碼部分分別處理輸入隱藏層中:
圖3 深度學習降維方法Fig.3 Deep learning dimension reduction method
間的歐氏距離,表示用戶和物品的交互信息,使用戶與交互過的物品的距離更近.損失函數(shù)為
式中:W1為二元指示矩陣,表示用戶物品是否有交互,?表示公式中只考慮交互過的用戶和物品的信息,因為未交互過的用戶和物品距離不應該更近.將源域和目標域中用戶、物品表示向量集合uS、vS、uT、vT分別降維得到對應的降維向量集合yuS、yvS、yuT、yvT.
1.3節(jié)中得到了用戶和物品的低維向量表示,將源域和目標域的用戶yuS通過k均值聚類(k-means)算法分別生成k個用戶種群,其中用戶之間的距離使用歐氏距離表示.
本模型生成映射函數(shù)將源域的用戶向量映射到目標域中.該函數(shù)反映了源域和目標域之間的關系.將重疊用戶在源域的向量映射到目標域中,并使它和目標域中交互的物品距離更近.通過重疊用戶在目標域中的交互信息優(yōu)化映射函數(shù)
式中:W2為二元指示矩陣,表示重疊用戶在目標域的交互信息;f()θ表示映射函數(shù),θ為全局參數(shù).
由于現(xiàn)實情況中一般只存在少量的重疊用戶,利用重疊用戶作為標記數(shù)據(jù)的有監(jiān)督的訓練方法難以很好地訓練模型,所以本文利用用戶種群關系標記非重疊用戶.如圖4所示,對于非重疊用戶來說,映射后的位置應該靠近同類的重疊用戶.
圖4 非重疊用戶映射Fig.4 Non-overlapping user mappings
因此,重疊用戶映射后在目標域的距離逼近原本的位置,而非重疊用戶則逼近同類重疊用戶.基于以上思想,給出用戶關系的損失函數(shù)為
其中:λ代表訓練時種群信息的權重,da代表種群a內(nèi)非重疊用戶映射后與該類重疊用戶的距離,k代表用戶種群個數(shù),da表示為
用戶映射函數(shù)的完全損失函數(shù)可以表示為
為了獲得映射函數(shù),本文采用隨機梯度下降法訓練參數(shù)θ.通過訓練集中用戶向量反向傳播訓練映射函數(shù)參數(shù),直到模型收斂.
當給一個源域用戶推薦目標域物品時,這個用戶在目標域沒有任何交互信息,相當于冷啟動用戶.推薦與映射用戶最接近的N個目標域物品,如用戶i和物品j的距離D使用歐氏距離表示為
通過計算冷啟動用戶i和目標域物品的距離,將物品按歐氏距離由低到高排序,得出目標用戶i的推薦列表,記為Ri={v1,v2,…,vn},最終選取前N個物品為目標用戶i進行推薦.
輸入:源域和目標域的用戶物品向量集合uS、vS、uT、vT.
輸出:推薦物品序列.
(1)特征降維:利用用戶物品的交互信息訓練深度學習模型,將uS、vS和uT、vT中元素兩兩成對輸入模型降維,得到降維后的向量表示yuS、yvS、yuT、yvT.
(2)源域用戶聚類:將集合yuS通過k-means聚類算法生成k個用戶種群.
(3)種群個性化映射:利用源域用戶yuS中種群信息和重疊用戶交互信息優(yōu)化映射函數(shù).
(4)生成推薦列表:將源域用戶yuS映射到目標域,計算用戶和目標域物品的歐氏距離,生成推薦列表.
實驗環(huán)境:16GB內(nèi)存,Windows10操作系統(tǒng),RTX 2060顯卡,Python3.6,機器學習框架TensorFlow 2.5.0.
實驗部分使用的數(shù)據(jù)集是亞馬遜數(shù)據(jù)集,該數(shù)據(jù)包含了42個不同的物品域,選取兩個類別:圖書和光盤.其中圖書域用戶數(shù)量為603668,光盤域用戶數(shù)量為75258;重疊用戶數(shù)量為16738.
將圖書域視為源域,光盤域視為目標域.數(shù)據(jù)集中的reviewerID字段作為用戶ID;asin字段作為物品ID;summary字段作為標簽.對原始數(shù)據(jù)集中的數(shù)據(jù)進行清洗,刪除交互少、孤立的數(shù)據(jù).對于非重疊用戶,在源域數(shù)據(jù)中去除了交互物品少于150的用戶、交互用戶少于150的物品和出現(xiàn)次數(shù)少于30的標簽.在目標域中去除了交互數(shù)據(jù)少于30的用戶和物品以及出現(xiàn)次數(shù)少于4的標簽.對于重疊用戶而言,去除了交互數(shù)據(jù)少于10的用戶.數(shù)據(jù)集統(tǒng)計信息見表1.
表1 數(shù)據(jù)集統(tǒng)計信息Tab.1 Data set statistics
對于目標域,選取30%的重疊用戶,刪除其所有的交互信息,將其作為冷啟動用戶(測試用戶)計算推薦準確性.在實驗中,為了解決對所有物品排名的耗時問題,在用戶沒有交互過的物品(負樣本)中隨機抽取999個物品,并評估交互過的物品(正樣本)的排名是否高于未交互物品(負樣本).為了探究重疊用戶數(shù)量對實驗結果的影響,在模型訓練時,對訓練集中的重疊用戶進行限制,分別選取重疊用戶的10%、50%和100%對模型進行訓練.為了消除實驗結果的偶然性,每組實驗分別進行10次并取平均值作為最終結果.
使用精確率(precision)和平均精度(mean average precision,mAP)衡量和評價推薦結果.精確率是廣泛用于推薦系統(tǒng)中的度量標準,精確率針對預測結果而言,表示預測為正的樣本中有多少是真正的正樣本.mAP是一種位置敏感的評價指標,反映每個用戶的平均精確率的平均值;推薦列表中相關物品越靠前,mAP就越高.
其中:P表示精確率;R(u)表示推薦列表;T(u)表示用戶實際交互的物品;Pav,i表示單個用戶平均精確率,針對的是一個用戶的排序結果;N1和N2分別表示j在命中列表和推薦列表中的排名;Pavm表示平均精度.
為了研究本算法的推薦效果,對模型中的幾個參數(shù)分別單獨測試它們對推薦效果的影響,包括聚類k值、降維的維度、間接標簽的權重α、q和p的比值、種群信息權重λ,并與幾組跨領域推薦的模型對比,分析模型的性能.
2.4.1 聚類k值
聚類k值對推薦結果的影響如圖5所示,即用戶聚類數(shù)目k值對冷啟動用戶top10推薦效果的影響.聚類k值表示源域用戶和目標域用戶的種群個數(shù),代表著用戶偏好的分類,聚類效果也影響著用戶偏好映射的準確性.推薦結果在k值大于8時持續(xù)下降,在k值為6時取得最高值.分析原因可能是當k值過大或過小時,源域和目標域的分類難以做到很好的對應,導致映射效果降低,因此在后續(xù)實驗中將k值設為6.
圖5 聚類k值對推薦結果的影響Fig.5Effect of clustering k value on the recommendation result
2.4.2 降維維度
在實驗過程中,選擇合適的降維維度非常重要,降維維度對推薦結果的影響如圖6所示.
圖6 降維維度對推薦結果的影響Fig.6 Effect of dimension reduction length on recommendation results
為了研究降維維度對實驗結果的影響,將降維維度逐漸增大,分別考慮降維到2、4、6、8時精確率和mAP的取值(圖6).隨著維度的提高,推薦結果準確性下降.在降維維度為2時,模型的性能表現(xiàn)最好.
2.4.3 間接標簽權重
間接標簽權重α代表著對間接標簽信息在用戶向量、物品向量中比重的大小,間接標簽權重對推薦結果的影響如圖7所示.
圖7 間接標簽權重對推薦結果的影響Fig.7 Effect of indirect label weight on recommendation results
由圖7可以看出,隨著間接標簽權重的提高,推薦精確率和mAP逐漸升高,達到最高點后開始下降.這主要是因為只考慮直接標簽難以反映用戶的全部偏好,適量加入間接標簽可以提高用戶偏好的描述準確性,而間接標簽為其他用戶打的標簽,有可能帶有與本用戶不同的偏好信息,過高的權重可能會放大間接標簽中的無關因素.
2.4.4 降維中q和p的比值
q和p的比值反映降維過程中標簽信息權重.q和p的比值對推薦結果的影響如圖8所示.
圖8 q和p的比值對推薦結果的影響Fig.8Effect of the ratio of q and p on the recommendation results
由圖8可以看出,標簽信息權重為4.5時效果最好,主要是因為標簽信息代表用戶的偏好和物品的類別,適當提高標簽信息的權重有利于得到更好的推薦結果,而過高的標簽信息權重可能會忽略用戶項目的標識信息.
2.4.5 種群信息權重
種群信息權重λ代表在訓練映射函數(shù)時,非重疊用戶信息的影響力大小.種群信息權重對推薦結果的影響如圖9所示.
圖9 種群信息權重對推薦結果的影響Fig.9Effect of population information weight on recommendation results
由于重疊用戶數(shù)量較少,適當提高非重疊用戶信息的權重,可以改善推薦效果.由圖9可知,在λ為0.75時效果最好;但非重疊用戶在目標域不存在用戶交互信息,所以過高的權重可能會影響映射的準確性.
2.4.6 消融實驗
為研究間接標簽和種群信息的有效性,在選取重疊用戶100%時,分別在缺失間接標簽和種群信息的條件下進行消融實驗,結果見表2.
表2 消融實驗結果Tab.2 Ablation experimental results
P@10、P@20分別代表精確率在top10和top20上的表現(xiàn),M@10、M@20分別代表mAP在top10和top20上的表現(xiàn).由表2可以看出,加入間接標簽信息明顯提高了模型的推薦精確率,因為用戶與物品的直接交互較少,直接標簽不能很好地代表用戶和物品的信息.而加入種群信息標記非重疊用戶,使映射函數(shù)的訓練不僅僅依靠重疊用戶,提高了映射的準確性,進而得到更好的推薦效果.
2.4.7 基線設置
為了評估算法性能,選取以下幾組不同的方法和本文提出的模型對比,以驗證本文模型的有效性.
EMCDR[9]:一個用于處理跨域推薦的嵌入和映射框架,通過潛在空間中的映射函數(shù)將源域和目標域中的用戶和物品投影到兩個不同的潛在空間中.
SSCDR[11]:一種基于半監(jiān)督方法的冷啟動用戶CDR框架,利用非重疊用戶的數(shù)據(jù)學習映射函數(shù).
PTUPCDR[10]:一個CDR用戶偏好個性化傳輸框架,學習一個由用戶特征嵌入組成的元網(wǎng)絡生成個性化的橋接函數(shù),以實現(xiàn)用戶偏好的個性化傳遞.
表3列出了各模型在top10和top20上的詳細數(shù)據(jù).EMCDR使用重疊用戶訓練映射函數(shù),受重疊用戶數(shù)量影響較大;本文模型利用種群信息解決非重疊用戶在目標域中信息較少的問題,對重疊用戶數(shù)據(jù)的依賴性降低.對于同樣利用非重疊用戶數(shù)據(jù)和利用用戶交互信息訓練模型的SSCDR和PTUPCDR,本文模型也表現(xiàn)出更好的推薦結果.
表3 不同模型的評價指標對比Tab.3 Comparison of evaluation indexes of different models
實驗表明,本文模型可以更好地應對真實情況下重疊用戶過少的問題,可以有效地為具有跨域信息的冷啟動用戶推薦物品.
本文通過將源域中的用戶偏好映射到目標域,提高用戶在目標域中的推薦效果,適用于為其他領域存在交互信息的冷啟動用戶進行推薦,如向電商平臺中已購買過某領域(如圖書)物品的用戶推薦目標域(如衣服)的物品.利用標簽信息獲得更準確的用戶偏好,經(jīng)過深度學習降維處理后將其映射到目標域,并通過種群信息利用非重疊用戶訓練映射函數(shù),提高映射準確性.通過大量的實驗,探究各個參數(shù)對實驗結果的影響,驗證了本文模型對重疊用戶數(shù)量的依賴更低,相較于基準實驗,有更好的推薦準確性.