$30 off During Our Annual Pro Sale. View Details »

ニュース配信における MLOps・分析基盤の事例紹介 / A Case Study of MLOps and Analysis infrastructure on News Delivery System

ニュース配信における MLOps・分析基盤の事例紹介 / A Case Study of MLOps and Analysis infrastructure on News Delivery System

■イベント 
:【Sansan×Unipos×M3】事例から学ぶ!MLOps・データ分析基盤 最前線事例共有勉強会
https://m3-engineer.connpass.com/event/216065/

■登壇概要
タイトル:ニュース配信におけるMLOps・分析基盤の事例紹介
発表者: 
技術本部 DSOC R&D研究員  高橋 寛治

▼Twitter
https://twitter.com/SansanRandD

Sansan DSOC

July 08, 2021
Tweet

More Decks by Sansan DSOC

Other Decks in Technology

Transcript

  1. ニュース配信における
    MLOps・分析基盤の事例紹介
    Sansan株式会社 技術本部 DSOC 研究開発部
    ⾼橋寛治
    Sansan×Unipos×M3
    事例から学ぶ!MLOps・データ分析基盤最前線事例勉強会

    View Slide

  2. Data Strategy and Operation Center
    ⾃⼰紹介
    • 2017年 3⽉ ⻑岡技術科学⼤学⼤学院 修了
    • 2017年 4⽉ Sansan株式会社 ⼊社
    某aaanquish さんがメンターだった
    • 現在 ⾃然⾔語処理とバイクとスマブラ担当
    ⾼橋 寛治 Kanji Takahashi
    kanji250tr
    kanjirz50
    Sansan株式会社 技術本部 DSOC 研究開発部
    Data Analysis Group, Document Analysis Team, 研究員
    オンライン名刺
    ディーソック

    View Slide

  3. Data Strategy and Operation Center
    ニュース配信での事例紹介
    2
    概要
    ニュース配信における機械学習モデルの導⼊・運⽤、
    またログ分析についての事例を紹介
    ⽬次
    • ニュース全体像
    • ニュース配信プロジェクトにおける機械学習モデルの導⼊と運⽤
    • ログを対象にした分析事例
    • まとめ
    期待
    事例や課題を共有し、何かしらに活かしてほしい

    View Slide

  4. Data Strategy and Operation Center
    現在 Sansan や Eight で配信しているニュース
    名刺とWeb記事
    ⾃分の所有名刺 Aさんの所有名刺
    ⾃分の所有名刺 ネット上の記事
    ⾃社情報とWeb記事
    ⾃社の情報 ネット上の記事
    ⼈事異動情報の通知
    社内の共通⼈脈通知
    企業の最新ニュース通知
    同業他社の最新動向の通知
    名刺と名刺

    View Slide

  5. Data Strategy and Operation Center
    現在 Sansan や Eight で配信しているニュース
    名刺とWeb記事
    ⾃分の所有名刺 Aさんの所有名刺
    ⾃分の所有名刺 ネット上の記事
    ⾃社情報とWeb記事
    ⾃社の情報 ネット上の記事
    ⼈事異動情報の通知
    社内の共通⼈脈通知
    企業の最新ニュース通知
    同業他社の最新動向の通知
    名刺と名刺
    今回の話題とする「ニュース配信」

    View Slide

  6. Data Strategy and Operation Center
    企業・同業他社のニュース
    ビジネスに役⽴つ情報を配信
    企業名が配信の
    キーとなる

    View Slide

  7. ニュース配信プロジェクトにおける
    機械学習モデルの導⼊と運⽤
    6

    View Slide

  8. Data Strategy and Operation Center
    作業分担しやすいアーキテクチャをエンジニアが設計
    7
    ⾮同期処理を導⼊することで、可⽤性を満たしやすくなり、また処理フローも柔軟に制御可
    • R&Dは各アルゴリズムのコンテナを開発
    • 開発はデプロイの仕組みやアーキテクチャを開発し、運⽤
    ニュース記事
    受信コンテナ
    AWS Cloud
    企業名抽出
    ワーカコンテナ
    企業名抽出器
    ニュース記事
    配信コンテナ
    ジャンル分類
    コンテナ
    Sansan や Eight の
    サーバーサイド
    外部提携先から
    ニュースを受け取り
    ジャンル分類
    ワーカは
    キューの処理や
    後処理を担当
    モデル+WebAPI の
    コンテナとして
    実装
    SNS
    キューを⾒て滞留
    など監視可能

    View Slide

  9. Data Strategy and Operation Center
    各モデル作成から運⽤においてやること
    8
    R&D
    モデル検討
    • サービスに使える抽出性能を
    持つモデルを作成
    開発作業
    • Docker で動く WebAPI を開発
    • モデルは Git LFS に含める
    開発
    リソースやデプロイ周り
    • リソースの準備とデプロイフローの⽤意
    監視
    • マシンの監視やログを設定
    • Firehose を⽤いて各イベントのログを
    S3 に出⼒し、Athena で検索
    開発とR&D
    共通部分の決定
    • インターフェイスやログ仕様を定める
    リリース
    • リリースタイミングを決めリリースと経過観察

    View Slide

  10. Data Strategy and Operation Center
    機械学習モデルの運⽤
    9
    コードレビュー
    R&Dが書いた API に関する箇所は開発もレビュー
    リリース作業
    • パイプラインが未整備のモデル
    > シェルスクリプトにより、開発がリリース
    • パイプライン整備済みのモデル
    > CodeBuild により、R&Dがリリース(ブランチ選んでポチポチ)
    運⽤
    • マシンの監視(Datadog)
    • ログ分析(Athena, Redash)

    View Slide

  11. Data Strategy and Operation Center
    運⽤例
    10
    マシン監視においてメモリ使⽤量増加のアラート
    対象)企業名抽出
    原因)あるライブラリのPython バインディングのバグでメモリリークが発⽣
    対処)Python バインディングのバージョンを上げる
    ログによりモデル更新後の処理結果が正常か確認
    対象)ジャンル分類
    ログ)モデル更新前後の分類結果の割合を取得
    分析)新しくカテゴリを追加した場合は出⼒されていることを確認、
    精度改善においてはカテゴリの出⼒の割合を⾒て定性的に判断

    View Slide

  12. Data Strategy and Operation Center
    運⽤例
    11
    パイプラインにより修正要望に対してリリースが早くなる
    対象)企業名抽出
    問題)誤った企業名抽出により、ユーザ印象のよくないニュースが配信される
    対処)モデル改善には時間を要するため、ルールによる前処理・後処理を追加し
    デプロイパイプラインがあるため、⼿際よくリリースし対応できた

    View Slide

  13. Data Strategy and Operation Center
    運⽤における現状の課題と取り組み検討
    12
    課題)モデルを開発する⼯程の属⼈化を防ぐ
    データ取得)⼀時的なSQLやスプレッドシートから取得
    学習)ノートブックやシェルスクリプトなど様々
    ハイパパラメータ調整)各個⼈がやっており詳細不明
    取り組み)データ取得から学習までのパイプライン構築
    ⽅法) SageMaker の枠組みを⽤いてパイプライン化
    期待)上記⼯程がコード化され、
    誰でも実⾏や改変が可能となる
    現状)パイプラインを試作し、運⽤⽅法を検討中

    View Slide

  14. Data Strategy and Operation Center
    運⽤⾯で少し寄り道
    13
    課題)運⽤されるモデルの振る舞いの監視を⾏いたい
    出⼒の割合を定性的に⾒ているところについて、定量的に監視できないか
    検討)監視サービスの活⽤
    監視サービスを利⽤したが、何をどう監視するかうまく定められず断念
    (まずは使ってみようと進めたので反省)
    今後の課題)何をどう監視すべきか
    • 異常の定義(何をどういう観点で監視すると何に損失を与えないのかを具体
    化)し、異常に対する対策までセットを考える

    View Slide

  15. ログを対象にした分析事例
    14
    ※ログ分析に当たっては、Eightのデータについて個⼈を匿名化し、Eightの利⽤規約で許諾を得ている範囲で利⽤しています。

    View Slide

  16. Data Strategy and Operation Center
    ログ分析基盤
    15
    概要
    ニュース配信およびニュースに関するユーザ⾏動のログ分析基盤
    データ分析基盤
    データストア
    • Athena + Redash
    • 集計やデータのCSV出⼒、可視化が⾏える
    データ例
    • 記事単位で抽出された企業名および使⽤されたモデル名
    • 記事に対するジャンル分類の結果
    • ユーザが記事をクリックした情報

    View Slide

  17. Data Strategy and Operation Center
    ニュース配信における A/B テスト事例
    16
    概要
    A/B テスト設計の際にログ基盤を⽤いて被験者の選定および A/B バケットの割り
    当てを⾏う
    分析基盤が可能にした A/B テスト設計における分業
    ログ分析基盤があるため他グループの研究員(効果検証の専⾨家)が⾏えた
    (ログを出⼒して渡して分析みたいな⼿間がかからない)
    結果
    適切な A/B テストが実施でき、実サービスに反映された

    View Slide

  18. Data Strategy and Operation Center
    ログからの新しいニュースコンテンツのクリック推定
    17
    概要
    新しいニュースコンテンツを企画し実施する際に、実施した際の旨みを確認して
    プロジェクトの成功率を⾼める
    分析基盤としてデータが蓄積されるから予測できる
    過去のユーザ⾏動ログを元に、新しいニュースコンテンツにおける
    クリックを推定
    結果
    新しいコンテンツの有⽤性を定量的に⽰し、リリースへの道筋を開いた

    View Slide

  19. Data Strategy and Operation Center
    配信記事の品質チェック
    18
    概要
    ニュース配信対象となる記事について、抽出された企業名が正しいかを定期的に
    ⽬視で確認
    ログ基盤があるからできる分業
    • Redash で⽇付を指定してチェック対象を選べる
    • エンジニアでなくても出⼒ができ、運⽤における⼿間を減らせる
    > 以前は、都度SQLを書いて、お願いをしており時間がかかっていた

    View Slide

  20. Data Strategy and Operation Center
    まとめ
    19
    ニュース配信における機械学習モデルの導⼊・運⽤、
    またログ分析についての事例を紹介
    開発とR&Dが分業しやすいアーキテクチャで開発運⽤業務
    R&D
    > モデル開発は Docker による WebAPI 化まで⾏う
    > ログ分析基盤を⽤いて A/B テスト設計や新規コンテンツの予測が⾏える
    開発
    > ログ整備やパイプライン整備、リソースを⽤意
    > サービスが稼働しているか監視

    View Slide

  21. View Slide

  22. @SansanDSOC

    View Slide

  23. View Slide