Facebook AI Researchは、パーソナライズされたレコメンデーションの生成において最先端の精度を実現するDLRM(deep-learning recommendation model)を、オープンソースとしてリリースすると発表した。GitHubから入手可能なコードには、PyTorchおよびCaffe2フレームワーク用のバージョンが含まれている。
20人以上の研究者からなるチームが、5月下旬、DLRMモデルとそのパフォーマンスについて解説した論文を発表した。このモデルは、入力フィーチャをデンス(dense)とカテゴリカル(categorical)で分類する。カテゴリカルフィーチャにはそれぞれ、事前に定義された長さのベクトルに変換するためのエンべディング(embedding)がある。デンス入力フィーチャは分離したベクトルに収集され、多層パーセプトロン(MLP)に供給されて、カテゴリカルエンべディングと同じ長さの別のベクトルが生成される。最後に、これらベクトルのすべてのペアの内積が計算され、元のデンスフィーチャベクトルと連結され、さらに別のMLPで後処理されることで最終的な出力が生成される。モデルの精度を評価するために研究者らは、Criteo Ad Kaggleデータセットでモデルをトレーニングし、別の推奨システムであるDeep and Cross network(DCN)との比較を行った。その結果、DLRMがDCNをわずかに上回っていた。論文の著者らは、"モデルのハイパーパラメータな調整が広範囲に行われていない"点を指摘した上で、そのような調整を行うことによって、さらに優れたパフォーマンスを達成できる可能性がある、と示唆している。
DLRMのオープンソースリリースには、ベンチマークスクリプトと、トレーニングデータセットを合成するためのツールセットが含まれている。Facebookの研究者であるMaxim Naumov氏とDheevatsa Mudigere氏はブログ記事で、ベンチマークを行うことによって、さまざまなフレームワークとハードウェアプラットフォームを使用したアルゴリズムのパフォーマンス調査が可能になる、と説明している。合成データセットを使うことで、アルゴリズムを使用する複数のユーザは、同じ実世界のデータセットを使用せずにパフォーマンスを比較することができる。このような場合のデータ共有は、プライバシ上の大きな懸念事項となるからだ。
Facebookチームは、ハードウェアシステムの共同設計ツールとしてもDLRMベンチマークを使用している。3月のOCP Global Summit基調講演では、Facebookのテクノロジおよび戦略担当ディレクタであるVijay Rao氏がZion AIトレーニングハードウェアプラットフォームを発表している。Microsoft、Intel、NVIDIA、その他のパートナの協力によって開発されたこのプラットフォームは、DLRMなどのAIアルゴリズムのニーズに対応するように設計されている。例えば、エンべディングには多くのメモリが必要であり、MLPには計算能力が必要である。DLRMベンチマークツールは、システム設計者がハードウェアのボトルネックを特定し、次世代のハードウェア設計に伝える上で有効な手段となる。
DLRMは、レコメンデーション問題の技術的課題に対処する、いくつかの最近の試みの中のひとつである。最初の問題は、カテゴリカルフィーチャ -- ユーザの国などの非数値データ -- を数値表現に変換することの必要性だ。通常これには、"ワンホット(one-hot)"エンコーディングが使用される。欠点は、エンコードされたフィーチャが高次元であることだ。
もうひとつの課題は、最良のモデル結果を得るためにはフィーチャ自体だけでなく、フィーチャ間の相互作用も考慮する必要のあることだ。これは通常、他のすべてのフィーチャとの外積を取ることで行われる。これがフィーチャの数の2乗で増加することは明らかだ。さらに、フィーチャ値には散在性があり、トレーニングデータに含まれないフィーチャのペアがいくつかあることから、一般化を行うことができない。
前述のようにDRLMチームは、自分たちのモデルのパフォーマンスを、Googleの開発したDCN(Deep and Cross network)モデルと比較した。Googleが開発したレコメンデーションモデルにはもうひとつ、WDL(Wide and Deep Learning)がある。いずれのシステムもエンべディングを使用してカテゴリフィーチャの次元を減らし、フィーチャの相互作用を含めるための戦略を持っている。例えばWDLは、すべてのバイナリフィーチャの組み合わせの組み合わせを結合した、一般化線形モデル(generalized linear model)を使用している。これに対してDCNでは、フィーチャの高次積の重みを学習する多層ネットワークが使用される。
GoogleのモデルはいずれもTensorFlowで実装されているが、DLRMはPyTorchまたはCaffe2で動作する。DLRMの欠点のひとつは、効率的に実行するために、モデルとデータの両方の並列処理が必要であることだ。このような複合的な並列処理はPyTorchやCaffe2ではサポートされていないため、Facebookチームは独自の実装を設計している。チームは"近日中に、パフォーマンスに関する詳細な研究結果を提供する"予定である。