推荐系统
从食品订购到视频点播,从音频流到时尚,推荐系统为当今一些最受欢迎的应用程序提供支持。探索如何使用 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]]}
改进推荐引擎的检索和排名阶段
大规模推荐系统需要通过检索和排名阶段以有效且高效的方式从数百万个候选者中确定最相关的项目。使用最先进的近似最近邻 (ANN) 搜索算法和学习排序 (LTR) 技术来补充 TensorFlow Recommenders,以改进推荐。
TensorFlow Ranking 是一个用于开发可扩展的神经 LTR 模型的库。它提供额外的功能来对候选项目进行排名,以最大限度地提高排名效用。
优化大型嵌入以进行模型训练和推理
嵌入查找操作是大规模推荐系统的关键组成部分。利用硬件加速和动态嵌入技术来克服大型嵌入表中常见的性能瓶颈。
TensorFlow Recommenders Addons 是一个社区贡献的项目,它利用动态嵌入技术,该技术对在线学习特别有用。
保护用户隐私
传统的推荐引擎依赖于收集用户交互日志并根据原始用户活动训练推荐模型。通过结合 负责任的 AI 开发实践,确保用户数据保持私密。
TensorFlow Federated 是一个用于联邦学习和其他在分散数据上进行计算的框架。联邦重建将矩阵分解引入联邦学习环境,并更好地保护推荐的用户隐私。
使用高级技术构建更复杂的推荐器
虽然传统的协同过滤模型在行业中被广泛使用,但采用强化学习和图神经网络 (GNN) 等高级技术来构建推荐系统已成为一种趋势。
TensorFlow Agents Bandits 是一个包含多种 bandit 算法的综合库,可以在推荐引擎环境中有效地进行探索和利用。
参考最先进的推荐模型
要对知名模型的性能进行基准测试或构建自己的推荐模型,请查看流行模型(例如 NCF、DLRM 和 DCN v2)的官方 TensorFlow 实现,以获取最佳实践。
教育资源
通过遵循分步课程和视频,详细了解构建推荐系统。
现实世界的推荐系统
探索推荐系统的示例和案例研究,这些系统为各个行业的应用程序提供支持。