これからデータサイエンスの仕事を始める僕へ
先日拝見したこちらのツイートに感銘を受けました
このツイートで述べられている内容はどれも、直近のお仕事で「大切だなぁ」「わかってなかったなぁ」と感じていた内容でした。
これらのことが大切だ、と感じられるのは実際に仕事をした経験があるからこそだと思います。これまでの自分の経験が不必要なものだったとは一切思いませんが、ですが、もっと早く知っておきたかったと思うようなことばかりです。
今回の記事では、データサイエンスに関わる部署に配属された新卒時代の僕に向けて、伝えたいことをまとめました。
引用させていただいた、いとうさんのツイートと多々重なるところがあるかとは思いますが、ご容赦いただけたらと思います。
求められていることの達成に本当に必要なことを考えよう
希望していたデータサイエンスの部署に配属されたあなた。あなたはこんなことを考えているでしょう。
最新の論文の最先端な機械学習手法を使って、良いものを作ってやろう!
進歩が早いデータサイエンスの領域では、革新的な(とうたわれる)手法がどんどん生まれます。
勉強時間があった学生時代に、そのような手法を数多く仕入れていることでしょう。
ただ、その手法は本当にあなたが解くべき課題を解決してくれるものでしょうか?
データサイエンスの部署に配属されたあなたは、「データサイエンスを活用して会社に価値を提供すること」を求められます。例えばそのタスクは、「広告のクリック数を最大化して売り上げを増やすこと」かもしれませんし、「画像検索エンジンの性能を向上させて、ユーザ体験を向上させる」ことかもしれません。
あなたになんらかのテーマが与えられた時、あなたがすべきことは「その領域の最新の論文を調べて、その手法を試す」ことではなく、「そのテーマを達成するために解決すべき課題を見つけ、その課題を解決する適切な手法を選ぶ」ことです。
現場で何が起きているのかを正しく理解しよう
多くの場合、あなたに与えられるテーマは、すでに存在しているなんらかのものを改善することになるはずです。
そのために、その現場で起きていることを正しく理解する必要があります。
これは前述した「そのテーマを達成するために解決すべき課題を見つけ、その課題を解決する適切な手法を選ぶ」という流れの「解決すべき課題」を見つけるための作業になります。
例えば、あなたに「広告のクリック数を最大化して売り上げを増やす」といテーマが与えられたとします。この時あなたは「広告」について理解することが必要になります。(広告領域は門外漢なため、見当違いなことを提案している可能性が高いです)
- どんな時に広告が表示されるか?
- クリックされやすい広告、されにくい広告の差はなにか?
- 広告をクリックしやすいユーザさんに共通する特徴はあるか?
- 広告が表示される場所とクリック率の傾向はあるか?
- …
起きていること全てを理解することは時間がいくらあっても足りないので、洗い出した疑問や仮説の中から筋が良さそうなものについて調べていくことになります。
また、その領域に詳しい人にインタビューするのも有効な手段です。経験に基づく多くの知見を共有してもらえることが期待できますが、それが「経験的に得られたイメージ」なのか「数字で示せる根拠のある」ものなのかは確認が必要です。経験的な知見ならば、その根拠となるような集計をしてみましょう。
あなたが作るものの未来を考えよう
あなたは、日々の開発の中で新しくたくさんの物を作ることになります。
あなたが作ったものはあなた以外の他人が面倒を見ていくことになることを忘れないでください。(1週間後の自分も他人です。)
システム開発では、開発にかかる時間よりも開発したものを使う時間の方が長いことがほとんどです。
目先の開発を早く済ませるために落ちた品質によって、将来の多くの時間が失われることになります。
しっかりドキュメントを書くなど、未来のための作業を惜しまないようにしましょう。
また、「普段の仕事を効率化するためのツール」を開発しているときは、よく考えて下さい。
あなたが作ろうとしているツールによって削減される作業時間と、そのツールを開発、運用していくのに費やす時間のどちらが多いでしょうか?
その数字は本当に正しいかを常に意識しよう
実際に起きていることを正しく測定することは、とても難しいです。
あなたが行った実験や集計で出てきた値が本当に正しいのか、常に意識しましょう。
実験や集計によって算出された値は、今後の意思決定に関わる非常に重要なものです。
そんな重要な値ですが、ちょっとしたミスで簡単に変化してしまうものでもあります。ミスの一例はこのようなものです。
- 集計クエリの条件(集計期間や対象の絞り込みなど)が誤っていた
- リークが存在する設定で実験をしていた
ミスを全て防ぐことは難しいことですが、ミスが起きやすいと言うことを認識し、意識するところから始めることで少しずつ減らしていきましょう。
また、その値が取り得る範囲の規模感も意識すると良いです。例えば「あるリンクをクリックする確率」を集計した時に99%のような値が出てきたら、何かおかしいぞ?と気がつくことができます。
この感覚は、多くは経験によって養われるものなので、初めのうちはあなたの上司や先輩に「この数字は違和感がないか」と聞いてみるのも良いかもしれません。
周りの人がやっていることをよく観察しよう
あなたの尊敬する上司や先輩、周りの優秀な同期たちは、普段どのように作業をしているでしょうか?
自分が苦手だと感じている作業を、他の人がどのように行っているのか、ぜひ観察してみてください。
- システムの設計するときに、どのような情報を整理しているか
- ドキュメントにはどのような内容がどのようにまとめられているか
- gitリポジトリをどのように整理しているのか
- あなたに対するフィードバックをどのように行っているか(将来あなたも必ず行うことです)
- …
「仕事のやり方は、全て他の人の動きを見て盗め」、と言いたい訳ではないので誤解しないでください。わからないことについて適切なタイミングで聞くことは大切なスキルです。
ただ、上司や先輩、同期が行っている何気ない作業の中に、あなたのためになるヒントはたくさん転がっています。それらを観察するような努力[1]最近はコロナウィルスによる在宅ワークの増加で、それができるチャンスが減っているのが残念です…は、必ずあなたの成長のためになります。
まとめ
今回は、新卒の頃の自分に伝えたいことを整理しました。
ここに書かれていることを、今の僕が全てできているかというと全くそんなことはなく、失敗をし続けている毎日です。自分のことを棚に上げて書きました。
非常にポエミーな内容になってしまいましたが、ここに書かれている内容が少しでも誰かの役に立てば幸いです。
References
↑1 | 最近はコロナウィルスによる在宅ワークの増加で、それができるチャンスが減っているのが残念です… |
---|
コメント