Closed nogawanogawa closed 1 year ago
iALSは計算効率が高い協調フィルタリングの手法の一つとして知られている。 しかし、最近ではオートエンコーダや他のアイテムベース協調フィルタリングの手法に及ばないことが指摘されている。
iALSが先行研究で示唆されているより高い性能を効率よく達成できることを示すことで、複雑なモデルと競争できることを示す
iALSではユーザー - アイテム間のスコアリングのために、行列分解を用いる。
行列分解で学習されるパラメータはWとHになっており、iALSのLoss (下図L)を最小化するように学習することでこれらを求める。
学習時には、WとHを交互に最適化していく。片方を固定したままもう一方を最適化することは1つの線形回帰問題を解くことと等価であり、このトリックを使用することで非常に効率的に計算することが可能になる。
またシンプルなALSよりSGDを使用した場合のほうが性能が高くなることが知られている。
iALSにおけるハイパーパラメータは下記の6つである。
ハイパーパラメータに対してグリッドサーチを行うことは、おそらく効果的ではない。 そのためガイドラインに従って探索を行う。
iALSは通常数回の反復で収束するため、初期値として16回を選択するのが妥当である。 観測された収束曲線を見て調整するのがよい。
embeddingの標準偏差について、σを設定する代わりに埋め込み次元で再スケールすることが有効になる。
σ*は0.1などの小さな定数であり、埋め込み次元の大きな変化に対して初期化の影響を受けにくくなる。
iALSで期待する性能が得られない一般的な理由は埋め込みの次元が小さすぎることである。 正則化を適切に行えば埋め込み次元を大きくするだけ性能が高くなることが知られている。
例として、Movielens 20Mのデータセットでは、2000次元が最も良い結果をもたらすことがわかった。 embeddingが大きすぎると感じるかもしれないが、正則化によってオーバーフィットを防ぐのに非常に効果的である。
まずはd=128のような中間サイズの埋め込み次元を使って、良いパラメータの大まかな推定値を得て、次により大きな次元を使うと効率的である。
iALSではα0とλの両方が重要であり、これらを慎重に選択することが重要である。 正則化値のスケールは周波数正則化の強さを設定するνに依存する。
νを大きくしてラムダを一定にすれば正則化の効果は強くなる関係があり、片方を変えるともう一方の最適な値が変動する恐れがある。そこで
のように正規化し、λ, νが参照スケールとなるように探索する。(?)
通常、α0∈{1, 0.3, 0.1, 0.03, 0.01, 0.003}のようなものです。正則化については、λ*∈{0.1, 0.03, 0.01, 0.003, 0.001, 0.0003}が良いスタート地点と考えている。
次元が大きくなるとνの影響が強くなる。実験時にはν=1が最も高かった。
先行研究で報告されている値より、今回の実装で高い精度を達成できることを示した。
ML20M
MSD
item recommendation
論文URL
https://arxiv.org/abs/2110.14037
著者
Steffen Rendle, Walid Krichene, Li Zhang, Yehuda Koren
会議
RecSys '22
背景
iALSは計算効率が高い協調フィルタリングの手法の一つとして知られている。 しかし、最近ではオートエンコーダや他のアイテムベース協調フィルタリングの手法に及ばないことが指摘されている。
目的
iALSが先行研究で示唆されているより高い性能を効率よく達成できることを示すことで、複雑なモデルと競争できることを示す
アプローチ
メモ
再現実装 https://github.com/google-research/google-research/tree/master/ials