[レポート] MDS303 ビデオワークフローにおけるパーソナライゼーションとレコメンデーションの進化 #reinvent
はじめに
清水です。AWS re:Invent2019にてセッション MDS303 「Evolution of personalization/recommendation for video workflows」を聴講してきたのでレポートします。
セッションの概要は下記になります。
Personalizing the user experience is proven to increase discoverability, user engagement and satisfaction, and revenue; however, many AWS customers find personalization hard to get right. Effective recommender systems require solving multiple hard problems, including constantly changing user behavior, new catalog items (cold start), etc. In this session, we cover some of the most common methods of personalization/recommendation. Also, Amazon Prime Video shares the evolution of its recommendation system and the real-world challenges it faced when building recommendation systems at scale.
スピーカーは下記のお二人です。
- Liam Morrison - Principal Solutions Architect, Amazon Web Services
- Shaun McCarthy - Senior Manager, Relevance & Machine Learning, Amazon Prime Video
レポート
- アジェンダ
- レコメンデーションエンジンの概要
- レコメンデーションエンジンの共通アプローチ
- Amazon Prime Videoでのレコメンデーションの進化
レコメンデーションエンジンの概要
- レコメンデーションエンジンとは(Wikipediaより引用)
- 推奨システムまたは推奨システム(「システム」をプラットフォームやエンジンなどの同義語に置き換えることもある)は、ユーザーがアイテムに与える「評価」または「好み」を予測しようとする情報フィルタリングシステムのサブクラスです。
- パーソナライズドされていないレコメンデーション
- 店でキュレーションされた棚
- ザガット調査
- ストリーミングサイトの最初のホームページ
- ログインしていないとき
- ユーザーデータなし
- アメリカン・フィルム・インスティチュートのアメリカ映画100年シリーズの100本の映画
- ウェブサイト、新聞の一覧
- パーソナライゼーションとは(Wikipediaより引用)
- パーソナライゼーション(広くカスタマイズと呼ばれる)は、特定の個人(場合によっては個人のグループまたはセグメントに結び付けられる)に対応するためにサービスまたは製品を調整することで構成されます。
- 簡略化したレコメンデーションのアーキテクチャ
- 最もシンプルなのはバックエンドレイヤでデータベースと通信
- データベースはレコメンデーション用のバッチプロセスと連携することも
- リアルタイムのレコメンデーションエンジンAPIとバックエンドが通信することもある
- レコメンデーションシステムは複雑になっていく
- ビデオワークフローにおけるレコメンデーション/パーソナライゼーションの種類
- ホームページでのビデオのレコメンデーション(看板、特集)
- ジャンルやカテゴリ(トップX動画、各ユーザ向けのコメディーやドラマ)
- アイテム感の類似性(これが好きな人はきっとxも好きなはず)
- 個人向けのランキング(検索やジャンル)
- レイアウトのカスタマイズ(カルーセルの順序など)
- アートワークやサムネイルのカスタマイズ
- Eメールやプッシュ通知での通知
- レコメンデーションアーキテクチャにトレーニング環境が必要になる
- 明示的フィードバックを使う
- 数値でのレーティング
- 星を使ったレーティング
- サムズアップ、いいね!
- サーベイ
- 長所
- ユーザーの立場は明示的に述べられている
- 短所
- 実際に評価/投票する人は非常に少ない
- 多くの人は、好きか嫌いか、だけでの評価
- 調整が難しい
- 明示的フィードバック: MovieLens 20Mデータセット
- MovieLens(https://movielens.org/)で収集された5つ星評価とフリーテキストのタギングにyるデータセット
- 27,278本の映画に対する、20,000,263のレーティング(星評価)と465,564タグ情報
- 視聴者が対象のすべての映画を見ているわけではないこと、見た映画すべてに評価をしているわけではないことから、レーティングの99.5%は特定できないデータ
- https://grouplens.org/datasets/movielens/20m/
- 暗黙的フィードバック
- ユーザーが行ったアクションに基づくフィードバック
- コンテンツのクリックや視聴
- 購入
- 完了する前のコンテンツの終了
- カートへの追加
- 長所
- コンテンツ表示のためには必要なアクションなので、データとして収集は可能
- いたずらされにくい
- 短所
- ユーザが実際にコンテンツを気にいったか、という判断ができない(クリックしただけ、などの評価)
- ネガティブフィードバックがない
- ノイズデータが発生する
- レコメンデーションエンジンのためのAWSサービス
- Amazon Personalize
- Amazon SageMaker(Factorization machines, Gluon, K-NN, BYO)
- Amazon EMR(Spark, Apache MXNet on AWS, TensorFlow)
- Amazon Elastic Compute Cloud(Amazon EC2)/AWS Deep Laerning AMI/Container
- Partner solutions
レコメンデーションエンジンの共通アプローチ
- コンテンツベースのフィルタリング
- 明示的または暗黙的に提供される既知のユーザー設定にもとづいてレコメンデーションを生成する
- 利点
- 新しいアイテムに対してコールドスタートがほとんどない
- 大規模なユーザーベースに依存しない
- 実装が簡単
- 協調フィルタリングと比較して
- 解釈可能なレコメンデーション
- 欠点
- 多様性とセレンディピティの欠如
- 相互依存関係や複雑な動作をキャプチャしません
- 新規ユーザー向けのコールドスタート
- 協調フィルタリング(Collaborative filtering)
- アイテム間とユーザ間の関係にもとづく
- 明示的および暗黙的な特徴から派生
- レコメンデーションはほかのユーザの経験にもとづく
- https://www.cs.umd.edu/~samir/498/Amazon-Recommendations.pdf
- 利点
- レコメンデーションの多様性
- セレンディピティと発見可能性
- ユーザー間またはアイテム間の情報を収集する
- より良い予測
- スケーラブル
- 特徴抽出が容易
- 欠点
- コールドスタートの問題
- 評価時ののユーザー変動
- コンテンツベースと比較して解釈可能性が低い
- コンテンツベースと比較して実装が複雑
- 計算コストが高い
- 行列の分解の例
- https://www.csie.ntu.edu.tw/~b97053/paper/Rendle2010FM.pdf
- Amazon SageMakerでの因数分解
- k近傍法による因数分解の拡張
- 深層学習(ディープラーニング)によるレコメンデーションエンジン
- オートエンコーダ(自己符号化器)
- Restricted Boltzmann Machine(RBM)
- 回帰型ニューラルネットワーク(RNN)
- 畳み込みニューラルネットワーク(CNN)
- 自然言語処理(NLP)
- Deep reinforcement learning
- Adversarial networks
- ハイブリッドモデル
- 利点
- 複雑な相互作用をモデリング可能(非線形)
- 順次データをモデル化可能(ユーザの背後で)
- フレキシブル
- 特徴抽出に集中する必要が少なくてすむ
- 欠点
- 大量のデータが必要
- 非常に低い解釈可能性
- 実装が複雑
- 計算コストが高い -
- パーソナライゼーションのためのモデリング
- 関心のある/なしの時間軸での変化は、将来の好みの指標になる
- 靴 -> 靴 -> 靴 -> パソコン、とたどった場合、ユーザは引き続きパソコンに興味がある
- パソコン -> 靴 -> 靴 -> 靴 とたどっている場合、ユーザは靴に興味がある
- Sequentialモデル
- https://openreview.net/pdf?id=ByzxsrrkJ4
- 関心のある/なしの時間軸での変化は、将来の好みの指標になる
- Amazon Personalizeを使った機械学習でのパーソナライゼーションとレコメンデーション
- Webアプリケーションのためのリアルタイムパーソナライゼーション
- ブラウザからリアルタイムデーアをAmazon Personalizedに送信
- レコメンデーションのリクエストはWebサーバへ
- WebサーバからAmazon Personalizedへクエリを投げる
- バンディットアルゴリズム(マルチアームバンディット)
- スロットマシーンの列でギャンブラーを想像することから生じる確率理論問題
- 片腕の盗賊
- 誰がどのマシンをプレイするか、各マシンを何回プレイするか、どの順番でプレイするか、現在のマシンを継続するか別のマシンを試すかを決定する必要がある
- https://aws.amazon.com/jp/blogs/machine-learning/power-contextual-bandits-using-continual-learning-with-amazon-sagemaker-rl/
Amazon Prime Videoでのレコメンデーションの進化
ここからShaun McCarthyさんに代わり、Amazon Prime Videoでのレコメンデーションについての紹介です。
- 事例内容として
- 顧客の問題点の説明
- ソリューションの進化
- 道にそった学習
- 顧客が抱える問題点
- どのようにレイアウトしたらよいか
- 顧客視点ではじめる
- 物理的な店舗
- 典型的な解決策
- スピアフィッシング: 最近の、人気のある映画を上にする。店員が教える
- Some idea: ジャンル分け
- No idea: ブラウズさせるか、店員が教える
- 物理的制約を考えると
- すべての顧客に対して同じレイアウトになる
- 顧客について店員側は何も情報がない
- 棚などスペース上の問題
- 典型的な解決策
- オンライン映画では
- 物理と異なる点
- オンラインでのレイアウト変更はより安価にできる
- 店舗は個々の顧客でことなる
- 顧客の情報をより多く知ることができる
- ソリューションはミッションに依存する
- スピアフィッシング: 検索
- Some idea: セクションの代わりにカルーセル
- No idea: パーソナライズドされたレコメンデーション
- 物理と異なる点
- スケールするレコメンデーション
- 1億以上のプライム会員
- 世界中200以上の国と地域
- 豊富なカタログ
- 成功の測定
- 長期的なエンゲージメントの最大化
- 何度も何度も顧客を喜ばせたい
- A/Bテスト
- 私たちがやったことは正しいのか?
- 顧客が楽しむものをレコメンドする
- 提案したものを視聴したか?の精度
- 長期的なエンゲージメントの最大化
- はじめてみる
- やりかた
- コンテンツベースのフィルタリング
- 協調フィルタリング
- ハイブリッドソリューション
- シンプルに
- すばやく価値提供する
- 改善点に関する初期データ
- デバッグしやすく
- やりかた
- コンテンツベースのフィルタリングの結果
- 良かった点
- デバッグしやすい
- レコメンデーションはおおむねよさそう
- 顧客エンゲージメントの増加
- 良くなかった点
- 大勢の人々に同じタイトルを勧めた
- 静的であること
- 顧客はそれほど単純ではない
- ロングテールのメタデータについては品質が高くない
- 良かった点
- 成功測定方法のアップデート
- 長期的なエンゲージメントの最大化
- 何度も何度も顧客を喜ばせたい
- 私たちがやったことは正しいのか?
- 人々が楽しむものをレコメンドする
- 包括的に
- カタログ内から深くタイトルを表面化
- 変換された収束(一意に推奨され、視聴されるか)
- 長期的なエンゲージメントの最大化
- 協調フィルタリングの結果
- 良かった点
- より適切なレコメンデーション(〜2倍)
- より包括てきなレコメンデーション
- 顧客エンゲージメントの増加
- 良くなかった点
- 同じ顧客に同じタイトルを何度も何度もレコメンデーションしてしまった
- 古いタイトルのレコメンデーション
- テイストを変えることができない
- 良かった点
- ニューラルネットワークの結果
- 良かった点
- より適切なレコメンデーション(〜3倍)
- より包括てきなレコメンデーション(〜3倍)
- 顧客エンゲージメントがより大きく増加
- マルチドメイン(https://openreview.net/forum?id=S108WDJvf)
- 良くなかった点
- 一部のタイトルがまったくでてこない
- 良かった点
- Amazon CEO Jeff Bezosのことばとして
- 逸話とデータが一致しない場合、逸話は通常正しい
- より探索する
- 問題の定式化
- TV視聴、視聴完了、多様性
- 構造の異なり
- コスト機能、アクチヴェーション、レイヤー、最適化
- 最先端のアプローチ
- Residual Network、シーケンスモデル
- 問題の定式化
- 抽象化によってシンプルにする
- 自作の特徴量 ->振る舞いから特徴を学ぶ
- 特徴量のエンジニアリング -> 振る舞いから表現を学ぶ
- ワークフローはコピー&ペースト -> 共通のステップとフローのパラメータ化
- トレーニングのカスタム化 -> フレームワークへの置き換え
- 推論のカスタム化 -> AWS Batch、AWS Elastic Inference
- モデルを進化させる -> Amazon Personalizeで実現できる?
- まとめ
- 顧客を起点にはじめる
- 何を持って成功とするか決める
- シンプルに保ち、機敏さを保つ
- 失敗を受け入れる
- これらを繰り返す
感想
ビデオワークフローに限らずですが、パーソナライゼーションやレコメンデーションを行うにあたり、やはり基本となってくるのは機械学習や深層学習など学習になるかと思います。それらの基本的な技術要素をおさえつつ(実際本セッションの内容でけっこうわからないことがあり、勉強しなきゃなと思いました)、ユースケースにあった手法の選択や評価方法の確立が重要ですね。また、あわせて大事なのが、すぐに初めて失敗を繰り返しながら質を高めていくことだなと、Amazon Prime Videoの事例からも思いました。