Blog
PFIでは今年の4月から有志で論文の輪講を始めました。有名な学会の論文を毎回二人ぐらいが読んできて、資料を作って発表する、という形になっています。(ちょっと前まではTAPL輪講というものをやっていました。論文輪講が落ち着いたら、次はまた教書に戻るかもしれません。)
私も先日発表をしてきたので、その資料を元にこちらの方でも論文紹介を行いたいと思います。
私が担当したのはSIGIR 2010のFiltering and Recommendationのセッションで、以下の3本の論文を紹介しました。
- Temporal Diversity in Recommender Systems
- Social Media Recommendation Based on People and Tags
- A Network-Based Model for High-Dimensional Information Filtering
この3本の中から、今日は Temporal Diversity in Recommender Systems (N. Latia et al.) を紹介したいと思います。
この論文はレコメンデーション、特にその中のパーソナライゼーションについての論文です。レコメンデーションというとAmazonがいろいろな形でレコメンデーションを既に実現していますが、その中で言うならば、たまに会員に送ってくる「あなたにおすすめの商品はこちら」というメールのようなイメージです。
レコメンデーションの分野の研究は、米Netflix社が公開したデータによって大幅に進んだ面があり、この論文でもNetflix社のデータを使った実験が大半です。Netflix社のビジネスは定額制のDVDレンタルシステムで、DVDというのは非常にたくさんリリースされているので、顧客にDVDをたくさん見てもらうためには、レコメンデーション、つまり「こう言うのを見たらどうですか?」というおすすめが重要になってきます。定額制ではあるものの、DVDを見るという習慣をなくした顧客は契約を解消すると考えられるため、これはビジネス上の重要な課題です。そこで、Netflix社はユーザーがDVDに対してどういう評価を下したかを5段階評価でつけたレビューデータを公開しました。それを使って、これまで多くの研究が行われてきました。
これまでの研究では、ある特定のタイミングでのデータのスナップショットに対して、RMSEという指標を評価し、そのスコアが低ければ低いほど性能が良い、とされてきました。RMSEは、ユーザーがつけた(5段階の)レーティングとシステムが予測したレーティングとの差の二乗で計算されます。(二乗するのは負の数が出てきたときのためと、大きなエラーに対してより重大な意味を持たせるためです。)
しかし、実際のレコメンデーションというのは、例えば週に一回おすすめリストのメールを送る、といったような形で何度も繰り返されるものです。この時、おすすめリストの内容が毎回同じであったら、ユーザーはどう思うでしょうか?
ここには、2つの実験が考えられます。
- おすすめリストの内容が毎回同じだったらユーザーはどう感じるのか?
- そもそも、データは毎回微妙に変わるわけで、おすすめリストの内容が毎回同じであるということはあり得るのか?
この論文では、その2つともを調査しています。
まず、前者の疑問に対しては、実際に映画のレコメンデーションシステムを作ってユーザーに作ってもらい、アンケート調査を行ったそうです。以下の3つのシステムで実験を行いました。実験は5週間に渡って行われ、週に1度ユーザーはおすすめリストを受け取り、前週に見た映画のレーティングをつけました。
- S1: 人気のリストから常に上位n件を出す
- S2: 人気のリストからおすすめするが、毎回7割ぐらいは内容をランダムに入れ替える
- S3: 完全にランダムに出す
実験の結果は、ユーザーがつけた平均レーティングで評価されました。レーティングの順としてはS2 > S1 > S3 となり、毎回同じおすすめリストを使うのはどうもよくないらしい、という結論が出ました。また、S1は回を追うごとに平均レーティングが下がっており、だんだんユーザーの評価が下がっていく、ということが見て取れました。
この実験によって、この論文では、同一ユーザーに対してレコメンデーションを複数回行う場合はアイテムの多様性が重要である、と結論づけています。
次の実験では、レコメンデーションのアルゴリズムを比較し、アイテムの多様性がどれぐらい確保されるかを検証しました。アルゴリズムとしては、
- baseline(アイテムの平均評価に基づいて出す)
- k-NN
- SVD
の3種類が用いられました。
多様性(Diversity)は、おすすめアイテムの中で前回のおすすめリストとかぶっているものの割合、と定義されています。また、この他に、新規性(Novelty)という評価項目もあり、こちらはおすすめアイテムの中で、これまでに一度もそのユーザーに推薦されたことのないアイテムの割合、と定義されています。
実験の結果、baselineは多様性も新規性も低く、RMSEが高い、という結果になりました。k-NNは多様性、新規性は3種類の中ではトップでしたが、RMSEではSVDに劣りました。SVDはその逆で、RMSEは低く、多様性、新規性ではk-NNに負ける、という結果になりました。
これを踏まえ、さらに論文では多様性が高くかつRMSEが低いレコメンデーションを実現するための手法として、以下の三つを提案しています。
- switching (k-NNとSVDを交互に使う)
- user-switching (k-NNとSVDをユーザー単位で交互に使う, )
- re-ranking frequent visitor’s list (よく使うユーザーに対しては、トップn件の結果としてトップm件の推薦結果からランダムに出す)
switchingよりuser-switchingの方が多様性は上で、RMSEではそう変わらない、というような結果でした。re-rankingは多様性はそれほど高くなりませんでしたが、RMSEはswitching, user-switchingよりはちょっと低かったようです。こちらの実験ではNoveltyに関しては評価がありませんでしたが、交互に使うだけでは、結局Noveltyはそんなに上がらないはずで、そうすると、Noveltyという評価項目を前の実験で持ち出してきたのは何だったのだろうか、という疑問が残ります。
感想ですが、多様性が重要なのでは、という問題提起に関しては、とても面白いと感じました。ただ、読み進めていくと、多様性が重要であるという根拠を示すためには、実験が簡単すぎるのではないか、という疑問を持ちました。最初のユーザーアンケートだけで多様性が重要であるという話になって、次の実験ではもう多様性が高い方がいいはずだ、という風に評価基準として使われることに違和感があります。多様性が重要であることは直感的には明らかかもしれませんが、もっといろいろなパターンに関して実験がないと、納得はできない人は多いのではないでしょうか。
その他、全く同じリストを出し続けた場合、ユーザーのレーティングが単調に下がり続ける、というのは面白い知見です。
私がもし実験できるとしたら、前回のおすすめリストとのアイテムかぶりはどれぐらいまで許されるのかという閾値や、多様性と新規性では本当がどっちが重要なのか、といった比較がやりたいところです。
また、論文のテーマとは関係ないですが、究極的にはレコメンデーションというのはユーザーに興味を持たせれば勝ち、持ってもらえなければ負けなので、そう考えると、実用的なエンジンとしては、有用性を目指していくと最終的には強化学習の問題設定を解くことになるのかな、と思いました。
Tag