推薦系統

從食物訂購到隨選視訊和音訊串流,再到時尚,推薦系統為現今一些最熱門的應用程式提供支援。探索如何使用 TensorFlow 生態系統中的開放原始碼程式庫和工具,建構可供生產環境使用的推薦系統。

推薦系統可提高應用程式中的使用者參與度,並透過提供最理想的內容來提升使用者體驗。現代推薦工具是複雜的系統,通常分為多個階段,以在生產環境中實現低延遲。透過擷取、排名和可能的後續排名階段,不相關的項目會從大量候選項目中逐步篩選出來,並最終呈現使用者最有可能互動的選項清單。

開始使用 TensorFlow Recommenders 進行建構,這是一個易於使用的架構,有助於簡化建構推薦系統的完整工作流程,從資料準備到部署都涵蓋在內。

完成模型訓練後,將模型部署到生產環境中,以便為終端使用者提供推薦內容。TensorFlow Serving 可將您的模型投入生產環境,以實現高效能推論。其目標是盡可能提高機器學習模型的輸送量,並且可以支援需要分散式服務的大型推薦模型。

# Deploy the retrieval model with TensorFlow Serving
docker run -t --rm -p 8501:8501 \
  -v "RETRIEVAL/MODEL/PATH:/models/retrieval" \
  -e MODEL_NAME=retrieval tensorflow/serving &

# Retrieve top movies that user 42 may like
curl -X POST -H "Content-Type: application/json" \
  -d '{"instances":["42"]}'  \
  https://127.0.0.1:8501/v1/models/retrieval:predict

# Output
# {
#    "predictions":[
#       {
#          "output_1": [2.032, 1.969, 1.813],
#          "output_2": ["movie1”, “movie2”, “movie3”]
#       }
#    ]
# }

# Deploy the ranking model with TensorFlow Serving
docker run -t --rm -p 8501:8501 \
  -v "RANKING/MODEL/PATH:/models/ranking" \
  -e MODEL_NAME=ranking tensorflow/serving &

# Get the prediction score for user 42 and movie 3
curl -X POST -H "Content-Type: application/json" \
  -d '{"instances":[{"user_id":"42", "movie_title":"movie3"}]}' \
  https://127.0.0.1:8501/v1/models/ranking:predict

# Output:
# {"predictions": [[3.66357923]]}
code_blocks
瞭解如何使用 TensorFlow 建構和部署全堆疊推薦系統

改善推薦引擎的擷取和排名階段

大規模推薦系統需要透過擷取和排名階段,以有效率且有效的方式,從數百萬個候選項目中判斷最相關的項目。使用最先進的近似最近鄰 (ANN) 搜尋演算法和學習排名 (LTR) 技術來補充 TensorFlow Recommenders,以改善推薦結果。

Google ScaNN

ScaNN 是一個用於大規模向量相似度搜尋的程式庫。它運用最先進的 ANN 技術,例如非對稱雜湊和異向性量化,來加速擷取最熱門的候選項目。

TensorFlow Ranking

TensorFlow Ranking 是一個用於開發可擴充神經 LTR 模型的程式庫。它提供其他功能來排列候選項目的順序,以盡可能提高排名效用。

最佳化大型嵌入,以進行模型訓練和推論

嵌入查詢作業是大規模推薦系統的關鍵元件。運用硬體加速和動態嵌入技術來克服大型嵌入表常見的效能瓶頸。

TensorFlow TPUEmbedding

TPUEmbedding 層 API 有助於在張量處理單元 (TPU) 上訓練和服務大型嵌入表。

TensorFlow Recommenders Addons

TensorFlow Recommenders Addons 是一個社群貢獻專案,它運用動態嵌入技術,對於線上學習特別有用。

保護使用者隱私

傳統推薦引擎仰賴收集使用者互動記錄,並根據原始使用者活動訓練推薦模型。納入負責任的 AI 開發實務,確保使用者資料保持私密。

TensorFlow Lite 裝置端推薦

TensorFlow Lite 提供裝置端推薦解決方案,可實現低延遲和高品質推薦,同時將所有使用者資料保留在行動裝置上。

使用 TensorFlow Federated 進行聯邦重建

TensorFlow Federated 是一個用於聯邦式學習和分散式資料上其他運算的架構。聯邦重建將矩陣分解引入聯邦式學習設定,並為推薦提供更完善的使用者隱私保護。

使用進階技術來開發更精密的推薦工具

雖然傳統協同篩選模型在業界廣泛使用,但採用進階技術 (例如強化學習和圖神經網路 (GNN)) 來建構推薦系統已成為日益普及的趨勢。

TensorFlow Agents Bandits

TensorFlow Agents Bandits 是一個全面的 Bandit 演算法程式庫,可以在推薦引擎設定中有效探索和利用。

TensorFlow GNN

TensorFlow GNN 是一個程式庫,可以有效促進基於網路結構的項目推薦,並可與擷取和排名模型結合使用。

生成式 AI

瞭解如何使用大型語言模型 (LLM) (例如 PaLM API) 來擴增您的推薦系統。

參考最先進的推薦模型

如要評估知名模型的效能,或建構您自己的推薦模型,請查看熱門模型 (例如 NCF、DLRM 和 DCN v2) 的官方 TensorFlow 實作,以取得最佳實務做法。

教育資源

透過逐步課程和影片,進一步瞭解建構推薦系統的相關資訊。

真實世界的推薦系統

探索推薦系統在各行各業的應用程式中提供支援的範例和個案研究。

線上影片

瞭解 YouTube 如何以負責任的方式建構其強大的推薦系統。

電子商務

瞭解 Digitec Galaxus 如何使用 TFX 和 TensorFlow Agents 每週訓練和提供數百萬份個人化電子報。

雜貨

瞭解 HarperDB 如何使用 TensorFlow Recommenders 和 TensorFlow.js,為雜貨店商品建構以協同篩選為基礎的推薦系統。

音訊串流

瞭解 Spotify 如何運用 TensorFlow 生態系統來設計可擴充的離線模擬器,並訓練 RL Agents 以產生播放清單推薦。