推荐系统

从食品订购到视频点播,从音频流到时尚,推荐系统为当今一些最受欢迎的应用程序提供支持。探索如何使用 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"]}'  \
  http://localhost: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"}]}' \
  http://localhost: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

了解如何使用 PaLM API 等大型语言模型 (LLM) 来增强您的推荐系统。

参考最先进的推荐模型

要对知名模型的性能进行基准测试或构建自己的推荐模型,请查看流行模型(例如 NCF、DLRM 和 DCN v2)的官方 TensorFlow 实现,以获取最佳实践。

教育资源

通过遵循分步课程和视频,详细了解构建推荐系统。

现实世界的推荐系统

探索推荐系统的示例和案例研究,这些系统为各个行业的应用程序提供支持。

在线视频

了解 YouTube 如何以负责任的方式构建其强大的推荐系统。

电子商务

阅读有关 Digitec Galaxus 如何使用 TFX 和 TensorFlow Agents 每周训练和提供数百万份个性化新闻简报的信息。

杂货店

了解 HarperDB 如何使用 TensorFlow Recommenders 和 TensorFlow.js 为杂货店商品构建基于协同过滤的推荐系统。

音频流

了解 Spotify 如何利用 TensorFlow 生态系统设计可扩展的离线模拟器并训练 RL 代理以生成播放列表推荐。