見出し画像

10年前、新米データサイエンティストの頃に何を悩んでいたか?

「10年前は何をしていたっけ?」
夏季休暇の終わりにふとそんなことを思いました。

2013年と言いうと、30代半ばで私が未経験でデータサイエンティストに転身してから七転八倒していたころです。この転身の惨状は一度noteに書いたことがあります。

この記事に書いたように、全くの未経験で企業研究所のデータサイエンスチームに飛び込んでしまったので、散々な仕事生活を送っていました。2013年というと転身後1年半ほど経った状況でしたが、使える自分の武器も少なくタスクに追い回されれていた時期です。

この記事では未経験でデータサイエンティストに転身した私が悩んでいたことを振り返ってみたいと思います。


「統計的な考え方や発想」という壁

この時期に悩んでいたのは、「どうやったら統計的な考え方、発想ができるようになるのだろう?」ということでした。いろいろな人に相談してみたものの、結局は自分自身の問題であり、なかなか解決に至らなかったを覚えています。

回帰や分類といった基本的な手法はある程度理解が進んだものの、現実に存在するビジネス課題をデータサイエンスのタスクに紐づけることに苦戦していたのです。具体的に当時のことを思い出してみると、以下のようなことで悩んでいたように思います。

  • データの傾向や特徴を捉えるための初期分析の方法が分からない。

  • 同僚や上司にヒントをもらって可視化したりモデリングしたりしたものの、結果の解釈に時間がかかったり読み取れなかったりする。

  • ある分析でよくわからない結果がでたときに軌道修正ができない。

  • ビジネス課題を解決するための問題設定を思いつけない。

  • 分析報告書に明快な結論や考察を付けることができない。

  • 分析手法の関連が分からない。

データ分析や機械学習の適用プロジェクトを回す上で、これらのことを分析者自身ができなければ単なる作業者になってしまいます。もちろん、当時のポジションは作業者を求めていなかったので、大いに悩みました。

過去の経験や考え方を捨てる

こういう状況で少しでも成果を出そうと過去の経験や強みを活かすことも考えた時期もありました。アプリSEやプロダクトマネジメントの経験を活かして、マネジメントや一般のエンジニアリングの発想を持ちこもうとしたわけです。

しかし、これら過去の経験はデータ分析のコアとなるスキルやマインドセットを醸成する上で邪魔になっていたように思います。なぜなら、問題の捉え方、問題解決のアプローチ、評価、コミュニケーション、学び方のすべてにおいて、求められることが異なっていたからです。したがって、どんなに泥臭くても一度自分の経験を捨てて学び直すことになったのです。まさに30過ぎの手習いと言う感じでした。

自分をアップデートしていくにはアンラーンすることが重要だとよく言われます。しかし、当時の自分に突き付けられた課題はより切迫感のあるものでした。ドラッカーによる以下の一節が痛いほど身に染みました。

新しい任務で成功するうえで必要なことは、卓越した知識や卓越した才能ではない。それは、新しい任務が要求するもの、新しい挑戦、仕事、課題において重要なことに集中することである。

引用元:プロフェッショナルの条件,P. F. ドラッカー,ダイヤモンド社

当時を思い出してみてもなかなかしんどい日々であったのですが、新しい状況に応じて過去の自分を捨てて学ぶという経験ができたのは本当に良かったと思います。その後、マーケティング、人事データ分析、アドバイザリ、マネジメントや組織運営など新しい分野に飛び込むたびにその価値を感じたものです。そして、今もコンサルティング業を立ち上げる中でその重要性を感じています。

結局どうやってその壁を乗り越えたのか

さて、当時の話に戻り、どうやって「統計的な考え方や発想」の壁を乗り越えたのか振り返ってみます。

自分の中で転換点となったのは、「比較」「ランダムネス」「ばらつき」「回帰モデルのシグナルとノイズ」「不確実性」などの概念に対して自分なりに理解ができたことでした。数式上の定義でなく実問題や分析手法との関連に納得感をもったという感じで、つまりは腹落ちしたわけです。

逆の見方をすると、私がそれまでに経験した業務アプリケーション開発は原則ルールベースであり、機能仕様において不確実性を許容するものではありませんでした。また、プロダクトマネジメントやプロダクトマーケティングには不確実性はつきものでしたが、リーン的な考え方は未経験でした。このため技術・ビジネス双方でランダムネスを意識することはなく、その理解に悪戦苦闘したのです。

とはいえ、過去の経験をいったん捨てて学び直すにしても、目の前には分析実務があるので悠長なことは言ってられませんでした。では、こういった統計的な概念をどうやって理解し応用できるようになったのでしょうか。
いくつかポイントだったと思うことを書き出してみます。

  1. 大量の本を読む。

  2. 業務外で練習する。

  3. コンペに取り組んでみる。

  4. 実プロジェクトでいろいろ試す。

  5. 人と会話する。

それぞれ順に思い出しながら書いてみます。

1. 大量の本を読む。

まずはデータ分析や機械学習の本を多読していきました。本来であれば多読でなく良書をじっくり積み上げるのがベターだと思うのですが、当時は「分からないことが分からない」状態でありながら、日々タスクに追われていたので多読せざるを得なかったのです。

例えば、分析レビューの場で上司や同僚から矢継ぎ早に
「時系列モデルを適用してみたら?」
「前処理にTF-iDFやLDAも使えるかもね」
「モデル評価はランキング評価を試したみた?」
「この部分はランダムに生成されていると考えられそうだね」
「改善案を考えて来週までに実験結果を出して」
といったような指摘が出たとします。

当時の私は分からないことが満載なわけで、まずは知らないキーワードを拾って専門書を読み漁りつつ、PythonやRの実装をWebで見つけてギリギリのタイムスケジュールで実験を回すような日々を送っていました。

このワンサイクルで数冊から十数冊の本を手にすることになりました。なぜなら、例えば時系列モデルの定評のある専門書を開くと、分からないワードが大量に出てくるので、それを解説するより一般的な入門書を手に取ることになるからです。そして大抵は読んでもよくわからないという事態になるので、分かるまで乱読するという力業をしていました

もちろん、数理統計の土台がしっかりしている方はそうした事態には陥らないと思いますが、私はそういう積み上げができないままタスクに追い回されていたのです。また、実問題と関連付けないと理解が進まないという私の特性もあり、こういうスタイルになりました。

こうしたワチャワチャした学びの中で、実務で経験したタスクについては表層的ではありますが少しずつ理解が進んでいきました。

しかし、這う這うの体でタスクをこなしているだけでは根本的な疑問を解消することはできないというジレンマが生まれました。そこで、実プロジェクトで必要としている技術の専門書以外にも手を出していきました。この時期、よくわからないながらも「これは自分にとって重要な本だ」と考えて読んでいた本がありました。例えばこんな本です。

これらの本を読んでどこまで理解できいたかというと自信はないのですが、パンにバターを薄く塗り重ねるように少しずつ理解していきました。その積み重ねにより、統計的な考え方やランダムネスの重要性を理解する上では自分の血肉になったと思います。
また副産物として、短期的・長期的それぞれで必要としている本を探すことは技を身につけることができました。

こうした感じで本に埋もれる生活を送ることなりましたが、読書の間は自分と対峙する重要な時間でもありました。(当時読んだ本をまとめたnoteを過去にあげています。)

2. 業務外で練習する。

多読と並行して取り組んだのが「練習」です。
統計解析の入門書を読みながら、RやPythonでサンプルコードを打ち込んで動かしてみるというものです。同僚からすると「そんなことも知らないの?」という基本事項を学ぶためのものでしたので、業務時間外や自宅でコソコソやっていました

この練習は自分自身への刷り込みのようなものです。本を読んだり同僚から教えてもらったりしてフムフムと分かった気になっていることを、改めて手を動かしながら学ぶわけです。日本武道の修行などでいわれる「守破離」の考え方に近いアプローチかもしれません。まずは基礎が身に着くように、守=基本的な作法や技を繰り返して身につけていきました。

今であれば100本ノック的な教材や関連資格がありますので、こうした教材には事欠かないでしょう。しかし私が七転八倒していたころはそういった便利なものはありませんでしたので、以下のような手厚い参考書を頼りに練習していました。(改訂版も出ているものもありますが、当時読んだ本をあげています。)

3. コンペに取り組んでみる。

練習が進んでくると腕試しがしたくなってきます。ということで、データ分析コンペにチャレンジすることも試みました。KaggleとかSIGNATE(当時はオプト)とか。今ではこうしたコンペでスキルアップ図り、最新のアプローチを学ぶ人は多いのではないでしょうか。

私の場合はコンペに出た回数はそれほど多くないですが、特に初学者の頃に未経験の問題設定を学ぶために取り組みました

例えば、予測タスクとして分類問題しか経験がないときに回帰のコンペに参加するなどです。それから、触ったことがないデータ形式のハンドリングに慣れることにも役立った記憶があります。

4. 実プロジェクトでいろいろ試す。

ここまでの3つの方法は独学ですが、この学びを強固なものにするためにはやはり実践が必要になります。つまり、学んだことを機会を見つけて実プロジェクトで試してみるのです。

ただし、いきなり問題設定や主たるモデリング手法として好き勝手に試すわけにはいかなかったので、ちょっとした工夫をしました。具体的には、初期分析やモデリングの中で自分が学んだアプローチを少し試してみるというものです。

例えば、異常検知タスクのデータ観察で予定にないカーネルPCAを試してみたり、テキストデータの初期分析でコサイン類似度の挙動を確かめたり。それから、ブートストラップ法を理解するために復元抽出のルーチンを手組みで作ってベクトルデータのバラツキを観察したこともありました。

こうした試みはささやかなものでプロジェクトに貢献したとは言えませんが、キレイとは言えない実データで試してみることで応用力が高まったことは確かです。特に、教科書に書かれているようにすんなりといかないことを経験することこそが重要な学びとなりました。

考えてみると、データ分析の世界に入る前からこうした独学+実践のスキルアップはやっていたように思いますし、マネジメントや組織運営への挑戦でも同様です。私の場合、独学と実践をペアで実行することが効果的でした

5. 人と会話する。

ここまで書いたように独学と実践を組み合わせることで概ね改善できてきたのですが、それをブーストする方法として「人と会話する」という工夫があります。

これにはいくつか段階があり、3ステップに分けられます。

◆Step1
出だしの「分からないことが分からない」状態では、まずは理解できないことや素朴な疑問を経験者に質問することから始めました。ただし、この段階で単に答えを尋ねるだけではなかなか進歩しませんので、詳しい調べ方や参考書や論文を紹介してもらうようにお願いしました

これは自分の無知をさらすわけで、同僚や上司からの評価が下がることは避けられません。何せ職場の新入社員よりも経験がないという状態だったので…。しかし、ここで自分の無知と向き合うことは極めて重要で、直接的まはた間接的に自分の無知にアクセスできるかどうかが成長にかかっていると思います

直接的に無知にアクセスするというのは分かりやすいと思います。要は自分が分からないと思うことを聞くわけですね。一方、間接的というのは、会話を通じて「自分が無知であったことを思い知らされる」という経験です。恥をかくわけですね。これは辛いことですが、とても大切なことだったと思いますし、人との会話にこそその機会が潜んでいると言えるでしょう。

ただ、分からないことすら認識できていないため、質問自体が適切に行われていない可能性が大いにあります。そのため、独学や実務で上手くいかなかったり悩んだりすることが重要で、その経験を通じて人に尋ねることをたくさん洗い出すことをやっていました。

◆Step2
少しずつ分かるようになってきたら、質問の内容を変えて行きました。単に知らないことを尋ねるのでなく、問題の捉え方や分析方法の相談をするようになりました。一言でいうと壁打ちをお願いしたわけです。

ここでのポイントは、私の知識レベルに合わせてうまく壁打ちしてくれる相談相手を見つけることでした。当時、面倒見の良い会社の先輩や社外の友人がいて、本当にお世話になりました。

余談ですが、このときの経験があるので、データサイエンティストを育成するときやアドバイザーをするとき、私自身が良き壁打ち相手になろうと努めています。なかなか難しいのですがやりがいがありますし、壁打ち相手になることで自分自身の学びにもなると実感しています。

◆Step3
そして最後の段階は、データ分析が専門でない人にデータ分析の方法や結果を説明することです。この段階にくると独学的な工夫でなく、限りなく実務そのものになってきますが、実プロジェクト以外でもこうした機会は多々ありました。例えば、以下のような場面です。

  • 社内の営業担当からデータ分析の事例の説明をもとめられて紹介するとき。

  • インハウスの分析タスクの分析結果を急遽経営層に説明することになったとき。

  • クライアントからデータ利活用やAIの紹介を求められたとき。

  • 旧友に仕事内容を尋ねられたとき。

  • 子供の自由研究でグラフの使い方を尋ねられたとき。

要はデータ分析や機械学習、AIといったデータサイエンスの知識を持たない人に何らかの説明するような場面です。これはなかなか大変で、今も工夫を必要とすることです。

しかしながら、「教えることで教えられる」とはよく言ったもので、自分の理解が甘いところは隠しようがなく、また話すことで自分の理解が深まることを経験しました。まさにアウトプット型学習と言えるでしょう。

まとめ

この記事では自分の過去を振り返りながら、10年前に悩んでいたことと、その解決に至った経緯をまとめてみました。独学、実践、会話の組み合わせが私にとっては重要であるようでした。

また、こうした苦い経験があるのでデータ分析初学者の方や分析チームから相談が来たときには良き壁打ち相手になりたいと思っています。


この記事が参加している募集

仕事について話そう

この記事が気に入ったらサポートをしてみませんか?