擷取
假設您有一個嵌入模型,您會如何決定要推薦哪些商品給使用者?
在放送時,針對某項查詢,請執行下列其中一項操作:
- 對於矩陣分解模型,查詢 (或使用者) 嵌入是以靜態方式知道,系統可以直接從使用者嵌入矩陣上查詢。
- 如果是 DNN 模型,系統會在服務時間,在特徵向量 \(x\)上執行網路,藉此計算查詢嵌入項目 \(\psi(x)\)。
取得查詢嵌入值 \(q\)後,請在嵌入空間中搜尋與 \(q\) 相近的項目嵌入值\(V_j\) 。這是最鄰近問題。舉例來說,您可以根據相似度分數 \(s(q, V_j)\)傳回前 K 個項目。

您也可以在相關項目推薦內容中使用類似的方法。舉例來說,當使用者觀看 YouTube 影片時,系統可以先查詢該項目的嵌入內容,然後尋找嵌入空間中相近的其他項目\(V_j\) 嵌入內容。
大規模擷取
為了計算嵌入空間中最相近的項目,系統可以為每個潛在候選項目逐一評分。對於超大型語料庫而言,完整的評分可能會耗費高昂成本,但您可以使用下列其中一種策略來提高效率:
- 如果已知靜態查詢嵌入資料,系統就能離線執行完整評分,預先計算並儲存每個查詢的最佳候選清單。這是推薦相關項目的常見做法。
- 使用近似最鄰近搜尋。
Google 在 GitHub 上提供一項名為 ScaNN 的開放原始碼工具 (可調整鄰近度)。這項工具可大量執行有效率的向量相似度搜尋。
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2024-11-11 (世界標準時間)。
[null,null,["上次更新時間:2024-11-11 (世界標準時間)。"],[[["Recommender systems leverage embedding models to identify items similar to a user's preferences or a given item."],["The system finds relevant items by searching for embeddings that are close to the user or item embedding in the embedding space, effectively solving a nearest neighbor problem."],["For large-scale retrieval, efficiency can be improved by precomputing top candidates or using approximate nearest neighbor search techniques like ScaNN."]]],[]]