什麼是推薦?
YouTube如何知道你可能希望接下來要觀看的視頻?Google Play商店如何爲你挑選應用?這些恰到好處的推薦是魔法嗎?答案當然是不,上述情況下,基於機器學習(ML)的推薦模型都可以確定視頻和應用與你喜歡的其他內容的相似程度,然後提供推薦。推薦通常會有兩種形式:
- 主頁建議(home page recommendations);
- 相關項目建議(related item recommendations);
二者存在一些差別,下面進行簡單介紹:
主頁推薦
主頁推薦根據用戶的已知興趣對用戶進行個性化推薦,每個用戶都能看到不同的推薦;
如果你轉到Google Play Apps主頁,可能會看到如下內容:
相關項目推薦
顧名思義,相關項目是與特定項目類似的推薦。在Google Play應用示例中,查看數學相關APP的用戶也可能會看到相關的應用,例如有關科學的APP。
爲什麼進行推薦?
推薦系統可幫助用戶在大型語料庫中找到引人注目的內容。例如,Google Play商店數據庫有數百萬個應用,而YouTube則有數十億個視頻。而且每天都會添加更多應用和視頻。用戶如何找到新的引人注目的新內容?無非了兩種途徑:搜索跟推薦。搜索的時候有些關鍵詞沒有構建索引,且搜索後還是會出來大量的視頻,如何挑選又陷入困難。但是,推薦引擎可以推薦給用戶可能沒有想過自己要搜索的內容,且自己對其感興趣。
你知道嗎?
- Google Play上40%的應用安裝都來自推薦;
- YouTube上60%的觀看時間來自推薦;
術語
在深入介紹下面內容之前,應該瞭解一些術語:
物品(items, documents)
系統推薦的實體。對於Google Play商店,這些物品是要安裝的應用。對於YouTube,這些物品是視頻。
查詢(query, context)
系統用於給出推薦的輸入。查詢可以是以下組合:
- 用戶信息
- 用戶的ID;
- 用戶之前與之互動的物品;
- 附加內容
- 查詢時間
- 用戶的設備
Embedding
從離散集(在本例中爲查詢集或要推薦的數據集)到稱爲嵌入空間的向量空間的映射。許多推薦系統依賴於學習查詢和項目的適當 嵌入表示。
推薦系統概述
推薦系統的一種常見架構包括以下組件:
- 生成候選人(candidate generation)
- 評分(scoring)
- 重排序 (re-ranking)
生成候選人
在第一階段,系統從潛在的巨大語料庫開始,生成更小的候選子集。例如,YouTube中的候選生成器可將數十億視頻減少到數百或數千。考慮到語料庫的巨大規模,模型需要快速評估查詢。一個模型可能有多個候選生成器,每個候選生成器可以生成不同的候選子集。
評分
接下來,另一個模型對候選者進行評分和排名,以便選擇要顯示給用戶的項目集(大約10個)。由於此模型評估相對較小的項子集,因此係統可以使用依賴於其他查詢的更精確的模型。
重排序
最後,系統必須考慮最終排序的附加約束。例如,系統刪除用戶明確不喜歡的項目或提高更新內容的分數。重新排序還有助於確保多樣性,新鮮度和公平性。