說到21 世紀互聯(lián)網(wǎng)的技術(shù),除了Python/Rust/Go等一系列新型編程語言的誕生,信息檢索技術(shù)的蓬勃發(fā)展也是一大亮點。互聯(lián)網(wǎng)上第一個純技術(shù)商業(yè)模式就是以谷歌和百度為代表的搜索引擎技術(shù)。然而讓大家臆想不到的是,推薦系統(tǒng)誕生的年代也很久遠。早在1992年,人類歷史上第一個推薦系統(tǒng)就以論文的形式發(fā)表出來了,而在這個時候,谷歌和百度還沒有誕生。
不像搜索引擎那樣被人們認為是剛需,很快就誕生了許多獨角獸。以推薦系統(tǒng)為核心技術(shù)的科技公司要等到2010 年代今日頭條和抖音崛起后才會出現(xiàn)。毫無疑問,今日頭條和抖音成為了推薦系統(tǒng)最成功的代表性公司。如果說第一代信息檢索技術(shù)搜索引擎是美國人先發(fā)制人,那么第二代信息檢索技術(shù)推薦系統(tǒng)就被牢牢的控制在中國人手里。而我們現(xiàn)在遇到了第三代信息檢索技術(shù)—— 基于大語言模型的信息檢索。目前來看先發(fā)者是歐美國家,但目前中美正在齊頭并進。
近幾年來,推薦系統(tǒng)領(lǐng)域的權(quán)威會議 RecSys 頻頻將最佳論文獎頒給序列推薦(Sequential Recommendation)。這說明該領(lǐng)域目前越來越重視垂直應(yīng)用。而有一個推薦系統(tǒng)的垂直應(yīng)用是如此重要,但至今都沒有掀起滔天巨浪,這個領(lǐng)域就是基于場景的推薦(Context-aware Recommendation),簡稱CARS。我們偶爾會見到有些 CARS 的Workshop,但是這些Workshop 的論文每年不超過10 篇,門可羅雀。
CARS 可以用來干什么?首先CARS 已經(jīng)被漢堡王等快餐公司使用。它還可以在用戶駕駛汽車的時候,根據(jù)場景給用戶推薦音樂。另外,我們可以暢想一下,我們有沒有可能根據(jù)天氣狀況給用戶推薦出行計劃?抑或是根據(jù)用戶的身體狀況給用戶推薦餐飲?其實,只要我們充分的發(fā)揮自己的想象力,總是能給CARS 找出不同的落地應(yīng)用。
然而問題來了,既然CARS 的用途這么廣泛,為什么這么少的人發(fā)表論文?原因很簡單,因為CARS 幾乎沒有公開的數(shù)據(jù)集可以使用。目前最好用的 CARS 的公開數(shù)據(jù)集是來自斯洛文尼亞的LDOS-CoMoDa 數(shù)據(jù)集。除此之外,我們很難找到別的數(shù)據(jù)集合。LDOS-CoMoDa 利用調(diào)研的形式提供了用戶觀影時的場景數(shù)據(jù),使得廣大研究人員從事 CARS 研究成為了可能。數(shù)據(jù)公開的時間點在2012 年到2013 年左右,但是目前知道這個數(shù)據(jù)集合的人很少。
言歸正傳,本文主要介紹MatMat / MovieMat 算法和PowerMat 算法。這些算法都是用來解決 CARS 問題的利器。我們先來看一下MatMat 是如何定義CARS 問題的:我們首先重新定義用戶評分矩陣,我們把用戶評分矩陣的每一個評分值替換成方陣。方陣的對角線元素是原始的評分值,非對角線元素都是場景信息。
我們下面定義 MatMat 算法的損失函數(shù),該函數(shù)修改了經(jīng)典的矩陣分解損失函數(shù),形式如下:
其中 U 和V 都是矩陣。我們通過這種方式,改變了原始的矩陣分解中的向量點乘。將向量點乘變成了矩陣乘法。我們舉下面一個例子來看:
我們在MovieLens Small Dataset 上做一下性能對比實驗,得到如下結(jié)果:
可以看到,MatMat 算法的效果優(yōu)于經(jīng)典的矩陣分解算法。我們再來檢查一下推薦系統(tǒng)的公平性:
可以看到,MatMat 在公平性指標(biāo)上表現(xiàn)依然不遑多讓。MatMat 的求解過程較為復(fù)雜,即便是發(fā)明算法的作者本人,也沒有在論文中寫出推導(dǎo)過程。但是俗話說的好,學(xué)好線性代數(shù),走遍天下都不怕。相信聰明的讀者自己一定能推導(dǎo)出相關(guān)的公式,并實現(xiàn)這個算法。MatMat 算法論文的原文地址可以在下面的鏈接找到:https://arxiv.org/pdf/2112.03089.pdf 。這篇論文是國際學(xué)術(shù)會議IEEE ICISCAE 2021 最佳論文報告獎。
MatMat 算法被應(yīng)用在了基于場景的電影推薦領(lǐng)域,該算法的電影實例被命名為MovieMat。MovieMat 的評分矩陣是按照如下方法定義的:
作者隨后做了對比實驗:
在LDOS-CoMoDa 數(shù)據(jù)集合上,MovieMat 取得了性能遠高于經(jīng)典矩陣分解的效果。下面我們來觀察一下公平性的測評結(jié)果:
在公平性方面,經(jīng)典矩陣分解取得了優(yōu)于MovieMat 的結(jié)果。MovieMat 的原始論文可以在下面的鏈接找到:https://arxiv.org/pdf/2204.13003.pdf 。
我們有的時候會遇到這樣的問題。我們新到了一個地點,光有場景數(shù)據(jù),而沒有用戶評分數(shù)據(jù)該怎么辦?不要緊,Ratidar Technologies LLC (北京達評奇智網(wǎng)絡(luò)科技有限責(zé)任公司) 發(fā)明了基于零樣本學(xué)習(xí)的 CARS 算法—— PowerMat。PowerMat 的原始論文可以在下面的鏈接找到:https://arxiv.org/pdf/2303.06356.pdf 。
PowerMat 的發(fā)明人借用了MAP 和DotMat,定義了如下的MAP 函數(shù):
其中U 是用戶特征向量、V 是物品特征向量、R 是用戶評分值,而C 是場景變量。具體的,我們得到如下公式:
利用隨機梯度下降對該問題進行求解,我們得到下述公式:
通過觀察,我們發(fā)現(xiàn)在這組公式里沒有出現(xiàn)任何輸入數(shù)據(jù)相關(guān)的變量,因此PowerMat是僅與場景相關(guān)的零樣本學(xué)習(xí)算法。該算法可以應(yīng)用在如下場景:游客打算去某地旅游,但是從來沒有去過當(dāng)?shù)?,因此只有天氣等場景?shù)據(jù),我們可以利用 PowerMat 給游客推薦打卡景點等等。
下面是PowerMat 和其他算法的對比數(shù)據(jù):
通過這張圖,我們發(fā)現(xiàn)PowerMat 和MovieMat 旗鼓相當(dāng),不分伯仲,并且效果都要優(yōu)于經(jīng)典的矩陣分解算法。而下面這張圖顯示,即使是在公平性指標(biāo)方面,PowerMat 依舊表現(xiàn)強勁:
通過對比實驗,我們發(fā)現(xiàn)PowerMat 是優(yōu)秀的CARS 算法。
互聯(lián)網(wǎng)的數(shù)據(jù)工程師經(jīng)常說數(shù)據(jù)高于一切。并且在2010 年代左右互聯(lián)網(wǎng)有一股強勁的看好數(shù)據(jù)看衰算法的風(fēng)氣。CARS 是個很好的例子。因為絕大多數(shù)人得不到相關(guān)數(shù)據(jù),因此這個領(lǐng)域的發(fā)展一直受到了很大的限制。感謝斯洛文尼亞的研究人員公開了 LDOS-CoMoDa 數(shù)據(jù)集合,使得我們有機會發(fā)展這個領(lǐng)域。我們也希望有越來越多的人關(guān)注 CARS,落地 CARS,為 CARS 融資……