Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

@SansanDSOC

Slide 23

Slide 23 text

No content