Slide 1

Slide 1 text

Pocochaにおける規約違反検知のための 機械学習の活用 Ryuichi Kanoh

Slide 2

Slide 2 text

本日の構成 - 導入 - Pocochaの多様なデータを用いた機械学習 - 事例紹介 (規約違反検知) - 動画情報の活用 - 自然言語情報の活用 - まとめ

Slide 3

Slide 3 text

自己紹介 - 加納龍一 - 2018年にDeNAにデータサイエンティストとして入社 - 主にMOVやGOに携わる機械学習システムの社会実装に従事 - 2021年4月より、Pococha関係の開発に従事

Slide 4

Slide 4 text

本日の構成 - 導入 - Pocochaの多様なデータを用いた機械学習 - 事例紹介 (規約違反検知) - 動画情報の活用 - 自然言語情報の活用 - まとめ

Slide 5

Slide 5 text

ライブコミュニケーションアプリ ”Pococha”を取り巻く様々なデータ 視聴コメント (自然言語) 配信 (動画・音声) リアクション (行動履歴) ユーザーの繋がり (グラフ情報) - 多様かつ豊富なデータの集合によりサービスが形成されている

Slide 6

Slide 6 text

機械学習で多様なデータを活かす - 配信者と視聴者のマッチング - 視聴者ごとに、おすすめの配信者を推薦 - マーケティングの最適化 - どんな取り組みがプラットフォームの成長に繋がるか分析 - 規約違反の検知 - 誹謗中傷や危険行動などを検知し迅速に対応 - ... 本講演のテーマ

Slide 7

Slide 7 text

規約違反の検知 - 健全な運営のため、ユーザーには様々な「やってはいけないこと」が存在 - 危険行動 (運転中の配信など) - 誹謗中傷・脅迫行為 - 出会い目的 - アダルト関連 - スパム・荒らし - … - 警告やBANなどの対応がとられる

Slide 8

Slide 8 text

重要度を増す規約違反検知の効率化 順調な成長による配信数増加 多国展開による監視対象の多様化

Slide 9

Slide 9 text

本日の構成 - 導入 - Pocochaの多様なデータを用いた機械学習 - 事例紹介 (規約違反検知) - 動画情報の活用 - 自然言語情報の活用 - まとめ

Slide 10

Slide 10 text

データセット 各種システム 機械学習API チェック NG 警告、BANなど 訓練に使用 配信監視システム - 完全自動ではなく、人間によるチェックと組み合わされた構成 - Human in the Loop アラート 優先度つきキュー

Slide 11

Slide 11 text

見回り頻度の調整 - 全ての配信を均等に見回ると効率が悪い - 同時に物凄い数の配信が行われている - 効率よく違反を見つけられるよう、見回りの優先度をつける必要がある - ユーザーごとに、「違反を起こす確率」を推定しておく - 過去の配信履歴や配信状況などを入力として推定する 配信経験数など (対数) 違反発生確率 (対数)

Slide 12

Slide 12 text

- 各種KPIに大きな影響を与える - 配信開始から5分以内にチェックされる割合の改善 - 違反者は配信開始直後から違反する例が多いので、重要な指標 - 各種違反の発生から対応までに要する時間の大幅な短縮 - など、優先度づけが改善されると、インパクトは大きい 見回り優先度決定のインパクト

Slide 13

Slide 13 text

- 明らかに違反が発生していると思われるものについては、迅速な確認が必要 - RekognitionのDetect Moderation Labelsを用い、緊急度の高い違反は補足 - アダルトや暴力行為など、どのシチュエーションでも問題があるもの https://about.pococha.com/efforts/removing-inappropriate-content 違反の検出 Amazon Rekognition

Slide 14

Slide 14 text

https://www.pexels.com/ja-jp/photo/2827798/ Rekognitionを用いた違反の検出 →  Smoking: 97.7% → 画像をPostして健全性スコアを得る

Slide 15

Slide 15 text

独自モデルの学習 - ライブ配信ならではの違反も存在し、それらに対しては独自モデルを作成 - 蓄積されたデータを用いた教師あり分類学習で対応が可能 - 入力:配信動画 - 出力:その配信がどのカテゴリで違反を受けたか OK? Input Yes No Convolution Pooling Dense 典型的な畳み込みニューラルネットワークの例

Slide 16

Slide 16 text

辛さ - 不均衡さ - 規約違反の配信は全体の中ではごくごく一部 - ものすごく稀な例を正確に抽出できているのか、きちんと評価が必要 → GPUを使用するGKEクラスタの運用による効率化 - データセットの巨大さ - 愚直に実験をしていては、時間がかかりすぎる → downsamplingなど、適切なデータの前処理 - 人間の目だけでは検出が難しいNG例がある w/ preemptible-nodepool t

Slide 17

Slide 17 text

- 既存の判定と比較する混同行列をみると、あまり良くないことがある 検出結果の例 AI判定OK AI判定NG 既存判定OK 既存判定NG … ※割合は例です

Slide 18

Slide 18 text

- 既存の判定と比較する混同行列をみると、あまり良くないことがある - 人間の目だけでは検出が難しい例を多く捉えることができている - 泥臭くデータを眺め、監視チームと連携していくことが重要 検出結果の例 AI判定OK AI判定NG 既存判定OK 既存判定NG … ※割合は例です 再判定をすると、これらのほとんどがNG

Slide 19

Slide 19 text

運用 - AI基盤部が管理する共通インフラにて運用が行われる - https://speakerdeck.com/dena_tech/techcon2021-12 - 内部ではGKEを使用

Slide 20

Slide 20 text

本日の構成 - 導入 - Pocochaの多様なデータを用いた機械学習 - 事例紹介 (規約違反検知) - 動画情報の活用 - 自然言語情報の活用 - まとめ

Slide 21

Slide 21 text

コメント違反 - 配信者のみでなく、視聴者側の違反も存在する - 誹謗中傷、アダルト、個人情報、荒らし... - 従来は古典的なワードマッチなどの手法で違反を検出 - グローバル展開が進むと、対応が大変になってくる - 多言語を柔軟に扱える仕組みが必要 視聴コメント (自然言語)

Slide 22

Slide 22 text

言語の壁を、ベクトル化によって埋める - 言語が違っても、意味が同じならば似たベクトルになるように変換 - この変換後のベクトルを入力として学習や推論を実施する “How old are you?” “What is your age?” “My phone is good.” [0.3, 0.2, ...] [0.3, 0.1, ...] [0.9, 0.6, ...] W elcom e to sim ple yet surprisingly pow erful m ultilingual m odels language understanding m atters m ore than W hat people m ean the language they speak bienvenue à simple encore überraschend stark 多种语言 модели 사람들이 의미하는 것 نﻣ رﺛﻛأ مﮭﯾ la lingua che parlano 言語の理解

Slide 23

Slide 23 text

モデル構造 ベクトル化機能 MLPなど (独自のモデル) この時点で、言語に関わらず意味的に近いコメント(可変長の文章)が 近いEmbedding(固定長のベクトル)に変換されている OK 既存のデータから教師となるものを抽出し訓練する コメント 誹謗中傷 アダルト 出会い 公序良俗 営利目的 どのカテゴリに分類されるかを学習 違法

Slide 24

Slide 24 text

検出例 - (実際のコメントはお見せできないのですが...) - 伏字などを柔軟にカバーしながら、よしなに多言語を相手に検出 - (例)「ㄟ゜ㄋㄟ゜ㄋ」など、ワードマッチでは難しいものも柔軟に取得 - 現在も運用中で、検出された違反候補ユーザーの多くは実際に対応対象に apiVersion: batch/v1beta1 kind: CronJob (所定の時間に定期実行) 所定の時間のコメント 判定結果をBQに送る チェックに使用

Slide 25

Slide 25 text

他の自然言語情報への適用 - 例:通報文章の再分類 - ユーザーから送られてくる通報カテゴリは設定されていないことがある - 通報文章から、何についての言及なのかを推定し優先度をつける 再分類 ・アダルト ・誹謗中傷 ・未成年の使用 ・危険行動 … 通報回数 通報カテゴリ カテゴリ:その他

Slide 26

Slide 26 text

さらなる拡張 - より幅広いカテゴリに対して検出を行いたい - 一方、教師データが揃っている場合は一般的に少ない - そこでZeroshot-Learningの活用を検討 食べ物の分類器がほしい 車種の分類器がほしい 花の分類器がほしい Zeroshot model 分類カテゴリに食べ物のテキストをセット 分類カテゴリに車種のテキストをセット 分類カテゴリに花の品種のテキストをセット 追加データでのFine-tuning不要=ゼロショット

Slide 27

Slide 27 text

さらなる拡張 Model Data Class 1 Class 2 Model Data Class (自然言語) yes / no - さまざまな公開モデルも存在 - 教師あり学習に精度は劣るが、 - 学習なしで運用できることによる手軽さ - 分析用の情報検索として使えるだけでもありがたい Supervised Zeroshot

Slide 28

Slide 28 text

本日の構成 - 導入 - Pocochaの多様なデータを用いた機械学習 - 事例紹介 (規約違反検知) - 動画情報の活用 - 自然言語情報の活用 - まとめ

Slide 29

Slide 29 text

まとめ - Pocochaの多様なデータを活用した、規約違反検知用の機械学習システム - 動画、音声、言語、グラフ、行動履歴などなど、様々なデータを活用 - 本日紹介したものの他にも、様々な取り組みが行われている - Human in the Loopの構成を活用しながら違反を素早く見つけることで、  健全なプラットフォームの運用に貢献 - 動画情報を活用した配信者の違反検知 - 自然言語情報を活用した視聴者の違反検知

Slide 30

Slide 30 text

No content