An Introduction to Search and Recommender Syste...

An Introduction to Search and Recommender Systems for Product Manager

LegalOn Technologies, Inc

October 02, 2024
Tweet

More Decks by LegalOn Technologies, Inc

Transcript

  1. 2 1 2 3 検索・推薦とはなにか 検索・推薦システムの概要と、検索と推薦の 違いについて知る 検索・推薦技術入門 検索・推薦で何ができて、何ができないのか をなんとなく理解し、検索・推薦を使った

    施策のヒントを得る 検索・推薦の評価 検索・推薦システムの評価について理解し、 精度改善の方策を考えられるようになる ゴール
  2. 5 • 検索システムの基本機能 ◦ フィルタリング ◦ ランキング(ソート) • 検索に関連する周辺機能 ◦

    リランキング ◦ 多言語検索 ◦ ファセット検索 ◦ オートコンプリート(QAC; query auto-complete) ◦ クエリサジェスト(もしかして検索) ◦ 質問応答(QA) ◦ etc. 検索システムとその周辺機能
  3. 6 複数の候補から価値のあるもの を選び出し、意思決定を 支援するシステム 風間 正弘, 飯塚 洸二郎, 松村 優也.

    推薦システム実践入門―仕事 で使える導入ガイド 推薦システムとは https://www.amazon.co.jp/ https://www.netflix.com/
  4. 7 • 推薦の目的 ◦ ユーザーやアイテムの情報から、ユーザーが嗜好するであろうアイテ ムを予測すること • 推薦の種類 ◦ 概要推薦

    ▪ 新着順、人気順など、パーソナライズしない推薦 ◦ 関連アイテム推薦 ▪ 「類似」しているアイテムを推薦 ◦ パーソナライズ推薦 ▪ ユーザーの行動ログなどからアイテムを推薦 推薦とはなにか
  5. 8 検索と推薦の位置づけ クエリ \ データ 非構造化データ Unstructured 構造化データ Structured 明示的

    Explicit 情報検索 Information Retrieval 関係データベース Relational Database 暗黙的 Implicit 推薦システム Recommender System 未知 Unknown データマイニング Data Mining Ricardo Baeza-Yates. 2020. Bias in Search and Recommender Systems. In Proceedings of the 14th ACM Conference on Recommender Systems (RecSys '20). Association for Computing Machinery, New York, NY, USA, 2. https://doi.org/10.1145/3383313.3418435
  6. 9 • 検索=ユーザーがキーワードなどを入力する(能動的) ◦ 入力 ▪ 検索キーワード ▪ ユーザーのコンテキスト ◦

    出力 ▪ アイテムの集合(ランキング) • 推薦=ユーザーが好みそうなアイテムをシステムが提示する(受動的) ◦ 入力 ▪ ユーザーの情報 ▪ アイテムの情報 ▪ ユーザーとアイテムのインタラクション情報 ◦ 出力 ▪ アイテムの集合(ランキング) 検索と推薦の違い 検索と推薦は非常に近い分野であり、たとえば推薦のために内部的にElasticsearch等の検索エンジンが使われることも多々ある ユーザーの情報要求 (information need) が明確 ユーザーの情報要求が不明確 もしくは存在しない
  7. 12 検索モデル CS 276 / LING 286: Information Retrieval and

    Web Search 本当のユーザタスク (user task) から情報ニーズ (information needs) が構築されるまでに誤解 (misconception) の余地がある 情報ニーズからクエリが構成されるまでに成形ミス (misformulation) が発生することがある やりたいこと 情報ニーズ クエリ ユーザーは最初から完璧な クエリを書けるわけではない ユーザータスクを達成するために総 合的に考える必要がある
  8. 13 • Informational(情報型) ◦ 「Elasticsearch について知りたい」 • Transactional(取引型) ◦ 「ワンピース(服)を買いたい」「航空券を予約したい」

    • Navigational(案内型) ◦ 「LegalOn Technologies の会社概要ページを見たい」 検索意図(情報ニーズ)の分類 ユーザーの検索意図によって、返すべき文書集合や見せ方も変わってくる
  9. 14 • 適合率 (precision) ◦ 検索システムが返した文書集合 (retrieved elements) のうち、適合している文書の割 合

    • 再現率 (recall) ◦ 適合している文書 (relevant elements) の うち、検索システムが返した文書の割合 • 適合率と再現率はトレードオフ ◦ 両方100%は不可能、要はバランス ◦ どちらを重視するかはサービスやユース ケースによって異なる 検索結果の「よさ」 https://en.wikipedia.org/wiki/Precision_and_recall
  10. 16 • 逐次検索型(grep型) ◦ すべての対象テキストを走査 ◦ 文書数が多くなると遅くなっていく • インデックス型 ←現在主流の方式 ◦

    事前にインデックス(索引)を作っておくことで、高速に検索できる ◦ 転置インデックス (inverted index) というデータ構造を使用する ◦ Elasticsearchはこの方式 全文検索の方式
  11. 17 • 本の索引 (index) みたいなもの ◦ キーワードと、それが含まれる文書リスト • Pros: キーワードが含まれる文書を高速

    に取り出せる • Cons: 事前にインデックスを作る必要 がある 転置インデックスとは? 秘密 契約 ︙ 転置インデックスの構造(イメージ)
  12. 21 全文検索の流れ クエリ クエリ拡張 スコア計算 転置インデックス のルックアップ トークナイズ 言語判定 カテゴリ判定

    固有表現認識 ストップワード 除去 クエリ理解、言語解析 検索結果 リランキング フィルタリング クエリ処理 後処理 クエリ構文解析 正規化 ステミング
  13. 22 • キーワードマッチだけでは限界がある ◦ 「意味」をとらえた検索をすることで検索精度を向上させたい • 基本的なアイデアは以下 ◦ クエリと文書の「意味」を、言語モデルで高次元ベクトルにエンコードする ▪

    ベクトル空間上で距離が近いものを「似ている」と考える • そうなるように学習している • このベクトルは「(意味)埋め込み」とも呼ばれる ◦ ベクトル空間上で距離が近い文書を検索する ▪ クエリベクトルと「近い」文書ベクトルを探す ▪ ベクトル検索エンジンを使うと高速に検索できる(Elasticsearchでも可) • キーワード検索と組み合わせることもできる(ハイブリッド検索) ◦ 現在も発展していて、まだベストプラクティスは確立していない 意味検索(セマンティックサーチ)
  14. 23 • スコアリング(スコア関数)について • ブーリアン検索の詳細 • 形態素解析と N-gram について •

    検索の周辺技術 ◦ リランキング ◦ QAC ◦ キーワードサジェスト ◦ etc. 話さなかったこと
  15. 24 検索システム ― 実務者のた めの開発改善ガイドブック さらに学ぶために - 検索 打田智子, 古澤智裕,

    大谷 純, 加藤 遼, 鈴木翔吾, 河 野晋策 情報検索 :検索エンジンの実 装と評価 Stefan Büttcher, Charles L. A. Clarke, Gordon V. Cormack 梅澤 克之, Neil Rubens, 松田 健, 三川 健太, 水野 信也, 山本 健司 (翻訳) Introduction to Information Retrieval Christopher D. Manning, Prabhakar Raghavan and Hinrich Schütze 書籍
  16. 25 • スライド ◦ 情報検索の基礎 | slideshare • 記事 ◦

    情報検索とその周辺 | stop-the-world ◦ クランフィールド検索実験から2019年のニューラルモデルまで | Qiita ◦ Information Retrieval and Web Search Advent Calendar 2020 | Adventar ◦ Google検索品質評価ガイドライン | 株式会社デジタルファーム さらに学ぶために
  17. 27 1 2 3 検索・推薦とはなにか 検索・推薦システムの概要と、検索と推薦の 違いについて知る 検索・推薦技術入門 検索・推薦で何ができて、何ができないのか をなんとなく理解し、検索・推薦を使った

    施策のヒントを得る 検索・推薦の評価 検索・推薦システムの評価について理解し、 精度改善の方策を考えられるようになる 今日のゴール
  18. 28 複数の候補から価値のあるもの を選び出し、意思決定を 支援するシステム 風間 正弘, 飯塚 洸二郎, 松村 優也.

    推薦システム実践入門―仕事 で使える導入ガイド 推薦システムとは(再掲) https://www.amazon.co.jp/ https://www.netflix.com/
  19. 29 • 推薦の目的 ◦ ユーザーやアイテムの情報から、ユーザーが嗜好するであろうアイテ ムを予測すること • 推薦の種類 ◦ 概要推薦

    ▪ 新着順、人気順など、パーソナライズしない推薦 ◦ 関連アイテム推薦 ▪ 「類似」しているアイテムを推薦 ◦ パーソナライズ推薦 ▪ ユーザーの行動ログなどからアイテムを推薦 推薦とはなにか(再掲)
  20. 34 検索と推薦の位置づけ(再掲) クエリ \ データ 非構造化データ Unstructured 構造化データ Structured 明示的

    Explicit 情報検索 Information Retrieval 関係データベース Relational Database 暗黙的 Implicit 推薦システム Recommender System 未知 Unknown データマイニング Data Mining Ricardo Baeza-Yates. 2020. Bias in Search and Recommender Systems. In Proceedings of the 14th ACM Conference on Recommender Systems (RecSys '20). Association for Computing Machinery, New York, NY, USA, 2. https://doi.org/10.1145/3383313.3418435
  21. 35 • 検索=ユーザーがキーワードなどを入力する(能動的) ◦ 入力 ▪ 検索キーワード ▪ ユーザーのコンテキスト ◦

    出力 ▪ アイテムの集合(ランキング) • 推薦=ユーザーが好みそうなアイテムをシステムが提示する(受動的) ◦ 入力 ▪ ユーザーの情報 ▪ アイテムの情報 ▪ ユーザーとアイテムのインタラクション情報 ◦ 出力 ▪ アイテムの集合(ランキング) 検索と推薦の違い(再掲) 検索と推薦は非常に近い分野であり、たとえば推薦のために内部的にElasticsearch等の検索エンジンが使われることも多々ある ユーザーの情報要求 (information need) が明確 ユーザーの情報要求が不明確 もしくは存在しない
  22. 37 推薦システムのモデル 入力 (Input) 推薦アルゴリズム (予測モデル) プロセス (Process) 出力 (Output)

    入力から嗜好アイテムを予測する ユーザーの コンテンツ情報 アイテムの コンテンツ情報 ユーザーとアイテムの インタラクション情報 (行動履歴) 推薦アイテム のリスト • 媒体はWebサイトだった りメールだったり様々 • 推薦理由などの説明を付 与することも (アルゴリズムによっては使わないものもある)
  23. 38 • 内容ベースフィルタリング (content-based filtering) ◦ ユーザー・アイテムのコンテンツ情報を使う • 協調フィルタリング (collaborative

    filtering) ◦ ユーザーの行動履歴を使う • ハイブリッドフィルタリング (hybrid filtering) ◦ 2つの組み合わせ 推薦アルゴリズム
  24. 40 • ユーザとアイテムのインタラク ション情報(行動ログ)から 嗜好アイテムを予測 ◦ 特徴量やドメイン知識がなくて も予測できる ◦ 行動ログが溜まるまでは予測精

    度が低い=コールドスタート問 題 協調フィルタリング i1 i2 i3 i4 A 👍 👎 👍 👍 B 👍 👎 👎 C 👍 👍 👎 D 👎 👍 E 👍 👍 ? 👎
  25. 41 協調フィルタリング vs. コンテンツベース 内容ベース 協調フィルタ 多様性 👎 ✅ コールドスタート

    😑 👎 カバー率 ✅ 👎 ユーザー数が 少ない場合 ✅ 👎 アイテム特徴量の 活用 ✅ 👎 予測精度 😑 ✅
  26. 44 • 推薦アルゴリズムはバイアスとの戦い ◦ 実システムでは様々なバイアスが混入する ◦ 「オフライン評価では成績良かったのに・・・」 • 対策 ◦

    推薦アルゴリズムの数理モデルに組み込む、データセットの作りかたを工夫, etc. 推薦におけるバイアス ポジションバイアス ランキング上位のアイテムに行動が偏る セレクションバイアス ユーザーが選好したアイテムのみに行動が偏る 同調バイアス 他のユーザーの評価に影響される 表示バイアス 表示されやすいアイテムに行動が偏る 人気バイアス 人気のアイテムがより推薦されやすい バイアスの例
  27. 45 • 推薦システムの「良さ」を定義するのは難しい ◦ ただユーザーにクリックさせればよいわけではない ◦ 情報要求が明確な、情報検索とは異なる • 予測精度以外の基準 ◦

    新規性 (novelty) ▪ 過去に見たアイテムと類似していない ◦ セレンディピティ (serendipity)・多様性 (diversity) ▪ 推薦アイテム集合のアイテムが互いに類似していない 推薦システムの「良さ」
  28. 51 推薦システム実践入門―仕事 で使える導入ガイド さらに学ぶために 風間 正弘, 飯塚 洸二郎, 松村 優也

    Recommender Systems The Textbook Charu C. Aggarwal 情報推薦システム入門 -理論 と実践- Dietmar Jannach, Markus Zanker, Alexander Felfernig, Gerhard Friedrich 田中 克己, 角谷 和俊 (翻訳) 書籍
  29. 52 • スライド ◦ 推薦システム | kamishima.net ◦ 「機械学習〜推薦システムを題材に〜」講義資料(生成AIの話題も含む)|masa_kazama •

    記事 ◦ これから推薦システムを作る方向けの推薦システム入門|masa_kazama ◦ Search&Discovery 全部俺 Advent Calendar 2019 - Adventar さらに学ぶために
  30. 54 1 2 3 検索・推薦システム の評価方法 オフライン評価、オンライン評価、ユーザー スタディ 評価指標 集合、予測誤差、ランキングの評価指標

    A/Bテストによる オンライン評価 メトリクスの決定、A/Bテストのワークフ ロー、実験プラットフォーム 検索・推薦システムの評価
  31. 55 オフライン評価 オンライン評価 ユーザースタディ 概要 データセットを使ってモデル の性能を評価 実際のサービスに出して評価 ユーザーに直接触ってもらっ て評価

    評価方法 シミュレーション A/Bテスト、インターリービ ング、多腕バンディット アンケート、 インタビュー 目的 モデルの性能向上 実際のサービスでの仮説検証 ユーザーから洞察を得る データセット構築コスト 中〜高 なし なし〜低 実装コスト 低 低〜高* なし〜中 評価実施コスト 低 低〜高* 大 再現性 高 中 低 実利用者への影響 なし あり なし UIの評価 ✅ ✅ ビジネス指標の評価 ✅ * 実験プラットフォームのシステム化の程度による 検索・推薦システムの評価方法
  32. 56 • データセットを構築 ◦ アノテーション、もしくはサービスのログから構築 • データセットを入力として、モデルの予測精 度を評価 ◦ テストデータからモデルの出力(2値、連続値、ラン

    ク付きリスト, etc.)を計算 ◦ データセットに含まれる正解と、モデルの出力を比 較し、評価指標を計算 オフライン評価 データ セット システム 集合の評価 予測誤差の評価 ランキングの評価 概要 アイテムごとの正 解・不正解を評価 モデルの出力と 正解との差を評 価 モデルが出力し たランク付きリ ストを評価 代表的な 評価指標 正解率、再現率、 適合率、F値 MAE、RMSE nDCG、MAP、 RR 結果 実験者
  33. 57 • 新しいモデル(アルゴリズム)の出力やUI をユーザーに見せ、その反応を測定する • 代表的な手法 ◦ A/Bテスト ◦ インターリービング

    ◦ 多腕バンディット • 評価指標の例 ◦ CTR、CVR ◦ 収益、継続率 ◦ セッション成功率 ◦ (サービス・実験ごとに何がよいかは異なる) オンライン評価 システム ログ コントロール群 ユーザー 介入群 ユーザー 新しいモデル の結果 既存モデル の結果 ログの保存 A/B テストによるオンライン評価
  34. 60 1 2 3 4 集合の評価指標 2値の評価指標 予測誤差の評価指標 連続値の評価指標 ランキングの評価指標

    ランク付きリストの評価指標 その他の評価指標 検索・推薦結果特有の評価指標 検索・推薦システムの評価指標
  35. 61 • タスク:2値分類問題 ◦ 対象集合の要素が、適合 (1) か非適合 (0) かをそれぞれ予測する ◦

    モデルが出力した top-k の集合を対象として評価指標を計算する • 評価指標 ◦ 適合率 (precision) ◦ 再現率 (recall) ◦ F値 (F-score) 評価指標(1): 集合の評価
  36. 62 • 適合率 (precision) ◦ 検索システムが返した文書集合 (retrieved elements) のうち、適合している文書の割合 •

    再現率 (recall) ◦ 適合している文書 (relevant elements) のうち、検 索システムが返した文書の割合 • F値 (F-score) ◦ F尺度 (F-measure) とも呼ぶ ◦ 亜種があるが、F1 が最もメジャー ◦ F1 (F1-score): 適合率と再現率の調和平均 適合率・再現率・F値 - 集合の評価 https://en.wikipedia.org/wiki/Precision_and_recall
  37. 63 • 混同行列 (Confusion Matrix) ◦ 評価結果を、「モデル予測の正負」と「実デー タの正負」の2軸で視覚的に表現したもの ◦ True

    Positive (TP): 実データが正、予測も正 ◦ False Positive (TP): 実データが負、予測は正 ◦ 例:PCR検査の偽陽性・偽陰性 • 以下のように読み替えれば間違えない ◦ Trueは「モデルが正しく予測した」 ◦ False は「モデルが間違って予測した」 ◦ Positive は「陽性(モデルが1と出力した)」 ◦ Negative は「陰性(モデルが0と出力し た)」 混同行列 - 集合の評価 実データ \ モデル予測 Positive (正) Negative (負) Positive (正) 真陽性 TP; True Positive 偽陰性 FN; False Negative Negative (負) 偽陽性 FP; False Positive 真陰性 TN; True Negative • 正解率 (accuracy) ◦ True Positive (TP) + True Negative (TN) がモデルの正解数 ◦ 正解率 = TP + TN / 全体
  38. 64 • 正解率 (accuracy) ◦ モデルが正 (1) や負 (0) と予測したものが、実際に正解である割合

    • 適合率 (precision) ◦ モデルが正 (1) であると予測したものが、実際に正 (1) である割合 • 再現率 (recall) ◦ 実際に正 (1) であるデータのうち、モデルが正 (1) であると予測した割合 • F値 (F-score) ◦ 適合率と再現率のバランス 集合の評価まとめ
  39. 65 1 2 3 4 集合の評価指標 2値の評価指標 予測誤差の評価指標 連続値の評価指標 ランキングの評価指標

    ランク付きリストの評価指標 その他の評価指標 検索・推薦結果特有の評価指標 検索・推薦システムの評価指標
  40. 66 • タスク:対象の適合性を予測する(回帰問題) ◦ モデルの予測値とテストデータの値との誤差(連続値) • 評価指標 ◦ 平均絶対誤差 (MAE;

    mean absolute error) ◦ 平均二乗誤差平方根 (RMSE; root mean squared error) ◦ 決定係数 R2 (coefficient of determination R2) • MAE のほうが RMSE より、外れ値の影響を受けにくい ◦ 言い換えると、外れ値の影響を考慮したい場合は RMSE を使っ て評価する 評価指標(2): 予測誤差の評価 ŷi: 予測値, yi: 正解値, ӯ: 平均値
  41. 67 1 2 3 4 集合の評価指標 2値の評価指標 予測誤差の評価指標 連続値の評価指標 ランキングの評価指標

    ランク付きリストの評価指標 その他の評価指標 検索・推薦結果特有の評価指標 検索・推薦システムの評価指標
  42. 68 • Precision@k ◦ ランク付きリスト k 位までの適合率 (precision) • Recall@k

    ◦ ランク付きリスト k 位までの再現率 (recall) • 逆数順位 (RR; reciprocal rank) ◦ 最初に見つかった適合文書のランクの逆数 • nDCG (normalized discounted cumulative gain) ◦ 理想的リストとの差を定量化したもの 評価指標(3): ランキングの評価指標
  43. 69 • 平均適合率 (AP; Average Precision) ◦ 適合しているものが見つかるたびにそ こまでの適合率を計算し、その平均を とったもの

    ◦ I(r): r位が適合なら1、そうでないなら0 を返す指示関数 • 平均精度 (AP) を複数の検索結果で平均した ものを MAP (Mean Average Precision) という Precision@k・平均適合率・MAP - ランキングの評価指標 ランキング1 ランキング2 1 ✅ ✅ 2 3 ✅ 4 ✅ ✅ 5 Precision@5 0.6 (= ⅗ ) 0.4 (= ⅖) 平均適合率 (AP) (1 + ⅔ + ¾) / 3 = 0.81 (1 + 2/4) / 2 = 0.75 • Precision@k ◦ ランク付きリスト k 位までの 適合率 (precision)
  44. 70 Recall@k - ランキングの評価指標 ランキング1 ランキング2 1 ✅ ✅ 2

    3 ✅ 4 ✅ ✅ 5 ランク外 ✅ ✅ ランク外 ✅ ランク外 ✅ ✅ Recall@5 0.6 (= ⅗) 0.4 (= ⅖) • Recall@k ◦ ランク付きリスト k 位までの再現 率 (recall) ◦ k 位までに含まれる適合アイテム が、すべての適合しているアイテ ムのうち、どのくらいの割合含ま れているか
  45. 71 • 逆数順位 (RR; reciprocal rank) ◦ 適合アイテムの最上位のランクを r1 とすると、

    RR = 1 / r1 ◦ ユーザーが求めているアイテムが1つでも見つかればよい、という指標 ◦ 検索意図が Navigational (誘導型)である場合に適している • 平均逆数順位 (MRR; mean reciprocal rank) ◦ 結果のランキング全体に対して逆数順位を平均したもの 逆数順位 (RR; reciprocal rank) - ランキングの評価指標
  46. 72 • ランキング全体の得点(利得)を考慮に入れる ◦ g(r)を、ランキングr位の結果の利得 (gain) とする ◦ 例えば高適合を3点、部分適合を1点とする、など •

    第r位のdg (discounted gain) を以下のように定義する ◦ log(r+1) によって、ランクが下になるほど利得が ディスカウントされていく • DCG@k (discounted cumulative gain) ◦ dg(r) を k 番目まで累積したもの nDCG@k - ランキングの評価指標 • nDCG (normalized discounted cumulative gain) ◦ 理想的リスト (ideal list) を考え、その DCG@k (DCG*@kとする)で正規化した DCG@k • 以下の場合、DCG@4 = 3/log(1+1) + 1/log(4+1) = 3.4、DCG*@4 = 3/log(1+1) + 3/log(2+1) + … = 5.8、nDCG@4 = 3.4 / 5.8 = 0.59 ランク r 利得 g(r) 減損利得 dg(r) 理想的リストの 利得 g*(r) 理想的リストの 減損利得 dg*(r) 1 3 3 / log(1+1) 3 3 / log(1+1) 2 0 0 3 3 / log(2+1) 3 0 0 1 1 / log(3+1) 4 1 1 / log(4+1) 1 1 / log(4+1)
  47. 73 1 2 3 4 集合の評価指標 2値の評価指標 予測誤差の評価指標 連続値の評価指標 ランキングの評価指標

    ランク付きリストの評価指標 その他の評価指標 検索・推薦結果特有の評価指標 検索・推薦システムの評価指標
  48. 74 • 2つの集合の類似度 ◦ Jaccard 係数 (Jaccard coefficient):集合どうしの共通の要素が占める割合 • 2つのランキングの相関

    ◦ ケンドールの順位相関係数 (Kendall rank correlation coefficient) またはケンドールのタ ウ (Kendall’s tau) ◦ スピアマンの順位相関係数 (Spearman’s rank correlation coefficient) またはスピアマン のロー (Spearman’s rho) ◦ Rank biased overlap (RBO) • 推薦での評価指標 ◦ 新規性 (novelty):過去に見たアイテムと類似していない ◦ セレンディピティ (serendipity)・多様性 (diversity):推薦アイテム集合のアイテムが互 いに類似していない 評価指標(4): その他の評価指標
  49. 76 • ユーザーに対して変更を表出させ、その反応を見る ◦ 良かったものだけを正式に製品に取り込む • データ駆動による意思決定 ◦ オンラインテストから現実世界に対する仮説を 検証する

    ◦ 新しく実装・改善したものが本当に良かったの か、統計的に確認することができる ◦ ただし、特定の条件下でのテストであることを 忘れずに ▪ 過度な汎化に注意 オンライン評価 システム ログ コントロール群 ユーザー 介入群 ユーザー 新しいモデル の結果 既存モデル の結果 ログの保存 A/B テストによるオンライン評価
  50. 77 実験成熟度モデル (experimentation maturity models):データ駆動の組織の成熟度を表す 1. クロール (crawl) フェーズ ◦

    1ヶ月に1回程度の実験を設計・実行・分析できる ◦ 仮説検証のために必要な統計量の計算ができる基盤がある 2. ウォーク (walk) フェーズ ◦ 週に1回程度の信頼できるオンラインテストが実行できる ◦ 標準的なメトリクスの策定ができている 3. ラン (run) フェーズ ◦ 毎日のようにオンラインテストが実行できている ◦ 合意された評価基準をもとに、一貫した意思決定ができる 4. フライ (fly) フェーズ ◦ 年に1,000回以上の実験が実行されている ◦ すべての変更において、オンラインテストが標準手法になっている ◦ すべての実験と変更は記録され、集計は自動化されている 実験成熟度モデル
  51. 78 • A/Bテスト (A/B testing) ◦ 対照群 (control group) にはそのまま現行システムを割り当てる

    ◦ 介入群 (treatment group) に新システムを割り当てる • インターリービング (interleaving) ◦ 新システムの結果と現行システムの結果を混ぜて表示する • 多腕バンディット (multi-armed bandit algorithm) ◦ システムによってビジネス指標が上下する ◦ ユーザーへのシステムの割り当てを最適化し、報酬を最大化 代表的なオンライン評価の方法
  52. 79 1. 実験の定義 a. 課題定義 b. 仮説の立案 c. 実験デザイン(評価基準の決定など) 2.

    PoC a. モデルの選定 b. モデルの最適化・オフライン評価 3. 実装 a. モデルの実装・プロダクトへの組み込み b. 負荷試験・定性評価 c. デプロイ 4. 実験の実行 a. 実験群への割り当て・A/Bテスト開始 b. メトリクスやアラートの監視 c. 集計・分析 5. ネクストアクションの決定 a. 仮説の検証・リリース判断 A/Bテストのワークフロー
  53. 80 • オンラインでの実験のために、OEC(総合評価基準)を設定する ◦ 実験の目的の定量的で明確な指標 ◦ 可能な限り、実験の前に決めておく • OEC は、以下の条件を満たすのが望ましい:

    ◦ 測定可能:なんらかの方法でメトリクスが記録・計算できる ◦ 紐付け可能:各実験群にメトリクスが紐付けて比較できる ◦ 鋭敏:実験中にメトリクスの変化が見える(例えば解約率などの遅行指標は適さない) ◦ 単一もしくは最小:意思決定の一貫性や自動化のため、メトリクスをできるだけ1つにまとめる OEC (Overall Evaluation Criterion): 総合評価基準
  54. 81 • 複数のメトリクスを1つのOECにまとめる ◦ 検索エンジンを考えたとき、収益だけをOECにすると、ユーザー体験を損なう変更(広告を増やすな ど)が「良い」とされてしまう ◦ この場合、ユーザー体験のメトリクスを計算式に含めたOECを設計する必要がある(重み付き平均な ど) ◦

    個々人の頭のなかにあるトレードオフを言語化し数式に落とす • よりよいOECにするためには、調整と試行錯誤が必要 ◦ OEC は、長期的な戦略目標を推進すると信じられるものでなければならない ◦ 組織内での調整と合意が必要 OEC (Overall Evaluation Criterion): 総合評価基準
  55. 82 • A/Bテストの実験デザイン(計画)を 記述したドキュメント ◦ 実験を標準化し、効率的かつ一貫性をもって 実行・評価できるようにする ◦ レビュープロセスによって実験の質を担保す る

    Experiment Design Doc (EDD) Objective テストの目的 Issue 解決したい課題 Hypothesis 仮説 How to improve 変更内容 Trigger A/Bテストの割り当てタイミング Duration テスト期間 Goal metrics (OEC) このテストで改善したい指標 Guardrail metrics 毀損したくない指標 Debugging metrics 意図しないバイアスを確認する指標 Action plans 改善した場合、しなかった場合に何をする か 記入項目例 参考:メルカリにおけるA/Bテスト標準化への取り組み| Mercari Analytics Blog
  56. 83 • 実験開始までのオーバーヘッドは小さく なければならない • 各実験を公平に評価するためにも、シス テム化されているのが望ましい • A/Bテストの割り当ての実装にはフィー チャーフラグ

    (feature flag) を利用する のが一般的 A/Bテストのための実験プラットフォーム フロント エンド 実験のオーナー サーバー 実験管理サービス 実験システムの 設定 エンドユーザー 実験群への割り当て 利用 設定 ログ基盤 ログの保存 データ分析 パイプライン 可視化・アラート 実験群への割り当て
  57. 84 • 統計解析 ◦ p値、t検定、カイ二乗検定、二項検定、フィッシャーの正確検定、その他の検定手法、検出力、多重検 定、サンプルサイズの決定など ◦ 検定の妥当性、各種の統計ハック(多重仮説検定、p-hackingなど) • A/Bテストの発展的な話題

    ◦ SRM (sample rate mismatch)、実験間でのリーク、Long-term effect、Institutional memory、A/Aテ ストなど • その他のオンラインテスト手法 ◦ インターリービング ◦ 多腕バンディット 今日話さなかったこと
  58. 86 • スライド ◦ 推薦システム | kamishima.net ◦ 「いい検索」を考える |

    Slideshare ◦ A/Bテスト概論 / Introduction of ABTesting - Speaker Deck • 記事 ◦ メルカリにおけるA/Bテスト標準化への取り組み|Mercari Analytics Blog ◦ 検索システムを適切に評価したい - Qiita ◦ ZOZOTOWN検索の精度評価への取り組み - ZOZO TECH BLOG さらに学ぶために