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

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


CyberAgent
October 06, 2023

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


CyberAgent

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 振り返り 短期的に - 分析用途でのさらなる広範な利用 ✅ - 検索/回遊/特集などによってユーザへの展開 (まだ) -

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