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

Sansan における研究開発組織とその取り組み事例紹介 / Introduction of ...

Sansan における研究開発組織とその取り組み事例紹介 / Introduction of the R&D organization at Sansan and case studies of its initiatives

Sansan における研究開発組織とその取り組み事例紹介

■イベント :Sansan×アドバンテスト AI・機械学習Meetup
https://gaia-ai-community.connpass.com/event/243406/

■登壇概要
タイトル:Sansan における研究開発組織とその取り組み事例紹介
発表者: 技術本部 研究開発部 研究員 ⿊⽊ 裕鷹、齋藤 慎一朗

■ R&Dの採用情報
https://media.sansan-engineering.com/randd

Sansan R&D

June 10, 2022
Tweet

More Decks by Sansan R&D

Other Decks in Technology

Transcript

  1. ⾃⼰紹介 ⿊⽊ 裕鷹 Yutaka Kuroki Sansan株式会社 技術本部 研究開発部 Data Analysis

    Group 研究員 プロダクト戦略室 兼務 • 2020年4⽉⼊社 • 4/17の⻑野マラソンに出場 (3:58:25) • 時系列やネットワークデータの分析に従事 Twitter @kur0cky_y Virtual Card
  2. 会社概要 社 名 Sansan株式会社 所在地 表参道本社 東京都渋⾕区神宮前5-52-2 ⻘⼭オーバルビル13F グループ会社 Sansan

    Global Pte. LTD.(シンガポール) Sansan Corporation(アメリカ) ログミー株式会社 従業員数 1086名(2022年2⽉28⽇時点) うち、エンジニア職・研究開発職が約30% 表参道本社 神⼭ラボ Sansan Innovation Lab 2007年6⽉11⽇ 設⽴ ⽀店:関⻄、中部、福岡 サテライトオフィス:徳島、京都、福岡、北海道、新潟 拠点 寺⽥ 親弘 代表者
  3. Company Profile 主要なBtoBサービス(マルチプロダクト) ピアボーナスサービス 請求書受領から、月次決算を加速する スマート受付 無人名刺受付システム イベント・セミナー 請求書 契約書

    組織コミュニケーション 全文書き起こしメディア 新世代エントリーフォーム セミナー管理から、営業を強くする 名刺作成から、働き方をアップデートする 名刺・顧客データ 名刺作成・発注 営業を強くするデータベース 契約業務のDXから、リスクを管理する 新世代パンフレット
  4. Company Profile 組織構成の概要 PR、クリエイティブ統括 など ⼈事、総務・法務、財務・経理、オフィス戦略 など ブランディング部⾨ コーポレート部⾨ 事業戦略の統括

    ビジネス統括本部 技術・データ戦略の統括 技術本部 マーケティング、 インサイドセールス、営業、 カスタマーサクセス など エンジニア、研究開発(R&D)、 システム管理、CSIRT など 各プロダクト戦略の統括 Product Manager、 Product Marketing Manager、 デザイナ など プロダクト組織
  5. Company Profile 技術本部 技術本部 Sansan Engineering Unit Eight Engineering Unit

    名刺メーカー Engineering グループ Contract One Engineering グループ Data Hub Engineering グループ コーポレートシステム部 Seminar One Engineering グループ Digitization部 研究開発部(R&D) データ戦略室 New Business Engineering グループ CSIRT グループ VPoE室 Brand Strategy グループ Quality Assurance グループ Mobile Application グループ Bill One Engineering Unit インフラ戦略部
  6. 研究開発部の4つのグループ Automation Data Analysis SocSci Architect 画像処理などの技術を⽤いて、名刺やビ ジネス⽂書といった⾮定型でアナログな 情報のデータ化を効率化・⾃動化する技 術の研究開発に取り組む。これまでにな

    い速度と100%に近い精度、セキュリテ ィーの確保を追求。 機械学習や⾃然⾔語処理を⽤いて、多様 なビジネスデータを収集・解析する。レ コメンデーションエンジンやニュース配 信エンジンなど、広いデータ分析・機械 学習タスクに取り組む。 社会科学の各領域を専攻するメンバーで 構成。「リアルとバーチャルのはざまで、 社会理論を武器に名刺交換の価値を拡張 する」をミッションとして掲げ、研究を 通して得られた知⾒や成果を事業やサー ビス、社会へと還元することに取り組む。 また、外部有識者との共同研究も積極的 に⾏う。 「研究開発部が提供するサービスに責任 を持つ」をミッションとして掲げ、サー ビスの可⽤性、拡張性、保守性の担保に 取り組む。また、研究開発部の開発⽣産 性に向き合いながら、データ基盤の整備、 データの品質、データの取り扱いにおけ る安全性の担保にも取り組む。 OCR・画像処理・超解像 機械学習全般・⾃然⾔語処理 社会科学・プロダクト開発・効果検証 DevOps・MLOps・データ分析基盤 • 名刺・ビジネス⽂書に特化したOCR の開発 • フォント推定と名刺作成の⽀援 • 名刺画像のホワイトニングや超解像 • 固有表現抽出 • pdf ⽂書の解析 • ニュース配信エンジンの開発 • データ化需要の予測 • 潜在的な課題の発掘 • 新規プロダクト・アイデア創出 • BtoB マーケティングの研究 • ネットワーク分析⼿法の開発 • その他基礎研究 • 統合データ基盤の開発 • MLパイプラインの設計 • 各種バッチ処理の設計・開発
  7. - OKRの運⽤ - ボトムアップで作成 - 野⼼的なOKRとコミットするOKR - 誰が⾒ても理解できワクワクする⽂⾔で、定量化できるOKRづくり - スモールチーム体制

    - 4つのグループをさらに8つのチームに - ピープルマネジメントのコスト削減(より深く密に) - リーダーになる機会の創出 - 透明性のあるプロジェクト管理 - Jiraのカンバン/ボードを集約して、誰が何をやってるかわかる状態に - サイロ化を防ぎ、進捗を可視化 詳しくは https://speakerdeck.com/sansanbuildersbox/management-of-r-and-d-organization ⽣産性向上と育成のための3つの取り組み
  8. - OKR 進捗会議 - 部⻑へ2週間に⼀度、進捗状況のみをクイックに共有 - Monthly Review - チームごとに⽉⼀回部⻑へ取り組み状況を共有

    - 誰でもどのチームのMonthly Reviewに出ることができる - テックトーク(他部署からの参加歓迎!) - 週1回、有志で各⾃取り組んでいることや技術紹介のLTをしている - 論⽂読み会 - 2週間に1度、有志で読んだ論⽂の内容を共有する - 勉強会 - ⽉に1回、持ち回りで各⾃取り組んでいることや技術紹介のLTをしている 定期開催イベント
  9. > 候補者検索の刷新 (Eight Career Design) - elasticsearch への移⾏にともなうアルゴリズム設計 - オートコンプリート機能の開発

    - 類似した企業を検索する機能の開発 > 転職市場の分析 - サイエンスレポートの執筆(転職市場のトレンド分析) > 分析コンペ(atmaCup #6)のタスク設計 > 既存予測モデルの改修 > 候補者・求⼈を表すタグの設計と⾃動付与の検討 (Eight Career Design) > データ化需要予測モデルの開発 (Bill One) > 学会3本(共著)、論⽂1本(筆頭) > 外部(⼤学)との共同研究 > プロダクト戦略室を兼務.新規事業の実現可能性を検討 発表者の場合はどうなのよ 1年⽬ 2年⽬ そのほか.勉強会への登壇や技術ブログの執筆など https://buildersbox.corp-sansan.com/
  10. これまでの取り組み概要 - 抽出性能の改善 - A/Bテスト施策 - ニュース提供機能の改善 - 同じニュースを配信しないための仕組みの速度改善 -

    配信のパーソナライズ - ニュースフィルタリングの性能向上 社内 - R&DにおけるPythonの統⼀的な開発⽅針の策定・浸透
  11. 概要 ⽬的 - ⼊⼒対象のデータかどうかの判断にオペレータのコストがかかっており、コスト削減を⾏う 取り組み - 検討からリリースまで⼀貫して担当 - 検討 -

    何を解くべきか整理し、機械学習で解く価値のある問題に落とし込んだ - 分析 - データの理解、エラー分析を⾏い、リリース可能な精度のモデルを構築した - モデル開発・機能提供 - モデル開発、API実装、バッチ処理実装、デプロイを実施 結果 - ⾃動化率向上に成功し、約20万円/⽉の削減に繋げた。デプロイされ現在も運⽤中 事例紹介 ~データ⼊⼒の⾃動化率向上~
  12. 必要性能、メリット整理 考慮した性能⼀覧 - 精度 - ⾃動化率 精度 - エンジニア、データ⼊⼒をマネジメントするメンバーと打ち合わせを重ね、 必要性能を⼈と同様の精度と決定

    ⾃動化率 - 既存モデルに対して、どの程度⾃動化率が向上するかをR&Dメンバー内で打ち合わせを⾏い、 ⽬標とする⾃動化率を決定 ビジネス的メリット - 仮に⽬標とした⾃動化率向上を達成した場合のメリットを下記のように算出 - 約20万/⽉の費⽤削減 - 約190h/⽉のデータ⼊⼒⼯数の削減 - 実施する価値はあると判断 事例紹介 ~データ⼊⼒の⾃動化率向上~
  13. 分析、精度・⾃動化率の向上 - 精度と⾃動化率の定義 - 精度 = 正しい予測を⾏った数 / 予測を出⼒した数 -

    ⾃動化率 = 予測を出⼒した数 / 対象となるデータ全体 事例紹介 ~データ⼊⼒の⾃動化率向上~
  14. 分析、精度・⾃動化率の向上 事例紹介 ~データ⼊⼒の⾃動化率向上~ ⼿法 ⽬標精度との差分(%) ⽬標⾃動化率との差分(%) ベースライン -5 (未計算) 多class分類から、データが多いclassのみを予測する2値分類

    の問題に変更 -3 +4 エラー分析を⾏い、予測を外すデータに共通する項⽬を⾒つけ、 ルールベースで予測対象から除外 -0.5 -8 精度はかなり上がったけど、⾃動化率が下がりすぎた・・・。もっと除外する対象を 限定できるルールを探さなければ! 🤔
  15. 分析、精度・⾃動化率の向上 事例紹介 ~データ⼊⼒の⾃動化率向上~ ⼿法 ⽬標精度との差分(%) ⽬標⾃動化率との差分(%) ベースライン -5 (未計算) 多class分類から、データが多いclassのみを予測する2値分類

    の問題に変更 -3 +4 エラー分析を⾏い、予測を外すデータに共通する項⽬を⾒つけ、 ルールベースで予測対象から除外 -0.5 -8 再度エラー分析を⾏い、予測対象から除外する条件を厳しくす る +0.5 ±0 無事⽬標達成 🎉 😊
  16. モデル開発・機能提供のための開発 - 下記⼯程を約1カ⽉半かけて実施 - FastAPI を⽤いた API 機能の実装 - Python

    を⽤いた⾔語モデルの実装 - Gokart (MLOpsパイプライン)によるバッチ処理の実装 - GitHub による Pull Request, Review 対応 - Google App Engine を⽤いたデプロイ - 個⼈的に⼯夫した点 - GitHub ActionsによるPull Requestの指摘にflake8, black, mypyを追加し、Pythonコードの品質を 担保 - 特にmypyの指摘対応が慣れるまでは⼤変・・・ - 似た予測対象が2つあるため、それぞれの予測対象ごとにclassを⽤意し、異なる対象を予測した 場合にエラーを出⼒するよう実装 - 予測対象に応じてclassを分け、runtime_checkableを⽤いて専⽤メソッドが存在するか確認 事例紹介 ~データ⼊⼒の⾃動化率向上~