碩論:應用協同過濾技術於表演藝術售票系統(二)
此系列是寫給藝術行政同行的,所以不會有太理論或太技術的內容。想看程式碼的請直接到我的 GitHub repo,想直接讀論文的,可以從這邊下載。
感謝國家兩廳院支持,提供兩廳院售票系統 2011–2019年間,系統會員購買國家兩廳院演奏廳演出票券的交易紀錄,讓我實作推薦系統。
只要用過網路購物平台的人,應該都看過「買了這項產品的人,也買了以下產品」、「你可能也會喜歡」…… 之類意圖讓人多花錢的「推薦商品」。為什麼平台要推薦這些商品給你呢?這些商品是怎麼挑出來的?
Aggarwal 在 Recommender Systems: The Textbook. (Springer) 中,將推薦系統依照使用的資料不同,分為四類。這邊不深入一一介紹,只會說明我的研究使用的「協同過濾」(Collaborative Filtering) 模型。
協同過濾這一類的推薦系統,只有利用使用者和物品的互動紀錄,例如有沒有購買此物品、有沒有點擊連結、對影片的評分為多少...... 等等,來建立模型、提出推薦。之所以稱為「協同」collaborative,就是利用各個使用者的資料,互相協助,為其他人「過濾」filtering 資訊。
舉個簡單的例子。從上圖一的過去交易紀錄,可以看到小美和小明都買了蘋果和草莓,小花則買了橘子和葡萄。因此,我們可以說,相對於小花,小美和小明喜歡的東西比較類似。接著,小明買了葡萄(圖二)。因此,把葡萄推薦給小美,就是個合理的行為(圖三)。我們提出推薦時,完全沒有考量蘋果和草莓都是紅色的,或是蘋果和橘子都是圓形的這些物品的特徵,完全依照圖一和圖二的交易紀錄來做出推薦。這是典型的「以使用者為基礎的協同過濾模型」(user-based collaborative filtering)。
讓我們換個方向,從「物品」的角度來看。圖四和圖一是一樣的交易紀錄,只是箭頭從水果出發。從圖四我們可以看到,買了蘋果的人,也買了草莓。所以,當小花買了蘋果(圖五),就可以跟小花推薦草莓(圖六)。這就是協同過濾裏頭的「以物品為基礎的協同過濾模型」(item-based collaborative filtering)。
我的實驗中,就是利用資料集建立一個以物品為基礎的協同過濾模型,做為基準 (benchmark)。實驗的最終目的是找出一個深度學習協同過濾模型,這個模型的表現要比做為基準的模型好。