【論文紹介】Adversarial Personalized Ranking for Recommendation (SIGIR2018) - 10月 04, 2019 こんにちは、ぐぐりら(@guglilac)です。 今日は、敵対的学習をBPRに加えたAdversarial Personalized ranking (APR)の論文を読んだのでまとめてみます。 最近はBPR関連の論文をよく読んでいます。 BPRについてはこちらの記事で書いています。 【論文紹介】BPR: Bayesian Personalized Ranking from Implicit Feedback (UAI 2009) ## 3行まとめ BPRに敵対的学習を加えてロバストなモデルにしたAdversarial Personalized ranking (APR)を提案し、汎化性能を向上させた。 recomendationだとuserやitemに摂動を加えると全く異なるデータになる(one hotだから)ので、摂動はモデルのパラメータに与えるようにしている。 BPR+MFと比較して、APR+MF(この場合embeddingにlossが大きくなるような摂動を加える。)がより汎化性能が高いことを実験で示した。 ## 背景と仮説 画像とかで敵対的学習を使うのは研究されているけど、IR(information retrieval)ではあまりされていないから、組み合わせてみよう. BPRはpairを受け取って分類を行っているようなモデルだから、敵対的学習を使ってロバストにすれば汎化性能が向上するかも? ## 前実験 学習したBPR+MFのembeddingにランダムな摂動と敵対的な摂動(lossを小さくするような)摂動を与える。 それぞれtestデータおけるモデルの性能がどれだけ悪化するか? 結果 * randomだとそんなに悪化しないけど、敵対的な摂動だと大きく悪化する。 * 敵対的摂動の計算はデータ全体ではなくサンプルした一部のデータから行っているが、それでもこれだけ悪化する ということで、 こんな摂動が存在してしまうってことは、モデルがtrainデータにか学習した複雑な関数にfitしてしまっていて、うまく汎化しないことが予想される。ので、今回研究してみましたという流れ。 ## APR 普通のbpr lossはこれ。 min max最適化になる。 maxでは、lossが大きくなるような摂動を探して、その摂動に対してlossが最小になるようにパラメータを最適化する。 摂動を与えた場合のlossと、与えない場合のlossの線形和として全体のlossを定義する。 各lossの形はBPRを用いている。 $\lambda$はハイパーパラメータ。 lossが大きくなるような摂動は、摂動の大きさが$\epsilon$以下になるものの中から、摂動に関わる部分のlossが大きくなるように見つけてくる。 と言っても厳密にlossが最大になるものを持ってくるのは大変なので、lossを摂動で微分して、最急降下方向の反対で大きさが$\epsilon$のものを敵対的な摂動として採用する。 摂動が見つかれば、あとは普通にlossを最小化する。微分できるのでSGDを用いる。 この手続きを繰り返してmin max最適化問題を解く。 APRはBPRと同様にmodelに依存しないので、この研究ではMF(Matrix Factorization)に適用した形を紹介して、実験もMFについて行っているけど、出力がパラメータで微分可能なモデルならなんでもいい。 ## APRの初期化 APRの学習をいきなりやるのではなく、最初はBPRで学習している。 APRの効果的な点は、overfitし始めた時にそれを防ぐ、という部分にあるので、まだ十分に学習できていない時はBPRで学習するので十分とのこと。 BPRで一旦学習したあと、APRにして再度学習を回すという手法をとっている。 論文中では、BPRで事前学習する他に、摂動の大きさ$\epsilon$を適応的に決めていく方法も示唆している。 学習が進むに連れて、摂動を大きくしていくというアプローチである。 今回の研究ではBPRで事前学習する方法で十分良い結果が出たので、適応的に$\epsilon$を変化させる方法はfuture workだそう。 ## 実験設定 ## データセット * Yelp * Pinterest * Gowalla もちろんimplicit feedback ## 手法 * ItemPop(人気のやつ。personalizedではない) * MF-BPR * CDAE (deep) * NeuMF (deep) * IRGAN (GANつかったやつ) ## 評価指標 trainでinteractしていないitemだけでランキングを推測。 NDCGとHR(hit ratio)をtop Kで計算。 どちらも大きい方が良い。 * NDCG: ランキング上位を当てるとより良い結果に * HR: test itemがランキングにどれだけ含まれているか ## 実験結果 ## 学習曲線 これが一番わかりやすい BPRで学習し続けるのと、APRに切り替えるので、最後の伸びが違う。 ## embedding sizeについて * どのsizeでもAPRの方が良いHR * sizeが大きいほAPRが効果的?(過学習を防いでくれる分) ## 敵対的摂動を加えてテストした時の結果 * どの摂動の大きさでもBPR-MFよりAPRの方が悪化が小さい=> ロバスト ## パフォーマンス * ほぼ全部でAMFが勝利 * BPR-MFのみならずdeep系にも勝っている。パラメータも少なくていいね! ## embedding normの大きさの変化 * APRは学習するにつれembeddingのnormが大きくなる(摂動の影響を小さくするため?) * MF+ L2正則化は小さくなる APRは敵対的摂動による正則化で過学習を防いでいて、従来のL2正則化とは違った方法で汎化性能を向上させている。 ## ハイパーパラメータについて * 摂動の大きさ$\epsilon$は、大きすぎると学習がうまくいかなくなる * 正則化係数$\lambda$はある程度大きい方が良くて、1あたりからあまり性能が変わらない ## おわりに 今回の論文を読んでいると、IR(information retrieval)にGANを使った手法が幾つかあることを知ったので、その辺りも調べていけたらいいなと思います。 この記事とか ありがとうございました。 この記事をシェアする Twitter Facebook Google+ B!はてブ Pocket Feedly コメント
コメント
コメントを投稿