Google官方开源的推荐系统工具库介绍(含视频教程)

Posted 搜索与推荐Wiki

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Google官方开源的推荐系统工具库介绍(含视频教程)相关的知识,希望对你有一定的参考价值。

说明:文章内容仅供学习使用,如有侵权请联系删除
编辑:搜索与推荐Wiki
参考:

  • 1.谷歌开源推荐系统库(TensorFlow Recommenders)
  • 2.中文视频 | TF Recommenders 系列视频教程

TensorFlow Recommenders

TensorFlow推荐器是一个使用TensorFlow构建推荐系统模型的库。它有助于构建推荐系统的全部工作流程:数据准备、模型制定、训练、评估和部署。它构建在Keras上,目标是让学习者有一个平缓的学习曲线,同时仍然给你构建复杂模型的灵活性。
安装(确保安装了TensorFlow 2.x)

pip install tensorflow-recommenders

TFRS支持:

  • 建立并评估灵活的推荐检索模型
  • 自由地将item、user和上下文信息合并到推荐模型中
  • 联合训练多目标推荐的多任务模型

TFRS模块

  • datasets:数据集模块
  • examples:示例中使用的功能模块
  • layers:图层模块
  • losses:损失函数模块
  • metrics:指标模块
  • models:模型模块
  • tasks:任务库模块

一个例子

导入库

import tensorflow_datasets as tfds
import tensorflow_recommenders as tfrs

导入数据

# 评分数据.
ratings = tfds.load('movie_lens/100k-ratings', split="train")
# 电影特征数据.
movies = tfds.load('movie_lens/100k-movies', split="train")

# 选取特征.
ratings = ratings.map(lambda x: 
    "movie_id": tf.strings.to_number(x["movie_id"]),
    "user_id": tf.strings.to_number(x["user_id"])
)
movies = movies.map(lambda x: tf.strings.to_number(x["movie_id"]))

构建模型

# Build a model.
class Model(tfrs.Model):

  def __init__(self):
    super().__init__()

    # user embedding.
    self.user_model = tf.keras.layers.Embedding(
        input_dim=2000, output_dim=64)
    # movie embedding.
    self.item_model = tf.keras.layers.Embedding(
        input_dim=2000, output_dim=64)

    # 在整个候选数据集上设置检索任务和评估指标。
    self.task = tfrs.tasks.Retrieval(
        metrics=tfrs.metrics.FactorizedTopK(
            candidates=movies.batch(128).map(self.item_model)
        )
    )

  def compute_loss(self, features: Dict[Text, tf.Tensor], training=False) -> tf.Tensor:

    user_embeddings = self.user_model(features["user_id"])
    movie_embeddings = self.item_model(features["movie_id"])

    return self.task(user_embeddings, movie_embeddings)

模型训练和评估

model = Model()
model.compile(optimizer=tf.keras.optimizers.Adagrad(0.5))

# Randomly shuffle data and split between train and test.
tf.random.set_seed(42)
shuffled = ratings.shuffle(100_000, seed=42, reshuffle_each_iteration=False)

train = shuffled.take(80_000) # 取前8000做训练集
test = shuffled.skip(80_000).take(20_000) # 取80000-100000为测试集

# Train.
model.fit(train.batch(4096), epochs=5)

# Evaluate.
model.evaluate(test.batch(4096), return_dict=True)

更多细节

  • 源码:https://github.com/tensorflow/recommenders
  • 指南:https://www.tensorflow.org/recommenders/examples/quickstart
  • API:https://www.tensorflow.org/recommenders/api_docs/tfrs

除了TensorFlow Recommenders之外,还开源了一些其他的模块:

  • TensorFlow Ranking https://github.com/tensorflow/ranking
  • ScaNN https://github.com/google-research/google–research/tree/master/scann
  • TensorFlow Lite 端侧推荐模 https://tensorflow.google.cn/lite/examples/recommendation/overview
  • TensorFlow Model Garden 推荐模型 https://github.com/tensorflow/models/tree/master/official/recommendation

TFRS公开课

tensorflow官方不仅开源了tfrs的模块,也提供了对应的视频教程,目前视频已被上传到 B 站 TensorFlow 频道中,大家有兴趣可以去进行学习。
https://www.bilibili.com/video/BV1Hb4y1Z7zK

第一期视频中,主要介绍推荐系统的概述,探讨推荐系统的价值和挑战,并给大家简单介绍 Google 开源的一系列相关组件。

第二期视频中,主要介绍两种推荐系统的传统算法:基于内容的过滤和协同过滤,从理论的角度看看如何搭建推荐系统。

第三期视频中,主要从代码的角度看看如何使用 TensorFlow 2 的核心 API 来搭建推荐系统,并构造一个神经协同过滤模型。

第四期视频中,主要介绍的是TensorFlow Recommenders (TFRS)。TFRS 库是专为搭建推荐系统打造的全栈工具库,它包含了一整套的工具来简化搭建推荐系统,也是Google推荐使用的工具库,将演示如何使用 TFRS 构造一个双塔召回模型。

第五期视频中,主要介绍如何使用 TFRS 搭建排序模型。

第六期视频中,主要介绍如何使用场景特征和多任务学习来改进推荐模型的准确度。

第七期视频中,主要介绍一种更复杂的模型,深度交叉网络 (DCN)。
最后一期视频中,主要介绍如何使用 ScaNN 工具库高效部署召回模型完成近似近邻搜索。

相信大家在观看这八个视频教程后,会对推荐系统和 TF Recommenders 库有一定的了解,从而为以后打造自己的推荐系统打下坚实基础。
此外,如果你需要打造超大规模的推荐系统,Google已经有了一个 TF SIG Recommenders Addons(TFRA) 社区,由腾讯/阿里/唯品会等公司的同学贡献了许多代码。


【技术服务】详情点击查看: https://mp.weixin.qq.com/s/PtX9ukKRBmazAWARprGIAg


扫一扫关注「搜索与推荐Wiki」!号主「专注于搜索和推荐系统,以系列分享为主,持续打造精品内容!

以上是关于Google官方开源的推荐系统工具库介绍(含视频教程)的主要内容,如果未能解决你的问题,请参考以下文章

Google官方开源的推荐系统工具库介绍(含视频教程)

Google官方开源的推荐系统工具库介绍(含视频教程)

Google官方开源的推荐系统工具库介绍(含视频教程)

Google推荐的图片加载库Glide介绍

开源推荐 5快速入门 Google 机器学习系统 TensorFlow

别再重复造轮子了,推荐使用 Google Guava 开源工具类库,真心强大!