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