協作篩選功能

為瞭解決內容型篩選的某些限制,協作式篩選會使用使用者和項目之間的相似性來提供建議。這可讓您執行語意建議;也就是說,協作篩選模型可根據類似使用者 B 的興趣,將項目推薦給使用者 A。此外,系統會自動進行嵌入,不需要依賴特徵的手動工程。

電影推薦範例

假設某個電影推薦系統由訓練資料組成,當中包含以下意見回饋矩陣:

  • 每一列都代表一個使用者。
  • 每一欄代表一個項目 (電影)。

電影意見回饋分為以下兩個類別之一:

  • 明確:使用者可透過提供數值評分來指定特定電影的喜歡程度。
  • 隱式:如果使用者觀看電影,系統會推斷使用者感興趣。

為簡化說明,我們會假設意見回饋矩陣為二進位檔;也就是說,如果這個值為 1,表示對電影感興趣。

當使用者前往首頁時,系統應根據兩者推薦電影:

  • 與使用者過去喜歡的電影相似
  • 使用者喜歡的電影

為了方便說明,讓我們手動為下表說明的電影進行一些工程設計:

電影 評分 說明
黑夜騎士 PG-13 《蝙蝠龍》致力於為 Gotham City 帶來續航力,在這場續作大戰中展開《黑暗騎士》 挑戰。
《哈利波特:神秘的魔法石》 PG 一位孤兒男孩發現他踏上了一座精靈,他在霍瓦特斯魔法學院 (Hoitcharts School of Witchcraft and Hostry) 註冊,為他的第一戰打敗邪惡烈士沃德赫特 (Lord Voldemort)。
斯里克 PG 一位可愛的食蟻獸和驢子在路上出遊,以拯救菲昂 (Proness Fiona) 軍的任務,他正在這位恐龍的城堡中建造了監獄。
Belleville 的三腳架 PG-13 在法國環法自行車賽中,專業單車騎士被綁架來,祖父或母親的海狗在海外協助休旅,在這段經歷下,邀請了 3 位參與爵士樂的歌手。
Memento 音樂 R 退伍軍人追求不朽的殺手,透過對線索將線索刺青在身體上。

1D 嵌入

假設我們要為每部電影指派一個純量, \([-1, 1]\) 就會說明這部電影是針對兒童 (負值) 或成人 (正值)。我們也會為 \([-1, 1]\) 中的每個使用者指派純量,用於描述使用者對兒童電影 (更接近 -1) 或成人電影 (更接近 +1) 的興趣。針對預期使用者會喜歡的電影,電影嵌入的產品與使用者嵌入產品應為更高 (接近 1)。

顯示數部電影和使用者的圖片,其中包含一個尺寸的嵌入空間。每部電影沿著此軸的位置代表描述是兒童電影 (左側) 還是成人電影 (右側)。使用者姿勢描述兒童或成人電影的興趣。

在下圖中,每個勾號都代表特定使用者觀看的電影。第三和第四個使用者偏好設定都很明確:第三位使用者偏好兒童觀看電影,第四位使用者偏好成人電影。但第一位使用者和第二位使用者'這項單一功能並未提供正確的偏好設定。

意見回饋矩陣的圖片,其中一列對應到使用者,一欄則代表電影。每位使用者和每部電影都會對應至單一維度嵌入 (如上圖所述),因此這兩個嵌入的產品會反映意見回饋矩陣中的實際值。

2D 嵌入

因此其中一項功能無法充分說明所有使用者的偏好設定。如要解決這個問題,請新增第二個功能:每個電影為熱門電影或藝術電影的程度。第二種功能則可以使用以下二維嵌入功能來代表每部電影:

顯示數部電影與使用者排列在二維嵌入空間的圖片。每部影片在水平軸的位置是描述兒童電影 (左側) 或成人電影 (右側) 的位置;垂直線垂直位置所描述的影片是現代電影 (頂端) 還是藝術電影 (底部)。使用者的所在位置以反映各個類別的興趣。

我們會再次將使用者放在同一個嵌入空間中,以完整說明意見回饋矩陣:針對每組 (使用者、項目) 配對,我們希望使用者觀看電影時,會嵌入使用者嵌入的點產品,以及嵌入項目時接近 1,反之則為 0。

相同意見回饋矩陣的圖片。這次,每個使用者和電影都會對應至二維嵌入 (如上圖所述),使得這兩個嵌入的點產品值會反映意見回饋矩陣的真值。

在這個範例中,我們手動編寫嵌入內容。在實務上,嵌入功能可以自動學習,也就是協作篩選模型的強大功能。在接下來的兩個章節中,我們會討論不同的模型,以瞭解這些嵌入功能以及如何訓練。

當模型學習嵌入時,這個方法的協作性質很明顯。假設電影的嵌入向量已修正,然後,這個模型可以學習嵌入向量,讓使用者能夠充分說明偏好設定。因此有類似偏好設定的使用者嵌入會彼此相近。同樣地,如果使用者的嵌入功能是固定的,我們就能學習嵌入電影,以正確說明意見回饋矩陣。因此,系統在嵌入空間中就會嵌入類似的使用者所喜歡的電影嵌入內容。

測驗您的理解程度

模型卻向消費者推薦類似的應用程式,因為他們最近安裝了類似的應用程式。這是哪一種篩選功能?
依據內容篩選
太棒了!以內容為依據的篩選功能不會考量其他使用者。
協同過濾
協同合作篩選功能會將其他使用者納入考量。在特定情況下,我們只重視一位使用者。