推薦系列(一):什麼是推薦?
什麼是推薦?
視訊用戶端如何知道你可能希望接下來要觀看的視訊?軟體商店如何為你挑選應用?這些恰到好處的推薦是魔法嗎?答案當然是不,上述情況下,基于機器學習(ML)的推薦模型都可以确定視訊和應用與你喜歡的其他内容的相似程度,然後提供推薦。推薦通常會有兩種形式:
- 首頁建議(home page recommendations);
- 相關項目建議(related item recommendations);
二者存在一些差别,下面進行簡單介紹:
首頁推薦
首頁推薦根據使用者的已知興趣對使用者進行個性化推薦,每個使用者都能看到不同的推薦;
如果你轉到app商店首頁,可能會看到如下内容:

相關項目推薦
顧名思義,相關項目是與特定項目類似的推薦。在Google Play應用示例中,檢視數學相關APP的使用者也可能會看到相關的應用,例如有關科學的APP。
為什麼進行推薦?
推薦系統可幫助使用者在大型語料庫中找到引人注目的内容。例如,軟體商店資料庫有數百萬個應用,而視訊用戶端則有數十億個視訊。而且每天都會添加更多應用和視訊。使用者如何找到新的引人注目的新内容?無非了兩種途徑:搜尋跟推薦。搜尋的時候有些關鍵詞沒有建構索引,且搜尋後還是會出來大量的視訊,如何挑選又陷入困難。但是,推薦引擎可以推薦給使用者可能沒有想過自己要搜尋的内容,且自己對其感興趣。
你知道嗎?
- 應用商店上40%的應用安裝都來自推薦;
- 視訊用戶端上60%的觀看時間來自推薦;
術語
在深入介紹下面内容之前,應該了解一些術語:
物品(items, documents)
系統推薦的實體。對于應用商店而言,這些物品是要安裝的應用。對于視訊用戶端而言,這些物品是視訊。
查詢(query, context)
系統用于給出推薦的輸入。查詢可以是以下組合:
- 使用者資訊
- 使用者的ID;
- 使用者之前與之互動的物品;
- 附加内容
- 查詢時間
- 使用者的裝置
Embedding
從離散集(在本例中為查詢集或要推薦的資料集)到稱為嵌入空間的向量空間的映射。許多推薦系統依賴于學習查詢和項目的适當
嵌入表示。
推薦系統概述
推薦系統的一種常見架構包括以下元件:
- 生成候選人(candidate generation)
- 評分(scoring)
- 重排序 (re-ranking)
生成候選人
在第一階段,系統從潛在的巨大語料庫開始,生成更小的候選子集。例如,YouTube中的候選生成器可将數十億視訊減少到數百或數千。考慮到語料庫的巨大規模,模型需要快速評估查詢。一個模型可能有多個候選生成器,每個候選生成器可以生成不同的候選子集。
評分
接下來,另一個模型對候選者進行評分和排名,以便選擇要顯示給使用者的項目集(大約10個)。由于此模型評估相對較小的項子集,是以系統可以使用依賴于其他查詢的更精确的模型。
重排序
最後,系統必須考慮最終排序的附加限制。例如,系統删除使用者明确不喜歡的項目或提高更新内容的分數。重新排序還有助于確定多樣性,新鮮度和公平性。