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

ビッグデータと機械学習の狭間で -データエンジニアに求められる役割-

8400ad0bcb9bd4c71168a38c67325fe6?s=47 onunu
July 29, 2018
930

 ビッグデータと機械学習の狭間で -データエンジニアに求められる役割-

July Tech Festa 2018 @産業技術大学院大学[D10]
で発表した際の登壇資料です。

参考文献や細かい記述などを今後修正する場合があります。

8400ad0bcb9bd4c71168a38c67325fe6?s=128

onunu

July 29, 2018
Tweet

Transcript

  1. In July Tech Festa 2018 D10 @onunu ビッグデータと 機械学習の狭間で  -データエンジニアに求められる役割-

  2. Hello! おぬま りく@onunu IESHILという不動産の情報格差 をなんとかしていくサービスを 作っています データエンジニアです Twitter: @onunu_ Github:

    onunu
  3. Agenda ◎ 最近の機械学習を取り巻くあれこれ ◎ データサイエンティストが抱える辛さ ◎ データエンジニアとは ◎ リブセンスでの機械学習周りの取り組み ◎

    データエンジニアとして価値を届けていくために
  4. 最近の機械学習を取り巻くあれこれ 機械学習導入へのハードルは確実に下がった

  5. 最近の機械学習を取り巻くあれこれ 機械学習導入へのハードルは確実に下がった ◎ 様々な機械学習ライブラリの登場 ◎ 計算機リソース調達の簡便化 ◎ ビッグデータ処理の基盤整備 どんな事業者でも機械学習を活用したい時代

  6. この論文は「機械学習辛い」という趣旨ではなく いかに負債化を防ぐかについて書かれた論文なので注意 最近の機械学習を取り巻くあれこれ 一方で、機械学習の扱いは難しい https://ai.google/research/pubs/pub43146

  7. 最近の機械学習を取り巻くあれこれ じゃあ機械学習やめるの? ◎ 一連の変化は不可逆 ◎ 機械学習はビジネスにおいて必須な状況になった ◦ 機械学習の90%はExcelで十分とかとは別の話 もちろん NO!

    だからこそデータサイエンティストや 機械学習エンジニアといった専門家が必要不可欠
  8. データサイエンティストが抱える辛さ ◎ Expectation does not match reality ◦ (同僚・上司からの期待感が現実とマッチしない) ◎

    Politics reigns supreme ◦ (社内政治が最優先される) ◎ You’re the go to person about anything data ◦ (データに関わるもの全てを扱う何でも屋扱いされる) ◎ Working in an isolated team ◦ (他の事業から孤立したチームで働かされる) データサイエンティストが会社を去ってしまう理由 データサイエンティスト含むデータ分析職の仕事がつらい4つの理由: 洋の東西を問わずつらみは同じらしい - 六本木で働くデータサイエンティストのブログ
  9. データサイエンティストが抱える辛さ 1. Data is never clean. 2. You will spend

    most of your time cleaning and preparing data. 3. 95% of tasks do not require deep learning. 4. In 90% of cases generalized linear regression will do the trick. 5. Big Data is just a tool. 6. You should embrace the Bayesian approach. 7. No one cares how you did it. 8. Academia and business are two different worlds. 9. Presentation is key - be a master of Power Point. 10. All models are false, but some are useful. データを取り扱う上での辛さもある The Inconvenient Truth About Data Science
  10. データサイエンティストが抱える辛さ データサイエンティストの本分 データサイエンティストの本分は ◎ ビジネスに活きるデータの傾向やパターンを見つけること ◎ 見つけた傾向やパターンを用いてプロダクトへ 価値をフィードバックすること

  11. データサイエンティストが抱える辛さ Indeed, arguably the most important reason for using a

    machine learning system is precisely that the desired behavior cannot be effectively implemented in software logic without dependency on external data https://ai.google/research/pubs/pub43146 複雑かつ高度なデータへの依存 機械学習プロダクトが技術的負債になりやすい理由
  12. データサイエンティストが抱える辛さ 機械学習プロダクトが技術的負債になりやすい理由 機械学習で用いられるアルゴリズムを利用したコードは プロダクトスイートなものにはならない 機械学習プロダクト ◎ 数学的な理論に基づいた アルゴリズム ◎ 数学的・統計的背景の

    理解が必要な マジックナンバー ◎ 確率的にしか 説明できない出力 アプリケーション(not 機械学習) ◎ 整理・体系づけるための シンプルさの追求 ◎ 人為的に決定される/与えら れる定数 ◎ ビジネスロジックにより 決定される出力
  13. データサイエンティストが抱える辛さ データエンジニアの役割とは データサイエンティストの辛さを一部引き取り、 専門家として ◎ より良い方法の提供 ◎ 課題の解決 を行う

  14. データエンジニアとは データサイエンティストとデータエンジニアは料理人と八百屋(魚屋肉屋)みた いな関係じゃないかと思います。 優れた料理人というのはわかりやすいです よね。美味しい料理(=優れた分析)を作れるシェフです。 (中略) さて、料理人 は材料が用意されなければ、料理はできないわけです。 そこでデータエンジ ニアの出番というわけです。

    魚屋に例えると、 データを集めてきて(魚を集め てきて)、生簀(データレイク)や倉庫(データウエアハウス)に貯めて、きちんと 魚の種別ごとに分類して、 在庫管理(決まった時間間隔できちんと取りに行 けているか)をして、品質管理(取得元で不具合が発生していないか)をして、 不良品の魚を取り除いて(クレンジング)、時には料理人が料理しやすいよう に2枚や3枚に開いておろしたり(Transform)して、 料理人に出荷します。 データサイエンティスト(料理人)と データエンジニア(問屋/卸業者) データエンジニアとは - データエンジニア日記
  15. データエンジニアとは データ サイエンティストは、Internet of Things(IoT)アプリケーション界のロック ス ターに例えられます。世間の注目と脚光の大半は、彼らに向けられます。ビッ グデータから重要な情報を抜き出して、企業がその場で情報に基づいて意思 決定できるようにします。 しかし、データサイエンティストは単独で作業してい

    るのではありません。裏方、すなわちデータ エンジニアがいなければ、IoT 分 野で活躍できません。 この陰の協力者のおかげで、ビッグデータの供給を続けられるのです。 デー タエンジニアは、ネットワークとソフトウェアを設計して保守し、ビッグデータの パイプラインの運用を維持します。ロックバンドのスタッフのように、データエン ジニアはステージを設置して舞台音響を手がけます。 あるいはロックスターと裏方 データ サイエンティストとデータ エンジニア:ロック スターと裏方の関係
  16. データエンジニアとは 役割の分担 Data engineers vs. data scientists

  17. データエンジニアとは 役割の分担 Data engineers vs. data scientists [抄訳] Data engineers

    vs. data scientists データサイエンティスト ◎ ビジネスサイドを理解し、他者にわ かりやすく可視化と言語化できる 職能 ◎ 高度な数学的知識に基づいたモ デリングやアルゴリズム提案スキ ル ◎ 高度なProgramming skillは必ず しも必須ではない データエンジニア ◎ 分散プログラミングを意識して構 築できる職能 ◎ 卓越したプログラミングスキルとシ ステム構成力 ◎ クラスタ設計までがData Engineerの役割であり運用(Ops) はやらない 引用元のData engineers vs. data scientists ではこのような定義になっている。 是非についてはこの後の議論で詳しく扱う
  18. リブセンスにおけるデータ領域の取り組み 全社横断的な取り組み AWS Redshiftを活用した分析環境の提供 アプリケーションDBの個人情報等マスキング済分析用データ / アクセスログ/ 広告の運用データ etc...

  19. リブセンスにおけるデータ領域の取り組み 全社横断的な取り組み 誰もがそれぞれのアプリケーションのDB 分析環境のRedshift (Livesense Analytics) に接続し、分析できる環境・文化 https://www.slideshare.net/livesense/150225-sql-foreveryone-45695818

  20. リブセンスにおけるデータ領域の取り組み 全社横断的な取り組み 専門の横断部署によるデータ活用 機械学習プロダクトの実用 ◎ 多腕バンディットによるABテスト効率化 ◦ https://japan.zdnet.com/article/35099445/ ◎ 求人レコメンドエンジンによる応募率改善

    ◦ https://analytics.livesense.co.jp/entry/2017/12/05/105618 ◎ etc..
  21. リブセンスにおけるデータ領域の取り組み 全社横断的な取り組み 各メディア アプリケーションエンジニア Livesense Analyticsの運用・分析支援 データ活用/機械学習プロダクト 各メディア組織 全社横断組織

  22. リブセンスにおけるデータ領域の取り組み IESHILとしての取り組み(IESHILとは?) 不動産業界に蔓延る「情報の非対称性」を目指すメディア 人生の大きな買い物である住まいの購入のUXを最高にする

  23. リブセンスにおけるデータ領域の取り組み IESHILとしての取り組み(IESHILとは?) 物件(部屋ごと)の相場価格、 物件の災害耐性、 学区情報 などのデータを掲載し、 不動産購入を支援する

  24. リブセンスにおけるデータ領域の取り組み IESHILとしての取り組み IESHILは大きな機械学習プロダクトを抱えるが、 全社横断組織からは独立して運用している ◎ 「データそのもの」がコアコンピタンスとなるメディア ◎ 新規事業ゆえの状況変化の速さ ◎ 様々なデータソースを抱えるデータ関連処理の多さ

  25. リブセンスにおけるデータ領域の取り組み IESHILとしての取り組み ビッグデータをビジネスに活かす ためのデータパイプライン設計

  26. リブセンスにおけるデータ領域の取り組み IESHILとしての取り組み ビッグデータをビジネスに活かす ためのデータパイプライン設計 ◎ embulkを利用した様々なデータソースへの対応 ◎ digdagを利用した各タスクの統合管理 ◦ スケールもしやすい/分散処理もできる

    ◎ DWHは自前で運用するのではなく、TreasureDataを利用する ◦ Embulk, digdagがTreasureData発のOSSなこともあり 相性がよい
  27. リブセンスにおけるデータ領域の取り組み IESHILとしての取り組み 結構うまくやっていると思う それでも悩ましい問題はまだまだ山積み ◎ 本番系/開発系を分けられないデータは必ず発生してしまう ◎ アプリケーション側に存在する複雑なタスクをどうワークフロー エンジンで巻き取るか ◎

    データ処理を汎用言語(python, R, …)で やるかDSL(SQL, …)でやるか ◦ 全てを熟知して切り替えられるのがベストだが... 今回これらの問題のアプローチとかの話はしません、いつかどこかでします
  28. IESHILのデータエンジニアとしてがんばっているこ と データエンジニアとは(再考)役割の分担 Data engineers vs. data scientists [抄訳] Data

    engineers vs. data scientists データサイエンティスト ◎ ビジネスサイドを理解し、他者にわ かりやすく可視化と言語化できる 職能 ◎ 高度な数学的知識に基づいたモ デリングやアルゴリズム提案スキ ル ◎ 高度なProgramming skillは必ず しも必須ではない データエンジニア ◎ 分散プログラミングを意識して構 築できる職能 ◎ 卓越したプログラミングスキルとシ ステム構成力 ◎ クラスタ設計までがData Engineerの役割であり運用(Ops) はやらない
  29. データの運用をインフラエンジニアやSREにまかせて、 「環境できました。はいどうぞ」 では結局またデータサイエンティストと同じ辛みを 彼らが抱えることになる (引用元ではそこを解決するために機械学習エンジニアが存在するのだが、機械学習エンジニア を銀の弾丸としてとらえるのもよくないと思う ) クラスタ設計までがData Engineerの役割であり 運用(Ops)はやらない

    IESHILのデータエンジニアとしてがんばっているこ と データエンジニアとは(再考)役割の分担
  30. クラスタ設計までがData Engineerの役割であり 運用(Ops)はやらない IESHILのデータエンジニアとしてがんばっているこ と データエンジニアとは(再考)役割の分担 実際には、運用もやらないといけない ビジネス上の不断の状況変化に対応するためには データエンジニアが継続的にシステムをみる(=運用) する必要がある

  31. ただし、組織に依存する。 実際にデータエンジニアの多くの求人票は、 分散環境の構築経験やビッグデータの取り扱いなどが要件になっている場 合などが多い(内情までは残念ながら読み取れない) クラスタ設計までがData Engineerの役割であり 運用(Ops)はやらない IESHILのデータエンジニアとしてがんばっているこ と データエンジニアとは(再考)役割の分担

  32. 運用を行うデータエンジニアがいないとどうなるか データエンジニアとして 価値を届けていくために ◎ 前処理に忙殺されるデータサイエンティスト ◎ 運用に乗るはずの無かった長大なアドホックSQL ◎ 謎なSQLを実行するだけのrakeタスク ◎

    「6時間くらいかかるから6時間30分後にcronしこんで おくか」
  33. 運用とはなにか? 今まで、そこ(=データそのものの運用 )に名前はなく、誰 かがやっていた データエンジニアとして 価値を届けていくために ◎ データサイエンティストがやるのか? ◎ サーバーサイドエンジニアがやるのか?

    ◎ インフラに面倒を見てもらうのか? 運用は宙に浮き、責任の所在も曖昧になる 責任の所在が曖昧になればメンテナンスもされない
  34. 「そこ」に運用と名前をつけて責任をもつこと データエンジニアとして 価値を届けていくために ◎ データエンジニアと名乗ることで、「そこ」に責任を背 負い、宙に浮いた運用をなくす ◎ データの運用について責任をおう人材がいることで、 それ専用のアーキテクチャの必要性について理解を 得る

  35. データエンジニアというワードはまだまだバスワード 自分たちで自らを定義し、価値を届けて行くべき 分散環境の構築やデータパイプラインの設計者としてだけ ではなく、 データの取り扱いの専門家として データについて責任をおう エンジニアになろう データエンジニアとして 価値を届けていくために

  36. データエンジニアとは(再考の再考) データの、 ◎ 構造/内容/変更について責任を持ち ◎ 誰もが使いやすい形に整形し ◎ 誰もが取り出しやすい環境を構築していく 役割である データエンジニアとして

    価値を届けていくために
  37. まとめ ◎ データの取り扱いについて苦労している データサイエンティストは多い ◎ でもそういう問題をデータエンジニアが解決していく ◎ データエンジニアも運用に携わり、 一緒に開発していく必要性がある ◎

    データエンジニアの理解について、 もっと広める必要がある
  38. リブセンスでは一緒に働く仲間を募集中です! いろんなサービスを作ってるので、 興味ある方は話しかけてください :) We are hiring!

  39. 特にIESHILでは データエンジニア データサイエンティスト 機械学習エンジニア を大募集中です! 一緒に不動産業界に風穴あけましょう! We are hiring!

  40. 参考文献 • Machine Learning: The High Interest Credit Card of

    Technical Debt (https://ai.google/research/pubs/pub43146) • データサイエンティスト含むデータ分析職の仕事がつらい4つの理由: 洋の東西を問わずつらみは同じらしい - 六本木で働くデータサイエンティストのブログ (https://tjo.hatenablog.com/entry/2018/04/02/190000) • The Inconvenient Truth About Data Science (https://www.kdnuggets.com/2015/05/data-science-inconvenient-truth.html) • データエンジニアとは - データエンジニア日記 (http://data-soldier.hatenablog.com/entry/2017/12/08/114731) • データ サイエンティストとデータ エンジニア:ロック スターと裏方の関係 • (https://learningnetwork.cisco.com/docs/DOC-31728) • Data engineers vs. data scientists (https://www.oreilly.com/ideas/data-engineers-vs-data-scientists) • [抄訳] Data engineers vs. data scientists (https://medium.com/moonshot/ataengineers-vs-data-scientist-13fce30812a7) • 営業さんまで、社員全員がSQLを使う 「越境型組織」 ができるまでの3+1のポイント | リブセンス (https://www.slideshare.net/livesense/150225-sql-foreveryone-45695818) • 営業がSQLを理解--データ活用を組織文化として定着させたリブセンス - ZDNet Japan (https://japan.zdnet.com/article/35099445/) • BPMF(Bayesian Probabilistic Matrix Factorization)によるレコメンド - LIVESENSE Data Analytics Blog (https://analytics.livesense.co.jp/entry/2017/12/05/105618)
  41. ご静聴ありがとうございました!