2️⃣

TensorFlow Recommendersは現状Keras 2を使うのが良さそう

2024/08/05に公開

TensorFlow Recommenders(TFRS)はKerasベースのレコメンドシステムモデルを構築するためのライブラリです。

以下は執筆時点(2024年8月5日)の情報になります。

背景

  • Google ColaboratoryでTFRSのチュートリアルを試そうとしたところ、Keras 2に依存する一部のコードが実行できませんでした。
  • TensorFlow(TF)がKeras 3を利用している場合、Keras 2に依存するFactorizedTopK関数が使えませんでした。ちなみに、今年の3月頃にリリースされたTF v2.16からデフォルトでKeras 3を使用します。

解決策

Colaboratoryの場合

TFRSのインストール前に以下のセルを追加して、実行しておきます。
ちなみに、これはKeras 2を使うための環境設定を行っています。

import os
os.environ["TF_USE_LEGACY_KERAS"] = "1"

その後はチュートリアル通りにTFRSをインストールすればOKです。

!pip install -q tensorflow-recommenders
!pip install -q --upgrade tensorflow-datasets

TF v2.16以降かつKeras 2がインストールされていない環境の場合

まずはKeras 2をインストールします。

pip install tf-keras~=2.x

xの部分はTFのバージョンと合わせてください(TF v2.16.1ならxは16になります)。

続いて、.bashrcなどに以下の環境変数を追記します。

TF_USE_LEGACY_KERAS=1

上記の設定方法では、TFRS以外でもKeras 2が使われることに注意してください。

原因

TF v2.16以降からはデフォルトでKeras 3が使われるようになりました(Colaboratoryは執筆時点でTF v2.17.0がインストールされています)。
Keras 3で色々と仕様が変更されましが、TFRSは現状Keras 2にしか対応していないようです(Issueには記事に関連する報告がいくつかされていましたが、まだMergeはされていませんでした)。

まとめ

TF v2.16以降でTFRSを使う場合はKeras 2としておくのが良さそうです。

参考

Getting started with Keras
Release TensorFlow 2.16.1 · tensorflow/tensorflow · GitHub
tfrs.metrics.FactorizedTopK · Issue #712 · tensorflow/recommenders

DMM Data Blog

Discussion