社交推薦系統中的用戶交互

導讀: 近年來,社會性標籤系統使得用戶能夠以一種自由的描述方法對網絡上的資源進行協同標記。這些描述也被稱爲大衆分類法,它被表示爲標籤立方體。這些用戶的描述十分有用,因爲它們包含了有關用戶興趣的豐富知識。標籤立方體既可以獨立地被使用,也可以與評分矩陣相結合以提供推薦。前一類方法和推薦系統中的多維模型有相似之處。後一類方法可以是基於協作或基於內容的方法。目前已有各種不同的技術被提出,例如近鄰法、線性迴歸和矩陣分解。

01 背景

新一代網絡,也被稱爲Web 2.0,已經支持許多開放式系統的發展,用戶在其系統中能積極地參與並留下反饋。尤其是社會標籤系統 ( social tagging system ) ,它們允許用戶去創造和分享有關媒體對象的元數據。這樣的元數據也被稱爲標籤 ( tag )。用戶可以給被社交網絡支持的任何形式的對象做標籤,比如圖像、文檔、音樂或錄像。事實上,所有的社交媒體網站允許若干形式的標籤。以下是一些標籤系統的例子:

  • Flickr允許用戶使用關鍵詞去標記圖像。例如,一個關鍵詞可能描述了一個特定圖像中的場景或物品。
  • 網站"last fm"以音樂爲主題,並允許用戶標記音樂。
  • Dilicious促進了書籤共享和在線鏈接的發展。
  • Bibsonomy系統允許用戶共享並標記出版物。
  • Amazon網站曾允許其顧客標記物品。

去檢驗社會標籤網站 ( 例如"last fm" ) 所創建的標籤的本質是有啓發意義的。關於邁克爾·傑克遜的著名唱片《戰慄》,在"last fm"網站的熱門標籤如下:

“死前必聽的1001張唱片”、“20世紀80年代”、“1982”、“1983”、“80年代流行”、“唱片”、“我所擁有的唱片”、“我所擁有的黑膠唱片”、“避開”、“經典”、“流行經典”、“搖滾經典”、“黑膠貨箱”、“流行舞曲”、“迪斯科”、“史詩”、“戰慄”…

因爲這些標籤是在一個開放的供人分享的環境下由用戶而非專家所創建的,因此它們非常通俗日常。注意,“thirller” ( 戰慄 ) 是一個錯拼詞,在這樣的設置中,錯拼是非常常見的。此外,所有歌曲按照其標籤被創建了索引。例如,點擊"搖滾經典"的標籤,便可以訪問與此標籤有關的不同資源 ( 藝術家、唱片或事件 )。換言之,標籤"搖滾經典"如同書籤或索引一樣,能用其訪問相關資源。

這種標記過程,也被稱爲"大衆分類法",導致了對內容的組織和對知識的構建。“大衆分類法"這一術語源於它的詞根"民間"和"分類學”,因此該名字直觀地表示了這一過程,即是由非專業人士、志願者、參與者 ( 也就是普通民衆 ) 在萬維網上對網絡對象的分類。這個名字是由Thomas Vander Wal提出的,他對這個詞的定義如下:

“大衆分類法是:由個人自由地標記被檢索出的信息和對象 ( 任何附有URL網址的事物 ) 的結果。標籤在一個社交環境 ( 通常是共享以及向他人開放的 ) 中完成。大衆分類法是在人們在消費信息時對事物做標記而產生的。
這種外部標籤的值來源於人們運用自己的詞彙對事物添加明確的含義,這樣的含義可能來自於人們對該信息/對象所推斷出的理解。相比分類而言,人們更願意根據自己的理解來提供信息/對象的含義,從而把信息/對象關聯起來。”

另一個用於描述社會性標籤的術語包括協作標記 ( collaborative tagging )、社會分類 ( social classification ) 和社會索引 ( social indexing )。標籤提供了對對象主題的理解,其常常是通用並易於理解的詞彙。因此,社會性標籤的本質是:其參與者實際上是一筆財產,它們爲這樣的系統做出了協同合作的貢獻。標籤也被稱爲社會索引,因爲它們還起到了組織物品的作用。例如,通過點擊一個標籤,用戶能夠瀏覽和標籤相關的物品。

大衆分類法有許多的應用,包括推薦系統。在特定應用下的推薦系統,大衆分類法因爲其提供了關於對象的可用知識而十分有價值。儘管有時標籤對對象的描述是有噪聲的並且不太相關的,但至少每個標籤都能被看作是描述對象的一個特徵。雖然標籤具有噪聲,但觀察發現,通過對評分或其他數據源中的知識進行補充,社會標籤法能顯著提高推薦系統的有效性。

02 大衆分類法的代表

在標籤系統中,用戶用標籤來註釋物品 ( 或資源 )。而物品的特性取決於其所在的系統。比如對Flickr來說,其物品可能是一張圖片,或者對last.fm來說,一個物品即是一首歌。因此,在用戶、物品和標籤之間存在着一種三方關係。相應地,它可以被表示成一個超圖,其中每一個超邊連接着三個對象。它也可以被表示爲一個三維立方體 ( 或張量 ),其中包含着一個用戶是否已經爲一個特定物品 ( 如圖像 ) 標記了一個特定的標籤 ( 例如,“風景” ) 的一元二進制信息。如果標記了,則對應的位設爲1,否則對應位設爲未指定的 ( unspecified )。在許多情況下,爲了分析的目的,我們將未指定的值約等於0。圖中給出了一個由超圖和張量表示的由6個用戶、4個物品 ( 圖像 ) 和5個標籤構成的小例子。圖a給出了超圖的表示,而圖b給出了三維立方體的表示。例如,Ann將物品2標記爲"花朵",這在圖a中則表示爲對應三個實體之間的一條超邊,而在圖b中則表示爲對應位被設置爲1。大衆分類法的形式化定義如下:

給定m個用戶、n個物品和p個標籤,其大衆分類法是一個大小爲m×n×p的三維數組F=[fijk],fijk是一個一元的數值,表明用戶i是否將物品j標記爲第k個標籤。換言之,fijk的值被定義如下:

在實際設置中,未指定的值被默認設置爲0,如果在高度稀疏的隱式反饋中的設置一樣。今後,我們將用F表示 “標籤立方體”。從下圖可以看出,大衆分類法和上下文敏感的推薦系統中的多維表示形式有很多共同點。我們在後面將會看到,這種共同點十分有用,因爲可以用上下文敏感的推薦系統中的許多方法來處理其中一些查詢。

儘管圖中是一個小例子,而實際的社交平臺上,用戶和物品的數量會是數以億計的,例如Flickr,而標籤的數量大約有百萬個。因此,這樣的系統在數據豐富的環境中面臨着可擴展性的挑戰。對於社會性標籤推薦系統來說,這樣的問題既是我們的挑戰,但同樣也是機遇。

03 社會性標籤系統中的協同過濾

推薦的形式依賴於應用的類型。對一些網站,例如Flickr,其標籤信息可用但評分信息並不可用。在這樣的情況下,仍可以開發一個基於標籤立方體對標籤或者物品進行推薦的系統。在其他一些情況下,m×n的評分矩陣R和m×n×p的標籤矩陣F都是可用的。其評分矩陣和標籤立方體都定義在相同的用戶集合和物品集合上。例如,MovieLens網站既包含了評分信息,也包含了標籤信息。其相應的協同過濾系統被稱爲標籤已知的推薦系統,其中評分矩陣是主要數據,而標籤信息則提供了額外的輔助信息來提高評分預測的精確度。注意,評分矩陣可以是一個隱式反饋矩陣,例如對於網站lastfm,用戶對物品的訪問歷史都被記錄下來。事實上,隱式反饋在社會性標籤網站中更加普遍。從算法角度來看,隱式反饋模型因其通常不包含負評分,未知項通常被設爲是0作爲近似,而更易使用。在下文中,除非另作說明,我們將假設存在一個明確的評分矩陣。

當評分矩陣可用時,協同過濾查詢的形式比只有標籤信息可用時的查詢形式要豐富很多。在這種情況下,標籤立方體和評分矩陣的用戶和物品維度相同,但評分矩陣不包含標籤這一維度。爲了提供推薦,這兩處來源的信息被集成到一起。值得注意的是,這一方法可以被看作是基於內容的協同過濾應用的泛化。在基於內容的協同過濾中,關鍵詞只與物品關聯,然而在標籤立方體中關鍵詞與"用戶物品"的組合關聯。可以將基於內容的推薦系統看成是標籤立方體的一個特例,在這其中"物品標籤"的二維切片對於每一個用戶而言是完全相同的。因此,後面章節討論的許多方法也能被用於基於內容的協同過濾。

由於應用的多樣性,協同過濾問題的形式也多種多樣,而當前的研究工作並沒有完全都涵蓋。實際上,仍有許多的協同過濾問題有待研究,正巧這也是近期的熱門研究領域。下面給出了一些查詢的例子:

  1. ( 只有標籤數據 ) 給定一個m×n×p的標籤立方體F,推薦:
    • 給用戶i一份標籤排序表。
    • 給用戶i一份有着相同興趣 ( 標籤模式 ) 的用戶排序表。
    • 給用戶i一份物品的排序表。
    • 給用戶i一份關於物品j的標籤排序表。
    • 給用戶i一份符合k標籤語境的物品排序表。
  2. ( 有標籤數據和評分矩陣 ) 給定一個評分矩陣R和一個m×n×p的標籤立方體F,推薦:
    • 給用戶i一份物品的排序表。
    • 給用戶i一份符合k標籤語境的物品排序表。

上述的查詢可以被分成兩類。第一類查詢並不使用評分矩陣。在這樣的查詢中,對標籤和用戶的推薦比對物品的推薦更爲重要,儘管其方法也可能被用於物品推薦。因爲標籤充當着資源 ( 物品 ) 的書籤和索引,所以尋找相關的標籤也是尋找相關物品的一種方法。第二類查詢與傳統推薦系統關聯更緊密,因爲它們主要是基於評分矩陣R。與傳統推薦系統唯一的不同之處在於,標籤立方體被當作輔助信息使用,並因其中包含了噪聲,故扮演着一個次等的角色。這樣的方法也被稱爲"標籤推薦"或"提供標籤的協同過濾"。此類系統最主要的優勢在於它們能將用戶評分和標籤活動的這兩個重要的方面整合在一起。一般來說,第二種類型的查詢方法較少,但有越來越多的方法可以把評分矩陣和標籤立方體的知識集成到一起。值得一提的是,可能並沒有明確的評分矩陣,可用的只有隱式反饋 ( 例如,購買行爲 ),那麼矩陣R就是一個一元評分矩陣。注意,即使R是隱式反饋得來的,它仍然是獨立於標籤立方體的數據。

04 選擇有價值的標籤

由於對標籤的創建和使用都是開放式的,因此標籤通常有很多噪聲。在許多情況下,用戶可能會使用不規範的詞彙或錯拼詞去標記物品。這就導致出現了很大比例的噪聲和不相關標籤。若使用不相關的標籤,將會對許多推薦應用產生有害的影響。因此,預先挑選出一個小規模的標籤會帶來幫助。從計算複雜性來說,對標籤的預先選擇也減少了數據挖掘過程中的計算。因此,標籤選擇算法通常是基於簡易的規則對標籤進行排序並依據這些標準預先挑選出排在前面的標籤。

許多標籤網站會使用一種簡單的方法,被稱爲"數量物品應用"。該方法用給一個物品添加一個特定標籤的人數來估計未來會有多少人願意看到這個標籤。這個評估也可以看作是該標籤的權重。還有其他一些啓發式的特徵常常被用於評估標籤的質量。例如,一些標籤可能是全局有價值的,而其他一些標籤可能只針對特定物品。參考S.Len, J.Vig, and J.Riedl. Learning to recognize valuable tags中提出了大量的這樣的特徵來評估標籤的質量。下表中列出了其中一些特徵。標籤的特異性 ( 全局或局部 ) 也被指明。值得一提的是,其中某些特徵假設用戶對標籤進行了"喜歡"或"不喜歡"的評分。這樣的信息並不在所有系統中都有用,因此在下表中並沒有包括這類特徵。實驗結果發現:在例如數量物品應用、標籤共享和平均比例物品被標記這類特徵上的推薦性能很好。另一方面,對於其他一些特徵,例如數量應用、數量用戶和標籤長度,其推薦性能並不是最佳。進一步地,如果把5個最好的特徵合併爲一個特徵,被稱爲"全部隱式",會使得系統的性能比使用單一特徵時更好。

05 無評分矩陣的社會性標籤推薦

這種情況也可以被看作是在上下文敏感推薦系統的多維模型的一個特例。標籤立方體可以被看作是一個多維立方體,其中標籤表示上下文。因此,上下文敏感模型可以用來解決這些查詢。事實上,從原則上講,被用於上下文敏感排序的張量分解模型與標籤推薦中的張量分解模型沒有太大區別。

如前面所討論的,在社會標籤推薦中的查詢可以有多種形式,可能是推薦物品、者標籤或者用戶。標籤立方體是三維的,且人們可能從各種維度上做推薦。在這些不同的形式中,推薦標籤是最常見的。這樣做的原因是推薦標籤對用戶和平臺都是有益的:

對平臺的效用: 由於標籤不規範,不同的用戶對同樣的物品 ( 資源 ) 可以使用不同的關鍵詞描述。對一個特定物品推薦標籤有助於鞏固其描述。這種隱式描述的鞏固有助於系統收集更好的標籤,因此需提高推薦的質量。

對用戶的效用: 可能會根據一個物品向用戶推薦標籤,也可能根據用戶的興趣對用戶推薦標籤。基於物品的標籤推薦的動機是:用戶可能會覺得給物品添加標籤很麻煩。當對一個給定物品推薦相關標籤時,這使得他們的工作變得更容易,而且他們更有可能參與對物品標記的過程。相應地,系統也因此收集到更多的標籤數據。對特定用戶的標籤推薦是有益的,因爲標籤的目的常常是對不同用戶個性化地組織物品。例如,圖11-6可能代表瞭如Flickr的圖像瀏覽環境。如果根據Ann的其他標籤,Ann被推薦了標籤天空 ( sky ),通過點擊這個標籤,她可能會發現其他感興趣的物品。也可以將標籤數據與評分矩陣相結合,得到高質量的推薦。

以下部分回顧了已經提出的用於在社會標籤系統的各類推薦方法。

1. 上下文敏感系統的多維方法

採用多維方法可用於構建社會性標籤推薦系統。其基本思想是在查詢的一對特定維度上對數據進行投影,然後在三個維度上使用基於內容查詢的預過濾方法。

例如,爲了給特定用戶推薦最佳標籤,可以對不同物品上的標籤的頻率做聚集。換句話說,就是計算一個用戶在所有物品上使用特定標籤的次數。這就產生了一個二維的用戶標籤的非負頻率矩陣。任何傳統的協同過濾算法可以用在該矩陣上給特定用戶來推薦標籤。這是給用戶推薦標籤的最好的方法,但它們不使用物品信息。儘管如此,這種方法在現實生活中仍很有用。由於標籤還有索引功能,標籤可以被用於發現用戶感興趣的資源。類似地,沿標籤維度對頻率的聚集導致產生了一個用戶物品矩陣。這個矩陣能夠被用於向用戶推薦物品。

使用這些聚合方法的一個缺點是,沿着某一維的信息會被忽略。也可以在推薦過程中,整合所有維度的信息。假設我們要給一個特定用戶推薦最佳的標籤或最優的物品。其中一種方法就是基於聚集的用戶標籤矩陣來計算用戶之間的相似度。同樣,也可以在聚集的用戶物品矩陣上做這樣的計算。兩個測度的線性組合被用於生成一個和目標用戶最相似的用戶。接着,可以使用標準預測方法來推薦最相關的物品或者最相關的標籤。類似的方法也可以被用於基於物品的協同過濾。即從一個目標物品開始,根據聚集的用戶物品矩陣或者聚集的標籤物品矩陣,找到和它最相似的物品。

另一個有用的查詢是針對某個特定標籤的上下文向用戶做物品推薦。上下文敏感系統中的預過濾和後過濾方法可以被用於實現這一目標。例如,如果想要推薦和標籤"animation" ( 卡通片 ) 相關的電影,那麼對應着"animation"的標籤立方體的切片就可以被提取出來。這個過程會產生一個關於卡通電影的二維的用戶物品矩陣。傳統的協同過濾算法可以被用於該矩陣來做推薦。使用該方法的一個挑戰是所提取的用戶物品切片可能會過於稀疏。爲了解決稀疏性問題,可以將相關的標籤分成一組,即標籤的聚類。例如,一個標籤類可能包含"animation"“children” ( 兒童 ) “for kids” ( 給小孩的 ) 等。這些相關標籤對應的用戶物品的標籤頻率可以被加和到一起構成一個聚集的用戶物品矩陣,這比之前的矩陣要稠密。從而可以在這個聚集的矩陣上做有效的推薦。

2. 基於排名的方法

基於排名的方法使用PageRank的方法,以便在有標籤的情況下做出推薦。其中有兩個著名的方法:FolkRank和SocialRank。FolkRank和SocialRank之間的主要區別在於,SocialRank在排名過程中還使用了對象之間以內容爲中心的相似性。例如,可能基於圖像內容的相似性在兩個圖像之間添加鏈接。此外,SocialRank可以被應用於任意的社交媒體網絡,而不只是帶標籤的超圖。爲了對不同形式的效果進行平衡,SocialRank算法相比PageRank算法有了顯著的變化。該方法也能被應用於大衆分類 ( folksonomy )。而FolkRank是專門爲大衆分類中帶標籤的超圖而設計的。在此我們將集中描述FolkRank方法。

FolkRank是個性化PageRank算法的簡單調整。應用FolkRank的第一步是從標籤超圖中提取一個三分圖。從標籤超圖中提取的三分圖G=(N, A)描述如下:

  • 每個標籤、用戶和物品成構成圖G的一個結點。換句話說,每個i∈N爲一個用戶、標籤或物品。因此,對於m個用戶、n個物品和p個標籤,圖G中包含 ( m+n+p ) 個結點。
  • 對於標籤、用戶和物品之間的每條超邊來說,其中每對實體之間都會添加一條無向邊。因此,每個超邊對應會添加三條邊。

然後在該網絡上直接應用個性化的PageRank方法。個性化向量被設置爲:喜歡的物品、用戶或標籤具有更高的重啓概率。通過對重啓概率的不同設置方法,可以對特定的用戶、標籤、物品、"用戶物品"對、"用戶標籤"對或"標籤物品"對進行查詢。對查詢響應的形式也可以不同。作爲這一進程的結果,高排名的標籤、用戶和物品對網絡中相關結點提供了不同的觀點。FolkRank的一個重要特點是,它在特定用戶相關性中加入了對全局流行度 ( 聲望 ) 的考慮。這是因爲所有的排名機制傾向於選擇高聯通度的結點。例如,即使在個性化的PageRank機制中,一個被大量使用的標籤也總是被排得很靠前。重啓概率的值在特異性和普及性之間權衡。爲了取消這些因素產生的作用,差異版本的FolkRank被提出。其基本思路是執行以下步驟:

  • PageRank在被提取出的三分圖上進行無偏計算。換言之,所有結點的重啓概率都是相同的值:1/(m+n+p)。回想一下,標籤立方體的大小爲m×n×p,網絡中的結點數是 ( m+n+p )。令所得的概率向量爲π1。
  • 對於被查詢的特定的"用戶—物品"組合,個性化的PageRank設置一個增加的偏差。例如,考慮對一個特定"用戶—物品"組合的查詢。令被查詢的用戶結點的重啓概率正比於(m+1)/(2m+2n+p),被查詢的物品結點的重啓概率正比於(n+1)/(2m+2n+p),剩餘結點的重啓概率正比於1/(2m+2n+p)。令所得的概率向量爲π2。
  • 結點的相關性可以從向量π2—π1中提取。其值可能爲正也可能爲負,這取決於相似性或不相似性的程度。

這種方法的主要優點是,它在很大程度上抵消了全局流行度的影響。

3. 基於內容的方法

基於內容的方法既可以向用戶推薦物品也可以向用戶推薦標籤。爲了將物品推薦給用戶,可以創建一個特定用戶的訓練數據集,訓練集中對每個物品的描述被表示成m個用戶描述該物品所使用的標籤的頻率。這些頻率可以用tf-idf格式來表示。對於一個給定的用戶,其訓練數據中包含所有標記的物品,和一個沒有添加任何標籤的物品的負樣本。這些對象的標記頻率需要被學習。特徵變量和因變量 ( 學習處理過程中 ) 對應於每個物品的tf-idf表示,以及標籤的用戶給每個物品標記的標籤數目。注意到對負樣本來說,因變量爲0。我們在該訓練數據集上使用基於迴歸的模型來進行預測。

類似的方法可以用於推薦標籤給用戶。其主要區別是標籤被表示爲物品的tf-idf向量而非其他形式。訓練集把標籤當作對象進行分類。因此,根據用戶在不同物品上使用標籤的次數,可以對標籤進行標記。這個訓練集被用於在用戶興趣未知的情況下預測用戶對標籤的興趣。

一個基於標籤聚類的物品推薦算法:該算法根據標籤的tf-idf描述來創建簇。換句話說,每個標籤被視爲物品頻率的向量,然後這些向量被用於創建m個簇。聚類爲用戶興趣和物品之間的關聯性的度量和集成提供了中間表示形式。

令第s個簇中的第i個用戶的興趣記爲ucW(i,s),第j個物品 ( 資源 ) 和第s個簇的關聯度被記爲rcW(j,s)。ucW(i,s)被定義爲用戶i所使用的標籤在第s個簇所佔的比例,rcW(j,s)被定義爲物品j的標籤在第s個簇中所佔的比例。那麼用戶i對物品j的總的興趣I(i,j)的計算如下:

下圖展示瞭如何把簇當作中間步驟來計算用戶對物品的興趣。注意,這樣的興趣值可以被用作物品推薦排名。其基本思想是簇爲稀疏的用戶物品標籤行爲提供了一個更具健壯性的總結,可以被用於高品質的興趣計算。

此外,根據用戶的標籤查詢向用戶提供個性化的物品推薦。例如,如果Mary搜索"動畫",她得到的推薦電影可能和Bob搜索"動畫"得到的推薦電影並不完全相同。對於給定的查詢標籤q,它和物品j的相似度S(j, q)的定義如下,它是根據物品j被標記爲標籤q的頻率fjq同物品j被標記爲其他標籤的頻率相比較來定義的:

對於一個特定用戶i的搜索,雖然S(j, q)的值也可直接被用於物品排名,但我們需要利用用戶興趣I(i, j)對結果進行個性化。I(i, j)的值使用公式 ( 11-15 ) 計算。因此,查詢結果按照S(j, q)×I(i, j)而非S(j, q)排序。值得注意的是,對標籤查詢的物品推薦不一定需要對特定用戶進行個性化,我們可以簡單地使用S(j, q)來排序物品。進一步地,對物品推薦標籤也同樣不需要進行個性化。可以簡單使用物品的標籤特徵爲用戶做推薦。在這種情況下,被推薦的標籤取決於被查詢的物品,而不會依賴於進行查詢的用戶。事實上,最早的關於標籤推薦的研究工作就使用標籤和物品同時出現的統計信息來做推薦。因此,其結果也並不依賴提出查詢的用戶。

類似地,還有一種以內容爲中心的使用潛在狄利克雷分佈模型 ( LDA ) 的推薦方法。該方法把每個物品看作一個包含標籤 ( 或"單詞" ) 頻率的"文檔"。和傳統的文檔主題生成模型類似,該方法按下面的關係表示了第q個標籤和物品j的關聯:

在這裏,K表示主題的數量,這是一項由用戶定義的參數。注意到公式 ( 11-17 ) 的左邊提供了一個以排序爲目的的推薦概率,而右邊的量可以通過LDA方法中的參數學習來進行評估。沒有必要使用LDA做主題建模。例如,可以用更簡單的概率隱語義分析 ( PL-SA ) 模型來替換LDA。注意,我們也可以把用戶所使用的標籤看作"文檔",利用主題建模方法對這些用戶按照主題進行聚類,從而實現推薦的個性化。在確定了主題以後,我們可以按如下方法計算不同標籤和每個用戶的關聯度:

注意,公式 ( 11-18 ) 相較於公式 ( 11-17 ) 使用了一個不同的主題集合,前者對用戶聚類,而後者對物品聚類。給定用戶i的個性化內容,公式 ( 11-17 ) 和公式 ( 11-18 ) 的線性組合可以被用來確定標籤q和物品j的相關性。這一線性組合的權重確定了用戶特異性和物品特異性之間的權衡。

還有一些其他的方法,通過在主題建模過程中利用貝葉斯的思想來組合用戶特異性和物品特異性。特別地,我們可以直接計算個性化的和特定物品的推薦概率P(Tag=q|User=i,Item=j)。使用樸素貝葉斯規則,可以將此概率簡化爲如下:

注意到,以上我們忽略了分母的項:P(User=i,Item=j)。這是因爲我們希望在特定用戶和物品的情況下,按照標籤推薦概率來排列不同的標籤。因此,這一常數項可以在排序過程中被忽略。

現在,上述公式右手邊的P(User=i|Tag=q)和P(Item=j|Tag=q)可以依據用戶推薦概率和物品推薦概率,運用貝葉斯規則表示爲:

因此,將這些項代入公式 ( 11-21 ) 中,我們可獲得如下:

類似於任何貝葉斯分類器,公式右邊的項可以很容易地以數據驅動的方式被估計。例如,P(Tag=q)的值可以被估計爲標籤立方體中第q個標籤對應的非空項所佔的比例。P(Tag=q|User=i)的值可以被估計爲標籤立方體中用戶i對應切片上第q個標籤所對應的非空項所佔的比例。P(Tag=q|Item=j)的值可以被估計爲標籤立方體中物品j對應切片上第q個標籤所對應的非空項所佔的比例。拉普拉斯算符也經常用於避免過度擬合。

06 使用評分矩陣的社會性標籤推薦

當標籤作爲物品評分的附加信息被加入系統時,它對提高推薦的質量具有巨大的潛力。例如,設想一個情節,Mary已觀看了《Shrek》和《Lion King》這樣的許多被評分網站 ( 例如IMDb ) 標記爲"動畫"的電影。然而,Mary也許還未在標籤立方體中標記任何這樣的電影,這些喜好是通過評分矩陣得到的。

現在設想一個情景,有一部電影,例如《Despicable Me》,也被標記爲"動畫",但Mary並沒有看過這部電影。在這樣的情況下,可以合理地猜測Mary可能會對《Despicable Me》感興趣。即使評分矩陣也提供了同樣的預測,但是當加入標籤信息的時候其預測的錯誤率降低了。這是因爲標籤提供了獨立於評分數據的信息。尤其是對於新電影來說,往往沒有足夠的評分或者標籤來對用戶的喜好做預測。在這樣的情況下,評分和標籤可以互補,使其做出更有健壯性的判定。在絕大多數的情況下,標籤系統在評分矩陣中包含了隱式評分 ( 例如用戶是否瀏覽過一個物品 )。這是因爲像"last.fm"這樣的網站能夠自動地將用戶對物品的瀏覽記錄保存下來。注意,隱式評分是一項獨立的信息來源,因爲一個用戶可能瀏覽過一個物品,但卻沒有對它進行標記。在這一節中,我們將學習隱式和顯式評分這兩種情況。

一種最直接的方法是使用混合式推薦系統將基於標籤的預測和基於評分的預測進行結合。例如,在第5節中討論的任何方法,可以被用於基於標籤做預測。此外,任何傳統的協同過濾算法可以進行基於評分的預測。對兩類評分的加權平均可以被用於做最終的預測。權重可以使用混合式推薦系統中討論的方法來學習。然而,這樣的方法並未將兩個來源的預測密切地統一起來。將不同來源的數據密切統一的算法可能會獲得更好的結果。

1. 基於近鄰的方法

參考Tag-aware recommender systems by fusion of collaborative filtering algorithms 中的方法適用於隱式反饋數據集,其評分矩陣被設爲一元的。這在社會性標籤系統中很常見。例如,在像諸如"last.fm"的網站中,用戶對物品的訪問記錄是可獲取的,但顯式的評分不能被獲取。此論文中將未知項設爲0。因此,評分矩陣R被看作一個二元矩陣而非一元矩陣。

通過創造附加的僞用戶和僞物品,Tag-aware recommender systems by fusion of collaborative filtering algorithms利用m×n×p標籤立方體F的數據對m×n的評分矩陣R進行增廣。例如,可以在基於擴展物品集的評分矩陣上使用基於用戶的協同過濾。爲了創建一個物品維度被擴展的評分矩陣R1,每一個標籤被看作是一個僞物品。此外,如果用戶至少使用了一次該標籤 ( 可年能對多個物品而言 ),那麼用戶標籤組合的值被設爲1。否則,該值被設爲0。注意,一共有m×p個用戶標籤組合。通過將標籤看作新的僞物品,可以將m×p個組合添加到m×n的評分矩陣後面。這就產生了一個大小爲m×(n+p)的擴展的矩陣R1。可以利用這個擴展矩陣來計算用戶i和其他用戶的相似度。因爲附加列上包含了用戶標籤的活動信息,所以用於相似度計算的信息得以豐富。用戶i對物品的評分通過i的相似用戶羣對應1的個數來計算。預測評分 ${\hat r}^{{\rm item}}_{{\rm ij}}$ 被歸一化,使得它們表示訪問 ( 或購買 ) 不同物品的概率。注意,在隱式反饋中評分表示了活動的頻率。

可以用類似的方法來擴展基於物品的方法。在這個情況下,一個p×n的對應"標籤物品"組合的矩陣被創造出來。如果物品被某標籤標記過至少一次,那麼此矩陣中的值爲1。現在標籤被看作是僞用戶,因此在原始評分矩陣R上需要附加行。這導致了一個大小爲(m+p)×n的擴展矩陣R2。這一擴展矩陣被用於執行基於物品的協同過濾的相似度計算。然後對於一個給定的用戶i,預測評分 ${\hat r}^{{\rm item}}_{{\rm ij}}$ 將被歸一化,使它們在所有j上求和爲1。因此,在這個情況中,預測的評分也表示了訪問或購買物品的概率。

在完成基於用戶的和基於物品的協同過濾後,通過一個參數λ∈(0,1)將兩種評分預測進行如下融合:

λ的最優值可使用交叉驗證法來選擇。Tag-aware recommender systems by fusion of collaborative filtering algorithms 中的結果展示了加入標籤信息後對傳統協同過濾的性能的提升。爲了實現標籤信息的嵌入,將基於用戶的和基於物品的方法進行融合是必不可少的。

2. 線性迴歸

在推薦過程中使用了線性迴歸的方法來嵌入標籤信息。相比用戶評分,標籤在識別用戶喜好方面的精確性較差,因此選取對於推薦過程中唯一有價值的標籤是十分重要的。爲了達到這個目標,可以利用第3節所描述的方法。這裏採用的基本方法是通過融合用戶評分的信息來補充用戶對不同物品的標籤的喜好信息。例如,如果一個用戶已對《Lion King》和《Shrek》有了高評分,且兩部電影都被標記爲"動畫",那麼可以推測出這個用戶很有可能對於這一標籤的電影感興趣。該方法的第一步是確定物品和標籤之間的相關性權重。例如,在剛剛的表中任何"物品標籤"的特定概率可以被當作相關性權重。設qjk是物品j對於標籤k的相關性,第二步是用s型函數將其轉化成物品對標籤的偏好值:

之後,結合"標籤物品"關聯性和用戶對於物品的興趣,來計算用戶i對於標籤k的偏好uik。可以使用評分矩陣R=[rij]來推導出用戶對物品的偏好。用戶i對標籤k的偏好uik可以按如下推導:

以上公式的分子和分母中忽略了沒有被用戶i評分的物品。當評分不可用時,uik的值也可以通過用戶的訪問、點擊、購買、給物品做標籤的頻率的相關信息間接推導出。例如,在公式 ( 11-26 ) 中rij的值可以爲用戶對物品j標記的次數 ( 並不一定是標籤k )。

一個預測物品j對用戶i的偏好值pij的簡單方法是:確定物品j上的所有標籤的集合Tj,並對Tj中所有標籤r求uir的平均值:

注意,pij的值可能不在評分的取值範圍中。儘管如此,仍然可以利用pij對物品進行排序。

一個預測評分更加有效的方法是使用線性迴歸。其基本思路是假設用戶i對物品j的評分rij是基於一個線性關係,當固定j,把i當作變量時,這個假設是成立的。

其中 ( 未知 ) 係數wjr表示標籤r對於物品j的重要度,且它能通過對物品j的所有已知評分用迴歸方法學習得到。它與公式 ( 1-27 ) 中最主要的不同點在於,對標籤r不再使用一個啓發式的權重值vjr ( 對物品j ),而是在評分矩陣上使用線性迴歸學習得到權重值wjr。該方法因其更好的監督性而更爲優勝。因爲迴歸訓練過程中使用了所有用戶對物品j的評分,所以這一方法運用了不同用戶評分的協作力量。此外,相比傳統的協同過濾算法,這一方法具有更好的結果,因爲它在推薦過程中使用了標籤這一輔助信息。在一個混合系統中,如果將這一方法和一個簡單的矩陣分解法相結合則會產生更好的結果。研究結果表明在訓練過程中迴歸支持向量機方法的結果最佳,而最小二乘法迴歸可作爲一個簡單的替代。

3. 矩陣分解

一種矩陣分解的方法被稱爲TagiCoFi,可以將評分矩陣R近似分解爲兩個矩陣,一個m×q的矩陣U和一個n×q的矩陣V。此條件可以被表達爲如下:

對R中的已觀測項,可以通過對Frobenius範數g(U, V, R)=‖R-UVT2近似最小化來實現該條件。

另外,一種相似性約束被應用於用戶因子矩陣U,使得有相似標記行爲的用戶有着相似的因子。令Sij爲用戶i和j之間的相似性,並令ui爲U的第i行。爲了確保有着相似標記行爲的用戶有着相似的因子,我們想要將下列相似性目標函數f(U)最小化:

因爲有兩個不同的目標函數g(U, V, R)和f(U),我們引入平衡參數β,用於將g(U, V, R)+βf(U)最小化。此外,我們在矩陣分解 ( 對Frobenius範數求和 ) 中有標準正則項,其正則項爲λ(‖U‖2+‖V‖2),λ爲正則化參數。將這些不同的項求和,我們將獲得以下目標函數:

在所有的矩陣分解法中,梯度下降法被用於求解矩陣U和V。β和λ的值可以用交叉驗證法來計算。

值得注意的是,此法在技術上與信任推薦系統中的社會正則法相似。在其方法中,一個信任矩陣T被用於在目標函數中增加相似項∑i,j:tij>0tij‖ui-uj2

在這裏,標籤相似性矩陣被用於增加項:

換句話說,在用戶i和j之間的信任/趨同性被用戶i和用戶j之間的標籤相似性Sij所替換。因此,相同技術模型的較小變化可以被用於解決不同的社交推薦場景。此外,與其要求基於標記行爲的用戶因子更加相似,我們也可以要求基於標記行爲的物品因子更加相似。

計算標籤相似性

上述方法需要計算用戶i和用戶j之間的標籤相似性Sij。首先,由標籤立方體F生成tf-idf矩陣,其中用戶使用一個特定標籤的次數被計算出來。換句話說,所有特定的"用戶標籤"組合的1的個數被求和。因此,對每個用戶會生成一個頻率向量。然後,利用信息檢索中的標準tf-idf歸一化方法將該頻率歸一化。參考TagiCoFi: tag informend collaborative filtering中提出了幾種計算相似性的不同方法:

Pearson相似性: Pearson相關係數ρij 是根據用戶i和用戶j使用的所有標籤計算得出。兩者都未使用的標籤忽略不計。Sigmoid函數被用於將相關係數轉化爲一個在(0,1)的非負相似性Sij

餘弦相似性: 頻率向量之間的標準餘弦相似性被用作相似度值。

歐幾里得相似性: 歐幾里得距離dij在相似性向量之間計算,然後用一個高斯函數將歐幾里得距離轉化爲一個取值在(0,1)的相似度值:

在這裏,σ是一個用戶控制的參數,可以通過交叉驗證來選擇該參數。在TagiCoFi: tag informend collaborative filtering的結果中,Pearson相似性表現最優,歐幾里得相似性表現最差。

4. 基於內容的方法

社會性標記方法對使用基於內容的方法提供了一個直截了當的途徑。對於一部電影的標籤的頻率向量可以被看作是對該電影的描述。用戶對電影做出的評分可以被看作是用標籤定義的特徵空間上的訓練樣本。評分被看作標籤類。通過該訓練樣本可以構建特定用戶的訓練模型。該模型被用於預測用戶對其他電影的評分。使用分類還是迴歸模型取決於評分是一元的還是基於區間的。這樣基於內容的模型也可以與任何上述的協同系統相結合。

介紹一種在IMDb數據集上的簡單的基於內容的推薦模型。它使用標籤雲的概念來表示基於標籤的電影描述。各個關鍵詞根據其相關性加權,然後和用戶評分結合,以做出最終的預測。使用基於內容的方法的一個挑戰是,大量同義性詞導致了標籤的噪聲很大。可以使用語言學方法消歧,然後與樸素貝葉斯分類法相結合。此外,利用特徵選擇法去提高表達質量也是十分有益的。

注:爲了保證閱讀的流暢性,本文略有刪減,參考資料請參見原書。

今天的分享就到這裏,謝謝大家。

——本文摘自機械工業出版社華章圖書

《推薦系統:原理與實踐》

本文來自 DataFunTalk

原文鏈接

https://mp.weixin.qq.com/s?__biz=MzU1NTMyOTI4Mw==&mid=2247503167&idx=1&sn=4bcea1a5d9dcc75852d3ef19a042a39d&chksm=fbd77f53cca0f645b635c6e2bbe0f365fdc6628fe8827ced480ab35b42542bbc642d797d21d4&scene=27#wechat_redirect

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章