Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

2018.08.21-機械学習工学研究会 現場を交えた勉強会発表資料

425 views

Published on

機械学習工学研究会 現場を交えた勉強会発表資料

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

2018.08.21-機械学習工学研究会 現場を交えた勉強会発表資料

  1. 1. 2018.08.21 機械学習工学研究会 現場を交えた勉強会 #1 株式会社ブレインパッド 栁原 淳宏 SIer出身のエンジニアが 機械学習を取り入れた ASPサービス開発で学んだこと
  2. 2. で、誰?
  3. 3. 名前 栁原 淳宏 (やなぎはら あつひろ)    ※社内ではやぎぞうとよばれている 職種 エンジニア & プロダクトオーナー(兼務) 所属 株式会社ブレインパッド マーケティングプラットフォーム本部開発部 RtoasterチームとConomiチームに所属 はじめまして!!
  4. 4. 経歴(あゆみ) 組織 プロ ジェクト 職種 要素 技術 ワード 競馬写真判定システム 開発プロジェクトで エンジニアデビュー 某F社の大学図書館向け パッケージ開発プロジェクトに参画 下請け中堅SIer時代 100人規模の会社 ソフトウェアエンジニア Java、C、Delphi Windows、Solaris、 Linux、 Oracle、PostgreSQL ウォーターフォール パッケージ配布、BtoB 某S社の携帯ミュージック プレイヤーのミドルウェア 開発プロジェクトに参画 フリーランス時代 個人事業主 組み込みエンジニア C、独自フレームワーク Windows、Linux SQLite アジャイル開発 BtoC (現在) 入社時50人→現在250人強規模の会社 機械学習色のあるソフトウェア エンジニア C++、Python Linux PostgreSQL 機械学習、アジャイル開発 ASP、BtoB(toC) 結果的に、 ず〜っとエンジニア やってきました
  5. 5. ブレインパッド?
  6. 6. 会社概要 データ分析の会社としてスタートし、今では企業の経営 改善を支援するビッグデータ活用サービス、デジタル マーケティングサービスを提供してます
  7. 7. © BrainPad Inc. 7
  8. 8. 最高の価値提供を可能にする3つの力 この辺で 仕事してます!
  9. 9. デジタルマーケティングサービス Rtoasterチームの開発メンバー、 Conomiチームのプロダクトオーナー&リードエンジニアしてます 「ブレインパッド」と言うと、 コンサルタント、データサイエンティストによる分析、業務支 援やシステム構築、教育事業などをやっているイメージが強 いのですが、 私のいる部署は
  10. 10. Rtoaster? Conomi?
  11. 11. Rtoasterとは 「Rtoaster」は、最先端のレコメンドエンジンと、ユーザー可視化・分析エンジンが搭載されたSaaS型プライベートDMPです。 開発担当 https://www.rtoaster.com/
  12. 12. Conomiとは 多彩なロジックからヒト・モノのマッチング・レコメンドデータ(貴社”好み”の価値ある情報)を生成し、 ビジネス、サービスを加速させるエンジンです。 https://www.conomi.plus/ Rtoasterで培った レコメンデーション 技術がベース Rtoasterのレコメンドロジックを、 • より簡易にシステムやサービスへ組み 込めること • 精緻かつ柔軟なレコメンドチューニング を実現すること を目指して、Rtoasterのレコメンドエンジンに 含まれるロジックや技術を切り出し設計し直 したプロダクト。 現在、やぎぞうがもっとも 注力しているプロダクトです!
  13. 13. 随分と前置きが 長くなってしまいましたが、 一応機械学習システム?っぽい プロダクト開発に従事している者という ご理解をいただいたと言うことで
  14. 14. 本日皆さんと お話ししたいこと
  15. 15. 近年、ディープラーニングや機械学習といった技術の発展に よって、システム開発・ソフトウェアエンジニアを取り巻く環境 が変わってきたと感じる。自分だけ? とある1人のエンジニアの経験(20年くらい)を元に振り返りな がら、何が変わってきたのかを考えてみたい。 環境が変わっていく中、これからのソフトウェアエンジニア はどうすれば輝けるのかを一緒に議論したい。 →無知なので、機械学習工学の展望について学びたい なぜ、今回話をしようと 思ったのか? どうやって、変化・違いを 説明する? で、何をしたいの?
  16. 16. SIer時代と今を比べて 変化を感じるところ (苦労したところ)
  17. 17. 何が変わったのか?
  18. 18. システム化する対象の違いに戸惑う 業務の 自動化 効率化 付加価値の システム化 法律 取引(金) 商習慣 物流 社内 ルール 仮説 アイディア ユーザー 体験 業務システム CRM(DMP) プロトコル 業務 改善 BrainPad以前 BrainPadに入ってから 目的 対象 システム化の システム化の アルゴリ ズム トレンド 理解するまで大変だけど かっちりしている 雰囲気わかるけど ふわふわしている
  19. 19. システム化する対象の違いに戸惑う 業務の 自動化 効率化 付加価値の システム化 法律 取引(金) 商習慣 物流 社内 ルール 仮説 アイディア ユーザー 体験 業務システム CRM(DMP) プロトコル 目的 対象 業務 改善 BrainPad以前 BrainPadに入ってから システム化の システム化の アルゴリ ズム トレンド 仕様策定決 め や す い 難 し い
  20. 20. システム化する対象の違いに戸惑う 業務の 自動化 効率化 付加価値の システム化 法律 取引(金) 商習慣 物流 社内 ルール 仮説 アイディア ユーザー 体験 業務システム CRM(DMP) プロトコル 目的 対象 業務 改善 BrainPad以前 BrainPadに入ってから システム化の システム化の アルゴリ ズム 仕様変更変 わ り に く い 変 わ り や す い トレンド
  21. 21. 開発手法・習慣の違いに戸惑う 業務システム CRM(DMP) BrainPad以前 BrainPadに入ってから 受託開発 ※システム・プログラムを最終的に納品 自社開発 ウォータフォール ※各工程が納品物にひもづく どちらかと言うと アジャイル(スクラム) 立場 開発プロセス 技術/知識 環境/保守 など ソフトウェアベンダー提供のツール、ライ ブラリ、ソフトウェア ※一部オープンソース オンプレミス パッケージ提供(インストール) 内部仕様など整理されたドキュメントは多 い 基本オープンソース ※チームで技術選定を行う クラウド ASP ユーザーに公開するマニュアル以外の整 理されたドキュメントは少ない
  22. 22. 開発工程における違い
  23. 23. 仕様決めが難しい 業務システム CRM(DMP) BrainPad以前 BrainPadに入ってから 仕様策定決 め や す い 難 し い = 要件定義が難しい = 設計が難しい ● 仕様に合わせた技術選定が可能 ○ 言語、アーキテクチャ、環境... ● 状態遷移(結果、解答)が定義しやすい ○ 業務フローは状態遷移の把握がしやすい ので、データフローがわかりやすい ● 仕様がふわふわした状態なので、色々と試行錯誤 が必要 ○ 言語、アーキテクチャ、環境、アルゴリズ ム... ● ビジネス、サービスへの価値付与はゴールが明確 でなく、答えが一つではない ○ システム化のための定義が難しい
  24. 24. 開発プロセス ☞ アジャイル(スクラム)風 なぜ、〜風? ● 仕様が流動的なので、ウォーターフォールは不向き →反復型(アジャイル開発)の方が相性が良い ○ スプリント単位で、細かくスケジュールが修正できるのは良い ○ スプリント内でのスコープ変更が発生しやすいので、タイムボックスで縛ると苦しくなる時がある ■ 結果が積み上がらない時がある ■ 特にアルゴリズム開発時に作成したモデルの結果が芳しくない時など、見通しが悪い時は変更したくなる 管理画面開発サブチーム コア機能開発サブチーム ユーザー分析機能開発 サブチーム レコメンドエンジン 機能開発サブチーム Rtoaster開発での工夫 ● 機能単位でサブチームを分けて、サブチーム毎に開発プロセスの詳細を委任。複数のプロセスを同時並行で動かすことで全体の 影響度合いをコントロール 従来のソフトウェア工学の 知見を活用しやすい もうひと工夫必要 (課題が...)
  25. 25. 設計・検討において 色々な面で、サイクルが早い ● 技術のサイクル ○ どんどん新しい機械学習の手法、技術、環境、基盤が出てくるので、選ぶ方が追いつかない ■ 開発部では別部署に所属するデータサイエンティストから最近のトレンドをキャッチアップすることでなんとかやって いる ■ 自力では無理 ● 業界のトレンド ○ デジタルマーケティングの世界の移り変わりも早い ■ 競合のキャッチアップ、連携先など色々な面での情報収集が必要 = 技術の陳腐化が早い
  26. 26. 実装において 仕様(ロジック) 決めが難しい問題が先送りに = どちらかと言うと、作りながら決まっていくことが多い(行ったり来たり) = 試作、設計、実装の線引きが曖昧 ● どの工程にいるのかわからなくなる時がある(=スケジュールをコントロールする上でリスク) ● 実装段階で、どの技術を選択するか候補はあるものの、まだ決まっていない時がある ● レビューが難しい ● ツールは通常のソフトウェア開発時とそんなに変わらないと思う
  27. 27. 検証 単体テスト(=ユニットテスト) ● 妥当性の評価 ○ 例えばレコメンドの場合、予約システムと優先順評価のケースとは異なり、レコメンド対象の優先順が正し いか定義しにくい ● アルゴリズムの評価 ○ 確率的なモデルを採用している場合、結果が変わってしまうので、同値分割や境界値テストのような手法 が使えない。 ○ 集計ベースのモデルならそこまで問題にはならない ➡ 評価が難しい 業務システムと比べると、 結果が自明じゃない場合が あり、困ることがある ... 総合テスト ● 非機能要件に対するテスト ○ アルゴリズムによって負荷テストに対する特性が異なり、評価しにくい ■ 単純に入力データ量に対して処理時間が線形に比例しない場合がある ■ 現実的にはありえない特殊なデータ入力によって、処理コストが爆発するなど想定仕切れないこと もある
  28. 28. 運用・保守における違い
  29. 29. 変化のスパンが短い 業務システム CRM(DMP) BrainPad以前 BrainPadに入ってから 仕様変更変 わ り に く い 変 わ り や す い = 運用・保守の変更が  発生しやすい ● パッケージリリースサイクルが比較的長い ○ 安定した運用ルール、保守しやすい ● 業務、業界で採択する標準規格が存在することが 多い ○ 保守しやすい ● パッケージリリースサイクルが短い ○ 変更が発生しやすい ● デジタルマーケティングの世界では、連携方法が サービス毎に異なることが多い ○ 連携先が増えると、保守が大変 ○ Rtoasterでは、CrossOven、CrossFeedと いったサブプロダクトに分離することで、こ の問題を回避
  30. 30. その他 (時間調整ネタ)
  31. 31. とあるエンジニアが直面した壁 ことばの壁 ● データサイエンティストとエンジニアにある微妙な用語の違い ○ 入社直後、とあるシミュレーターのシステム開発プロジェクトの仕様策定の場面で、モデルと言う用語をアーキテクチャー の話だと思って聞いていたら、実は式(数理モデル)を指していて話があっているようで違うこと言っていた ● 実は数式を見るのが苦手 ○ 相談に乗ってくれるデータサイエンティストは最近、Python等のコードでサンプルをくれる コストの壁 ● Rtoasterは自社サービスで、利用料の一部でレコメンドエンジンを運用している以上、ランニングは常に意識 ○ 新しい技術を検討するときの費用感は意識 ○ リソースを節約 ■ レコメンドリストは表示する部分まで計算したら最後までしないとか、ユーザー毎の訪問頻度に応じた更新など、分 析フェーズとは違うテクニックが必要 異業種の壁 ● 元々ECサイト向けのレコメンドサービスとしてスタートしたが、現在同じECでも単品通販からモールまでバリエーションは増え、旅 行系、メディア系、金融系、人材系などの様々な業種での利用が始まり、解決したい問題が複雑化した。業務システムでは考えら れない応用力が問われた ○ 内部パラメータで業種やサイトの特性に応じたチューニングポイントを多数用意することで、表現力を増やし、問題解決能 力を強化した
  32. 32. まとめ
  33. 33. 機械学習システムでは従来の業務システムと異なり ビジネス、サービスへの新しい価値創造を求められる その1 システム化の目的、対象 が変わってきている その2 従来の手法が通用するところ →システム化の対象が 「ふわっ」としてる 仕様変更や要求の変化をある程度許容してくれる アジャイルソフトウェア開発手法は有効 →ただし銀の弾丸ではないので、例えばシステムの 中でソフトウェア色が強い機能と、機械学習色が強 い機能に分解できるアーキテクチャを採用し、サービ ス全体への影響をある程度コントロールするような 仕組みは必要 →ツールなんかは既存のものがかなり使える
  34. 34. 仮説検証→設計→実装の境界が曖昧 その3 機械システムにおける課題 ● 計画の立て方(見積の精度をどう担保するのか) ● 責任の所在(何が問題かの発見が従来より難しい) 品質の担保 ● 検証(テスト)において、ベストな方法がまだありそう ● 運用、保守における変更の強度をどう高めていくか 新技術への追従 ● 機械学習分野における進歩は早く、業務システムで使用する規格、基盤に比べて、 陳腐化が早い ○ 既存機能がリリースして終わりではなく、メンテナンス・改善の観点が必要
  35. 35. というわけで
  36. 36. この後の時間で これから機械学習システムに ソフトウェアエンジニアは どう向き合っていくのが幸せなのか 議論したいです!
  37. 37. ご静聴 ありがとう ございました
  38. 38. 株式会社ブレインパッド 〒108-0071 東京都港区白金台3-2-10 白金台ビル3F TEL:03-6721-7002 FAX:03-6721-7010 www.brainpad.co.jp info@brainpad.co.jp やぎぞう yanagihara@brainpad.co.jp Facebook : https://www.facebook.com/atsuhiro.yanagihara Qiita : https://qiita.com/yagizo こっそり告知 当社では、開発エンジニアを積極的に募集しています!ぜひ、新卒採用・キャリア採用ともに皆さまのご応募をお待ちしています! 興味ある方はこちらから https://hrmos.co/pages/brainpad/jobs/4010401 

×