Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Amebaブログにおける
 記事カテゴリ付与プロジェクト


Avatar for CyberAgent CyberAgent PRO
October 06, 2023

Amebaブログにおける
 記事カテゴリ付与プロジェクト


Avatar for CyberAgent

CyberAgent PRO

October 06, 2023
Tweet

More Decks by CyberAgent

Other Decks in Technology

Transcript

  1. 6 今回提供した記事カテゴリのシステム アノテーション データ 記事カテゴリ 分析 レコメンド 記事カテゴリ 推論結果 広告

    営業 活用先 第一階層カテゴリ 第二階層カテゴリ ・ ・ ・ 機械学習 アメブロの記事に対して紐づく カテゴリを手動でアノテーションし、 学習データを作成
  2. 記事カテゴリの代替手段について 課題 • 取り扱いは難しいが 情報としてはとても大事で 分析や施策/戦略立案に 利用されている • カバレッジと精度が不安 •

    回遊/検索などにそのまま 利用するのは難しい 8 ブロガージャンル • ブロガーに対し付与されているジャンル • 記事には付与されていないので 例えば「アイドルブロガーが野球を見に 行った記事」には「野球」ジャンルから 辿り着けない ハッシュタグ • 記事に対しブロガーが付与したタグ • ブロガー独自の定義のため カバレッジが低く種類が多い • 正しさはまちまち
  3. 9 今回提供した記事カテゴリのシステムの目的 アノテーション データ 記事カテゴリ 分析 レコメンド 記事カテゴリ 推論結果 広告

    営業 活用先 第一階層カテゴリ 第二階層カテゴリ ・ ・ ・ 機械学習 アメブロの記事に対して紐づく カテゴリを手動でアノテーションし、 学習データを作成 • 全ての記事に • ブロガーの情報とは独立して • 内容に沿ったカテゴリを付与する
  4. 10 今回提供したカテゴリについて • 記事に対し複数のカテゴリが紐づく • それぞれのカテゴリに対し 当てはまりの良さを表すスコアがついている • カテゴリは階層構造 •

    現在、数百カテゴリに対するスコアが 全記事に対して付与 {
 “美容/美容ケア”: 0.96, 
 “美容/美容ケア/ヘアケア”: 0.94, 
 “ファッション/レディース”: 0.89, 
 “ファッション/レディース/アイテム紹介”: 0.89, 
 …
 } 具体例
  5. 12 カテゴリの導入によって期待されること 短期的に - 分析用途でのさらなる広範な利用 - 検索/回遊/特集などによってユーザへの展開 - 代替手段を置き換えて意思決定に使われる状態へ -

    何らかの分析や施策で試用できていること - 既存の推薦等のシステムで利用できていること - 上記で課題が見つかっていれば それに対するアプローチを決定できていること 長期的に
  6. 15 価値発揮のサイクル: 実現のために 認識の共有 • 提供する機能の利用方法がわかること • 提供する機能がどんな状態なのかわかること 短期的な 価値発揮

    • 新しいニーズに応えるための手順が 仕組み化されていること 長期的な 価値創出 • 新たな要望に応えやすい状態になっていること • データが資産になっていくこと
  7. 16 価値発揮のサイクル: 実現のために 認識の共有 • 提供する機能の利用方法がわかること • 提供する機能がどんな状態なのかわかること 短期的な 価値発揮

    • 新しいニーズに応えるための手順が 仕組み化されていること 長期的な 価値創出 • 新たな要望に応えやすい状態になっていること • データが資産になっていくこと
  8. 認識の共有の難しさ 17 • 機械学習による推論結果の解釈は利用者にとっては困難 ◦ マルチラベル分類における推論値 → カテゴリごとに意味合いが異なる • どのくらい信用していいかわからない

    {
 “美容/美容ケア”: 0.96,
 “美容/美容ケア/ヘアケア”: 0.94,
 …
 } • 値が大きければ良さそう? 
 • この結果ってどのくらい 
 正しいんだろうか…? 

  9. 認識の共有: 提供するデータをわかりやすく 18 利用者(サービスのエンジニア/分析者)に使っていただく形式として、 以下の要望(条件)を満たすスコアを提供した • 複数のカテゴリ間で相対的に比較できる • 任意のカテゴリに対するスコアが閾値以上であれば、 そのカテゴリが当てはまっていると解釈できる

    全てのカテゴリでGaussian Mixture Modelを用いた スコア最適化により統一的な空間で表現する • True, Falseが属するクラスタの 正規分布の平均を0, 1に固定し分散を最適化 • ある閾値以上のスコアをPositiveと仮定した場合に 各カテゴリにおけるmicro-f1 scoreが最大化されるよう分散を更新
  10. 認識の共有: まとめ 21 以下を共通の言葉や図で表現した • システムが提供するもの ◦ 解釈のために深堀り (GMM) •

    システムの現状 ◦ 解釈のために指標の分解 → チーム全体としてどういう状態を目指すべきか?   「一つのある指標」という共通の指針が得られた
  11. 22 価値発揮のサイクル: 実現のために 認識の共有 • 提供する機能の利用方法がわかること • 提供する機能がどんな状態なのかわかること 短期的な 価値発揮

    • 新しいニーズに応えるための手順が 仕組み化されていること 長期的な 価値創出 • 新たな要望に応えやすい状態になっていること • データが資産になっていくこと
  12. 27 価値発揮のサイクル: 実現のために 認識の共有 • 提供する機能の利用方法がわかること • 提供する機能がどんな状態なのかわかること 短期的な 価値発揮

    • 新しいニーズに応えるための手順が 仕組み化されていること 長期的な 価値創出 • 新たな要望に応えやすい状態になっていること • データが資産になっていくこと
  13. 戦略的にアノテーションデータを選択する機能の実現 条件 / 優先度 1. 特定のカテゴリに設定したサンプル数に満たない 2. 特定のカテゴリに設定した指標に満たない 3. カテゴリ全体に設定したサンプル数に満たない

    4. カテゴリ全体に設定した指標に満たない 5. ランダムサンプリング 長期的な価値創出: 戦略的なアノテーション 31 • 指標を正しく解釈するためにまずサンプル数を確保 ◦ 指標がデータ数が少ないことが起因か、質が低いことが起因かを区別したい
  14. 戦略的にアノテーションデータを選択する機能の実現 条件 / 優先度 1. 特定のカテゴリに設定したサンプル数に満たない 2. 特定のカテゴリに設定した指標に満たない 3. カテゴリ全体に設定したサンプル数に満たない

    4. カテゴリ全体に設定した指標に満たない 5. ランダムサンプリング 長期的な価値創出: 戦略的なアノテーション 32 • ある程度サンプル数が集まれば指標は”サチる”可能性がある ◦ すでにある学習データがノイズになっている場合を考慮
  15. 長期的な価値創出: 戦略的なアノテーション 戦略的にアノテーションデータを選択する機能の実現 対象 • 未学習データ: サンプル数の増加 ◦ あるカテゴリについて一定以上のスコアが付与された 記事からランダムサンプリング

    ▪ スコアの降順に選択すると学習データの多様性を変化させづらい 懸念があるため • 学習データ: 既存ラベルからのノイズの排除 ◦ 再アノテーションになる ◦ あるカテゴリについて、False Positive Predictionの中から スコアが最大であるものを選択(Least Confidence; Active Learning) 33
  16. 36 振り返り 短期的に - 分析用途でのさらなる広範な利用 ✅ - 検索/回遊/特集などによってユーザへの展開 (まだ) -

    代替手段を置き換えて意思決定に使われる状態へ (まだ) - 何らかの分析や施策で試用できていること ✅ - 既存の推薦等のシステムで利用できていること ✅ - 上記で課題が見つかっていれば それに対するアプローチを決定できていること ✅ 長期的に