素晴らしい応用(データ)科学の仕事

素晴らしいデータ科学の仕事

ビジネスの要件から結果の説得的なプレゼンテーションまで、リアルな問題をトータルで解決するのに役立つものは何ですか

業界での高度なデータサイエンスの仕事は、時には「応用科学」とも呼ばれ、それは単なるデータについてではなく、多くの元学者がこの分野で働いているという現実を反映しています。私は「応用科学」には研究科学とは異なる期待があると考えています。そこで、私の経験から、優れた応用科学の仕事を生み出すために役立つものをまとめました。私はこれをデータサイエンスの仕事の「完了の定義」として使用していますが、多くのポイントはアナリスト、エンジニア、および他の技術的な役割にも利益をもたらすでしょう。

目標:成功した応用科学の仕事とは何ですか?

優れた応用科学者は、データとモデルの巧妙な活用によって、価値のある現実の問題をトータルで解決します。時には、これの最初のステップは、実現可能な科学的な解決策を提供する可能性が高いビジネス上の最も影響力のある問題を見つけることです。時には、ビジネスの問題が十分に理解されており、科学的な作業は明確に定義された技術的な問題声明の策定から始まります。

いずれの場合でも、成功した科学的な作業は現実の問題を理解することから始まります。科学者は、複雑なビジネスの課題を理解し、それらを有限な時間で解決できる技術的な形式に変換する能力が必要です。彼らは曖昧さを排除し、適切な構造的な仮定を作り出して解決を可能にします。

成功した科学的な作業は、技術的に適切で実用的な解決策を見つけます。これは最先端のディープラーニングを意味する場合もありますが、非常に上級の科学的な作業はいくつかの巧妙なSQLクエリで構成されることもあります。優れた科学者は、仕事に適した適切なツールの選択方法を知っています。

優れた科学者は、悪い技術的なアプローチに取り付かれることが簡単だと理解しています。これを避けるために、彼らは作業を段階的に構成します。彼らは大きな問題を小さなサブ問題に分割することができます。彼らは中間結果の生成を通じて個々のアプローチを検証し、同僚からフィードバックを積極的に求めます。

優れた科学的な作業にはフィードバックが組み込まれています。良い帰納バイアスは学習を劇的に加速させるため、フィードバックは重要です。しかし、優れた科学者は経験的な質問を見つけた場合にはそれに気付き、データを使用してそれに答えることを主張することも知っています。

優れた科学的な作業は、解決策を再現するために必要な手順を文書化し、結果を適切な聴衆に提示することを意味します。そして、結果が使用されることを確認することも含みます。それがソフトウェアの変更、戦略的な決定、または発表される論文であってもです。なぜなら、その価値のある現実の問題がトータルで解決されているからです。

まとめ:4つの原則

次の4つの原則は、業界での応用科学の仕事におけるこれらの推奨事項の基盤となっています。

  1. 所有権:私たちの仕事は曖昧な問題をトータルで解決することです。
  2. 効率的な好奇心:私たちは学ぶことが好きです。 brute-forceの実験よりも効率的に学びたいです。
  3. 二度計る、一度切る:探索的な作業では、明示的な計画を立てることで迷子になることを防ぎます。
  4. 反復的な結果:頻繁なフィードバックは曖昧さを減らします。

道筋:科学的な作業をより成功させるものは何ですか?

次のセクションでは、私の経験に基づいて、科学的な作業を改善する具体的な提案を提供します。これらは科学的なプロセスに沿って構成されています。

1. 応用科学の役割

応用科学の作業は本質的に社交的なものです。優れた仕事を生み出すためには、応用科学者はチームでの協力が必要です。

人々との協力

多くの科学的な作業では、他の人々と協力する必要があります。過去の研究を理解し、関連するデータセットを見つけ、説明を求め、進捗状況をステークホルダーに伝え、チームメイトをプロジェクトのサポートに説得する必要があります。最終的には結果を提供する責任があります。コラボレーションの管理は仕事の一部です。これは、チームメイトにPull Requestをレビューしてもらうよう説得する必要があるかもしれませんし、データエンジニアリングのニーズを別のチームのバックログに優先させる方法を見つける必要があるかもしれません。このプロセスが行き詰まった場合は、エスカレーションすることができ、リードが優先事項を明確にするのを手助けすることもできますが、これはあなたの責任です。

フォロースルー

科学的な作業の一環として、チームはグループセッションや1対1でアイデアをブレインストーミングすることがよくあります。これらのセッションは非常に価値があり、1人の個人が単独で行うよりもはるかに高品質な作業を生み出すのに役立ちます。ただし、ブレインストーミングセッションが直接フォローアップの作業につながっていない場合は、時間の浪費になることがしばしばあります。後者を避けたい場合は、話し合われたアイデアやタスクに積極的にフォローアップする必要があります。チームが何かを行うことに合意した場合は、それを実行し(結果を伝える)、すぐに行うことができない場合は、アイデアのためにチケットを書いて(そしてチケットを伝える)ください。ブレインストーミングセッションでは、具体的な成果物と次のステップを担当する責任者が何か尋ねることは非常に役立ちます。誰でもこれを行い、チームとノートを共有することができます。

透明性と信頼性

全てが計画通りに進むわけではありませんし、科学的な仕事の性質上、ほとんどの実験は失敗します。計画が期待通りに機能しないことは予想されています。これにより、科学的な仕事は高分散の活動となります。作業の「期待値」を正確に予測できたとしても、驚きは起こり得ます。

計画が思い通りに進まない場合は、完全に透明にしてください。最も重要なことは、何か問題がある場合にはすぐにチームに報告することです。これにより、ロードマップと成果物の効率的な調整が可能になります。引き換えに、信頼を期待してください。失敗した実験は私たちの日常的な仕事の一部です。

実験の結果で最も迷惑なのは「不明確な」結果です。実験が完全に失敗したわけではありませんが、成功したわけでもありません。これも科学的な仕事の一部であり、これもプレゼンテーションや共有の対象です。なぜ科学的な問題が解決できなかったのか、仮説を立てることはできるでしょうか?もしもう一度始めることがあれば、何を違うようにするのでしょうか。

チームで働く際には、プレゼンテーションや会話、チケットの内容をすべて理解することは自然ではありません。しかし、他の人があなたが理解していないと思っていることに頷き続けることは問題です。これにより、誤解や作業成果物の不一致が生じる可能性があります。科学者として、「なぜ」は私たちのお気に入りの質問であるべきです。何かが不明な場合は、相互理解があると感じるまで質問し続けてください。疑わしい場合は、自分の言葉で何かを言い換えることは、本当に正しく理解したかどうかを確認するための強力なツールです。

2. ビジネスの問題を理解する

ビジネスの問題を正しく理解することは、純粋な研究科学よりも「混沌」としていることが多いです。概念が明確に定義されていない、数量が測定可能ではない、利害関係者の目的が一致していないことがあります。しかし、解決すべき問題を誤解することは失望を招き、応用科学の価値を低下させます。科学的な洗練さも後からではこれを救うことはできません。

ビジネスの問題を完全に理解するまで質問を続けてください。場合によっては、質問が問題の明確化やさらなる変更につながることもあります。

技術的な用語でビジネスの問題を定義する際、いくつかの基本的な仮定をする必要があります。特定の概念の具体的な定義を選択したり、特殊なケースを無視したり、範囲外の潜在的な副作用を決定したりする必要があります。これらの仮定をメモしておいて、後で再評価できるようにしてください。

仮定をする結果、誤った問題を解決してしまうことがあります。なぜなら、妥当な仮定が正確ではなかったからです。これを防ぐ最も効果的な方法は、段階的に作業を進め、インクリメントが正しい方向に進んでいるかを頻繁に確認することです。これを極端に行うと、モックアップソリューション(例:クイックなスプレッドシート)を作成することで、貴重なビジネスフィードバックを生成することができる場合があります。

深いモデリング作業を始める前に、アプローチが正しいビジネスの問題を解決するかを再確認してください。ただし、途中でこれを繰り返し確認することを忘れないでください。疑わしい場合は、頻繁な小さなイテレーションを行ってください。

3. 研究ロードマップは仮説の木

データやモデルを掘り下げ始めると、迷子になることが簡単です。明確な研究ロードマップを書き出すことで、これを回避できます。経験豊富な科学者は、意識的または無意識的に、作業において仮説の明確な構造に従い、曖昧な問題を順次解決可能なサブ問題に分割します。コードの最初の行を書く前に、仮説構造の完全なドラフトを作成し、フィードバックを受けることをおすすめします。

重要なことは、いかなる形式の計画でも書き留め、進捗に合わせて自分自身を位置づけることです。私が有用だと感じた形式の一つは、仮説の木の構造を明示的に示すマインドマップや箇条書きです。以下は作成のための大まかな手順です:

  1. 問題に対するいくつかの異なるアプローチを考え出す。他のチームやオープンソース、公開資料から既存の解決策を探すことを忘れないでください。これらを「候補」として書き留めます。ここでは、広く浅くアイデアを集めることが重要です。
  2. アプローチの「検証」に必要な労力を大まかに見積もります。これは、特定のアプローチを使用して問題を解決するために必要な労力ではなく、アプローチが非常にうまく機能するかどうかを確認するために必要な労力です。
  3. 検証にかかる見積もり労力でアプローチを順番に並べます。
  4. 最も労力が必要な検証努力のアプローチから始め、そのアプローチを検証し、最終的に(サブ)問題を解決する方法を考え出します。ツリーの各レベルについて再帰的に繰り返します(つまり、各サブ問題について、1から再開します)。必要に応じて、ツリーのレベルごとに繰り返します。

この方法を使用すると、理想的には、優先順位付けされた、よく構造化された計画が得られます。まず最初に試すべきこと、アイデアが機能した場合に行うべきこと(その枝に従う)と、機能しなかった場合に現在の枝の下にある次の枝での作業を続けるべきことが明確になります。ツリーの「葉」は、比較的容易にテストできる、データによって答えられる質問であることが理想的です。計画の構造は進捗状況の記述や中間結果に対するフィードバックの取得を容易にするはずです。

4. インクリメンタルな作業は優れた直感によって恩恵を受けます

すべての中でも最も難しいアドバイスです。優れた科学者は、どのアプローチがうまくいく可能性があるか、どのアプローチが近づく価値さえないかについて、驚くほどの直感を持っています。これは、一部の人が「すべてをうまくいかせるだけ」という印象を与えることがありますが、実際には、これらの人々が試すべきでないことを知っていること、そして最初から生産的なアイデアに多くの時間を費やしていることがより正確です。もちろん、このような直感を築くことは困難であり、生涯にわたるキャリアです。良い直感は、ほとんどの時間を生産的な仮説に費やすことを意味します。なぜなら、潜在的な仮説や追求するアイデアの宇宙は膨大であり、直感によって仮説のツリー内の検索空間が狭まるからです。

直感は社会的なものです

直感を信頼する人物を見つけたら、どのアプローチを追求すべきかアドバイスを求めてください。そのアドバイスを正当化するように頼んでみてください。直接の技術的な質問以上に、彼らが問題と解決の対応についてどのように考えているかを理解しようとしてください。

直感を築くことは特に対話的な学習から恩恵を受けます。同僚とのペアプログラミングデーを考え、お互いに概念を説明し合いましょう。リモートでだけでなく、対面で会うことを試みてください。少なくとも私は、ホワイトボードや二人が同じ部屋にいることの完全な代替手段をまだ見つけていません。

堅固な基礎は役立ちます

基礎の理解に投資しましょう。ものごとがどのように動作するかのメンタルモデルを構築する必要があります。これらは「十分に正確でありながら、現実世界の状況に適用可能な」ものである必要があります。アーキテクチャレベルでの「ブラックボックス思考」と、詳細になるとブラックボックスの内部構造を理解することができる能力との切り替えができるべきです。より具体的に言えば、画像やテキストデータに取り組む場合、埋め込みを使用するという考え方は、潜在的なモデルのメンタルアーキテクチャを迅速に構築するための良い直感です。ただし、このようなアプローチの実現可能性を正確に判断するには、埋め込みがどのようにトレーニングされ、情報のエンコーディングがどのようになるかを完全に理解する必要があります。

好奇心

類似したが異なる問題について好奇心を持ちましょう。それらがどのように似ているか、異なっているかを考えてみましょう。問題の解決策がこれらの類似した問題に適用できるかどうかを考えてみましょう。いくつかの例:代替可能な製品に関する実験は、ソーシャルネットワーク上の実験(「スピルオーバーエフェクト」)に関連しています。ファッションの価格設定は、航空会社の価格設定(「腐敗性商品」)に関連しています。製品/エンティティのマッチングは、音楽の著作権執行(「粗い+精確なマッチングステップ」)に関連しています。

以前の作業を振り返ってみましょう。強い直感がないために何かを試さなければならなかったとき、実験から何を学ぶことができるでしょうか?実験から一般的な真実を学び、直感を改善するのに役立つことはありますか?

アプローチに対する批判的な意見を積極的に求めましょう:「研究ロードマップレビュー」としての一環、または完了したプロジェクトの反省として、異なる意見は直感を研ぎ澄まし、盲点を明らかにするのに役立ちます。

5. クリーンなコードで問題を解決する

クリーンなコードは、応用科学に典型的な探索的/実験的な作業に適用する際に特別なチャレンジです。しかし、同様に重要です。クリーンなコードはミスを避けるのに役立ちます。なぜなら、それが衛生を強制するため部分的にミスを防ぐからです。また、コードの読者はエラーをより簡単に見つけることができますし、最初の実験に失敗した場合でもアイデアを反復することが容易になるからです。変数名は、ほとんどの大学の授業が提案するよりも重要です。関数、クラス、モジュールによるカプセル化は、さまざまな詳細と抽象化レベルをナビゲートするのに役立ちます。

ただし、「本番化」を早すぎると作業が遅くなる場合もあります。解決策が明確になるまで、アプローチの一部を簡単に置き換えることができるようにすることが重要です。

読者を意識してコードを書く

分析ノートブックを書く際は、自分自身だけでなく、読者のために書きましょう。自分が何をしているのか説明しましょう。良い変数名を使用しましょう。プロットをきれいにしましょう。マークアップセルは理由があって作られました。

DRYコードについて考えましょう。これは、応用科学の探索的な作業を行う際に特に難しいです。以前の調査からコードをコピー/貼り付けする自分自身を見つけた場合、リファクタリングする良い時期かもしれません。

読者を考慮した探索的な作業は、他のコードと同様にPull Requestとしてレビューされることがあります。実際、最終的な分析結果に必要な手順は、必ず第二の目によってレビューされるべきです。レビュワーのために、レビューの前に純粋に探索的なコードを削除するか、明確にマークしてください。

ドキュメンテーション

中央の知識ベースの整理と更新は、私が知っているテック組織で最も普遍的な問題の一つです。簡単な解決策は知りませんが、良いドキュメンテーションへの投資は長期的に見返りがあります。中央の知識には、1つの中央ソースがあるべきです(そしてただ1つ!)。このドキュメントは真実の源でなければなりません:コードがドキュメントに書かれていることを実行しない場合、コードが間違っている(ドキュメントが間違っているのではない)。これには、ドキュメンテーションの頻繁で簡単な更新が必要です:書き方は悪くても、正確で完全なドキュメンテーションは、書き方が良いが古くなったドキュメンテーションよりもはるかに優れています。ドキュメンテーションへの投資は昇進につながる仕事であり、その影響を信じています。

6. 結果を提示するだけでなく、伝える

プレゼンテーションは、自分の仕事を広い視野で見直し、その意味を考える機会です。これは、最終的な結果のプレゼンテーションに当てはまることですが、中間結果のプレゼンテーションにはさらに当てはまります。

結果をプレゼンテーションする際には、聴衆の期待について考えてください。各ポイント(各スライド、テキストの各セクション)について、聴衆の暗黙の「それで何?」に答えるべきです。異なる聴衆には異なる期待があるかもしれません:上級ビジネスリーダーは、他の上級リーダーと簡単に共有できるエッセンスを捉えたストレートなナラティブに最も興味を持つかもしれません。マネージャーは、特定の問題がどのように解決されるか、いつ解決されるかを理解することに最も興味を持つかもしれません。同僚は、あなたのアプローチから自分の仕事に何を学べるかに最も興味を持つかもしれません。利害関係者や顧客は、あなたの仕事によって彼らが新たに行うことができる意思決定や行動について知りたいと考えるかもしれません。

多くの科学者が、プレゼンテーションで自分の発見プロセスに従おうとすることが多いですが、これはおすすめしません。なぜなら、興味深い部分に到達する前に人々の注意を失うことが多いからです。代わりに、最初のビジネスの問いに答えるための元のビジネス問いから始め、元の問いに対する最良の回答で始めましょう。その後、高レベルなアプローチを説明し、なぜあなたの回答が最良のものだと思うのかを説明します。プレゼンテーションによって引き起こされるであろう質問について予想し、それに対する答えを用意してください。最も重要なことは、各ポイントに対して「それで何?」という質問に答えることです。

結果に寄与しなかった興味深い実験は付録に入れてください。これらは詳細な議論に役立つかもしれませんが、メインのプレゼンテーションには必要ありません。

補足:プレゼンテーションの資料を準備することはしばしば忙しい作業のように感じられます。しかし、逆に、頻繁な途中結果の提示は焦点と精神的な明瞭さを保つのに非常に役立ちます。明確なプロットとナラティブの制作は、最終目標に集中し、明確な結論に達するのに非常に役立ちます。ただし、スライドのレイアウトの最適化は重要ではありません。したがって、中間結果の場合、形は機能に従います。明確なテイクアウェイメッセージを伝えることが重要です。デザインが完璧であることは重要ではありません。例えば、紙に手書きした図を撮影して提示することは完全に許容されます。

明確な可視化

すべてのプロットは、自己説明的で明確なメッセージを持つべきです。たとえ自分自身のために作成するプロットであっても、いくつかの基本的なことに従うことを強くお勧めします。

  1. 軸には、自己説明的な説明をラベル付けしてください:文字だけでなく、言葉を使用してください。
  2. 表示されている内容と主要なメッセージを説明する明確なチャートタイトルを使用してください(再び、「それで何?」)。
  3. 必要なデータのみを表示してください:例えば、データには「ダミー」カテゴリが含まれている場合、これは明らかに有用ではないことがわかります。プロット内の視覚スペースを混雑させないようにしましょう。
  4. 色だけで区別される多くのデータシリーズを表示する場合、カラーレジェンドが明確に区別されていることを確認してください(色覚障害者に優しい場合はボーナスポイントです)。
  5. プロットが単に混沌とした点の集まりを示している場合、おそらく削除できます(特定のポイントを証明したい場合を除く)。
  6. 対数スケールは、(正の)カウントデータのプロットを整理するのに役立ちます。

明確な数値結果

数値結果(例:テーブル内の数値)を提示する際には、次のことに注意してください。

  1. 適切な成功指標を最適化し、提示します。多くの応用科学者はこれにあまり時間をかけません。RMSE/MAPE/MAE、対数スケール、F1とROCとPrecision-Recall曲線の下の領域をどのように使い分けるかを知っておきましょう。
  2. ほとんどの現実世界の問題は、重み付けされた成功指標に関するものですが、ほとんどの機械学習のコースではこのトピックをほとんどカバーしていません。例えば、売上予測の成功指標は、使用ケースに応じて価格、在庫価値、パッケージの寸法で重み付けする必要があります。
  3. 成功とは因果関係の推定(「もしも」分析)を意味する場合は、それを明示し、成功指標がそのような因果関係を捉えているかどうかについて明確な理論を見つけましょう。自然実験は人気の選択肢です。
  4. 提示する数値には合理的なベンチマークを提供します。しばしば、「適切な」ベンチマークを特定するには熟考が必要ですが、それは常に価値があります。素晴らしい機械学習モデルを作成しましたか?線形回帰と比べてどれだけ優れていますか?来週の予測を作成しましたか?今週と同じと仮定するよりもどれだけ優れていますか?A/Bテストの結果を提示していますか?月間収益に対するアップリフトはどれくらいですか?最後の改善に対してどれくらいですか?

ここまで読んでいただきありがとうございます!ご意見をお聞かせいただけると嬉しいです。共感できた点や、ご経験との違い、また他にどのようなことが有益な実世界の問題解決に役立つと思われますか?

NASAの写真(提供:NASA on Unsplash)

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more