渋谷駅前で働くデータサイエンティストのブログ

元祖「六本木で働くデータサイエンティスト」です / 道玄坂→銀座→東京→六本木→渋谷駅前

データサイエンティストや機械学習エンジニアが、可能な限り統計学や機械学習やプログラミングを使って課題を解決するべき3つの理由

f:id:TJO:20181120105412p:plain
(Image by Pixabay)

しばらく前のことですが、旧知のTakayanagi-sanがこんなブログを書いておられました。

ビジネス上の課題を解決していくことは当然必須であるが、データ分析者としてのキャリアを積みたいのであれば、データ分析に関係のない仕事はできるだけ避けたほうが良い。 このような環境で職務経験を積み上げた先にあるのは「おしゃべり課題解決コンサルおじさん」であり、データ分析者ではない。(中略)


私の意見では、個人のキャリアは会社とは切り離して考えるべきであり、従業員は経営者視点(会社が儲かるなら何でもやる)になってはいけない。会社や顧客のために個人のキャリアや生き方(データ分析以外の仕事も何でもやるデータ分析者)を犠牲にするような労働はすべきではない。

個人的にはこの意見は至極尤もだと感じましたが、当然ながらデータ分析業界の中での議論を見ているとそれなりに異論も出ているようです。一方で、僕個人としては「何故自分がこの意見を見て至極尤もだと思ったか」を突き詰めれば、自分の考えるデータサイエンティスト・機械学習エンジニアという職業のレゾンデートルが見えてくるのかなと思ったのでした。


そこで、以下にその理由を3つほど挙げてみようと思います。なお、言わずもがなですがここに述べる意見は僕個人のものであり、何かの金科玉条でもなければ遵守すべきルールでもなければ権威としての意見でも何でもありません。この記事を読む皆さんにとって「データサイエンティスト・機械学習エンジニアとは何者なのか」という疑問に答える参考材料程度に捉えていただければ有難いです。

職業そしてキャリアとしての「独自性」を守るため



「データサイエンティスト」「機械学習エンジニア」という職業がどのようなスキル要件を満たすべきか?という点については、過去にも何度かこのブログでも論じてきました。基本的に、5年もしくはそれ以上の期間に渡って*1徐々に社会へと浸透していった結果、これらの職業はそれぞれ「統計分析」and/or「機械学習」そしてプログラミングで高度に自動化されたプロセスに基づくデータ分析を担う、独自性のある専門職として認識されるようになっていった、というのが僕個人の見解です。


同時にデータサイエンティスト・機械学習エンジニアは様々な業界そして企業や組織で「新たな花形職業」*2とみなされるようになり、これらの職業を目指す人々がこぞって統計学機械学習やプログラミングを学ぶようになりました。巷に初心者向けの統計学機械学習の本・勉強会・コースが溢れるようになったのも、僕の知る限りではこの5〜6年の話です。



ところが以前このブログでも論じたように、2013年頃の第一次データサイエンティスト・ブームの頃は統計学機械学習のような学術的スキルに凝り固まった「学者バカ」がなだれ込むのを警戒したのか、ビジネス畑方面からやたらめったら「ビジネス貢献が出来なければデータサイエンティストではない」という主張が繰り返されました。その結果、いつしか主客顛倒して「ビジネススキルさえあれば誰でもデータサイエンティストと名乗れる」というおかしな運動が起きるようになったのです。必然的に統計学機械学習も況してやプログラミングも出来ない「なんちゃってデータサイエンティスト」が続出し、彼らがレベルの低いアウトプットを繰り返して社会からの幻滅を誘ったことで、第一次ブームは萎んでいったのでした。


近年、空前の人工知能ブームに押される形で第二次データサイエンティスト・ブームが湧き起こり、機械学習エンジニアもまたブームになる中、再び「ビジネス貢献が出来なければ〇〇ではない」という声が上がるようになったのを見て、僕は好ましくないデジャヴを感じています。


一般に、何事であれヒトは易きに流れるものです。データ分析を「させる」側のビジネスパーソンとしては、往々にして「統計学機械学習やプログラミングのような自分たちには理解できないもので問題を解決されるよりは、神Excelのような自分たちにも理解しやすく真似しやすいもので問題を解決してくれた方が有難い」と思う傾向があるように見えます。言い換えると、後者の方が「ビジネス貢献につなげやすい」ひいては会社のためになると見られやすいということです。


そこでデータサイエンティストや機械学習エンジニアが統計学機械学習やプログラミングの類を使わず「同じように解決できるなら」という理由で、例えば神Excelを大量生産して問題を解決したとしましょう。すると、その後改めて統計学機械学習やプログラミングを使って仕事をしようとした時に起きるであろうことは「あの時お前らは神Excelで問題を解決してみせたじゃないか、何故今頃になってそんな分かりにくい小難しいものを使おうとするんだ」という上長や依頼元からの理不尽なクレームです。言い換えると統計学機械学習やプログラミングを使わずに問題を解決してしまうと、次からそれらを使える機会が失われやすい」ということでもあります。


前述したように、データサイエンティストや機械学習エンジニアの独自性は「統計学機械学習やプログラミングを用いて問題を解決できる」点にあります。にもかかわらず、それらを使える機会を失うということはそれらの職業としての独自性を失うということです。ひとたびその独自性を失ってしまえば、ただの「おしゃべり課題解決コンサルおじさん」と化すまではほんの一歩と言っても良いでしょう。


しかも、統計学機械学習やプログラミングは日進月歩どころか秒進分歩の勢いで進歩し続けています。ひとたびそれらから離れてしまうと、後からキャッチアップするのはかなり大変です*3。最先端の理論や手法や技術のことが微塵も分からない「かつてはデータサイエンティスト・機械学習エンジニアだった今はおしゃべり課題解決コンサルおじさん」の行く先は、おそらくその辺の十人並みのただのコンサルおじさんです。ひとたび易きに流れるビジネス側に迎合してしまえば、キャリアにもまた行き詰まりかねないというわけです。


その意味で、データサイエンティストや機械学習エンジニアとしてのキャリアを守るという観点からも、「統計学機械学習やプログラミングを使って仕事をする」という一線は守るべきだ。と、いうのが僕の意見です。


・・・と、色々並べてみましたが、そうは言っても現場では統計学機械学習やあまつさえプログラミングの出番以前の課題というのはゴロゴロしているわけです。実際にデータサイエンティストや機械学習エンジニアという職掌にあったとしても、そういった比較的プリミティブな課題の解決を任されることは少なからずあるはずです。そういう時にどうすれば良いか?という話ですが、理想を言えば「そういう仕事は受けない」。けれどもそうはいかないことが多いと思うので、僕個人が考える対策としては「自分からは『統計学機械学習やプログラミングを使わなくても出来る』とは言わない」ことかなと。仕事を持ち込んだビジネス側の人たちから「どうしても何とかして欲しい」と頼まれたら枉げて受けるが、本来自分たちがやるべき仕事はそこではないんですよ、というアピールを程度問題ながら行うことが大事かと。


最低でも「自らは統計学機械学習やプログラミングによる課題解決を放棄しない(むしろこだわる)」という姿勢を見せ続けることが、時としてプリミティブな課題だらけでそれらのスキルの出番がなかなかない中であっても、特殊な職業としてのキャリアとその独自性を守る一助になるのかなと思っています。


往々にしてその方がより「合理的」であるため


ここで、百歩譲って「小難しい統計学機械学習やプログラミングなど使わずにExcelで出来る範囲の分析をやれば良い」ということにしましょう。では、それで果たして本当にビジネス課題を解決できるのでしょうか? もちろん、解決できるビジネス課題は沢山あると思います。ただ、そうではない課題も世の中にはあるのだという話をここではしてみます。




過去にもこのブログで何度か論じていますが、一般に単純なExcelでの集計など直感的なデータ分析で扱えるのは「単変量」の関係性までです。上記で2番目にリンクした記事の例で言えば、ワインの格付けを「アルコール濃度」や「pH値」や「特定の化合物の濃度」に紐づけて論じる、というようなお話です。


しかしながら、この世界の森羅万象の多くはそのような単純な「単変量」の関係性では表せません。ワイン分析の記事でも指摘したように、「〇〇と××との単変量的な関係性」を山のように積み上げたところで、時には互いに矛盾することすらあるバラバラな関係性の寄せ集めになるだけで、統一された結論にはたどり着けないのです。実際、ワインの格付けと酒石酸・クエン酸・アルコールの濃度は正の相関を示しますが、酢酸濃度・pH・密度は負の相関を示していて、しかもそれらの指標たち単体ではワインの格付けスコアを予測しても良い精度は得られません。


そのような場合であっても、統計学機械学習の特色の一つである「多変量モデル」を用いれば、それらの一見互いに矛盾する関係性を一つの統一されたモデルにまとめ上げることが出来ます。実際、このワイン分析の例では機械学習の多変量モデルの一つであるランダムフォレストを用いることで、ワインの格付けスコアをより高い精度で予測することが可能になっています*4


Excelで単純集計するようなデータ分析はあくまでも直感的な理解によるものであり、それは多くの変数間の複雑に絡み合った関係性を解き明かすには素朴過ぎます。上記で1番目にリンクした記事の例のように、ただの単純集計だけでは誤った結論に至ることもあり得ます。他方で、統計学機械学習による多変量モデルに基づくデータ分析は、ヒトの直感を超えて遥かに複雑な関係性を扱える上に、あまつさえより正確な予測を与えることすら出来ます。世の中のビジネス課題の中には、そのような方法論を用いた方がより合理的に解決できるものがあるということは覚えておいて損はないと思う次第です。


「スケーラビリティ」(拡張可能性)を高めるため


そもそも「ビジネス課題解決のためのデータ分析」と言った場合、そこには様々な規模やタイムスケールの「レイヤー」があり、個々のレイヤーの状況に応じて方法論を使い分けるべきだ、という話をこのブログでも何度かしてきました。



例えばこの記事では、以下の7つのステップをそのレイヤーの「進化」の過程の典型として挙げました。

1. データをビジネスの「エビデンス(根拠)」とし、「データドリブン」に変えていく
2. 次にデータを集めて「可視化」する
3. データを比較して「A/Bテスト」する
4. A/Bテストに「統計学的検定」で信憑性を与える
5. 「多変量モデル」を導入して同時に複数の要因にアプローチする
6. 「モデルによる予測(推測)」で未来のアクションや意思決定をサポートする
7. 「機械学習」とその「システム実装」による自動化を導入し、人手による「アドホック分析」とバランス良く使い分ける

一見して分かるかと思いますが、1-2と3-7とでは「統計学機械学習の導入以前or以後」という違いがあります。そして、ここにこそデータサイエンティストや機械学習エンジニアが、統計学機械学習やプログラミングを使って仕事をする理由の3番目があります。


それは「属人性」を排し、「再現性」高いデータ分析を行い、「自動化」によって、「スケーラビリティ」の向上を目指すということです。


上記リンク先記事にもあるように、データ分析の取っ掛かりとしてはシンプルな集計やデータ可視化によって、ヒトの目で直感的なデータの解釈を行い、ビジネス上の意思決定なり施策なりにつなげるというやり方は極めて有用ですし、特にまだデータ分析のカルチャーが根付いていない組織ではそれらから始めることが肝要です。もっと言えば、マクロの戦略レベルでのデータ分析と言えばそれらの分析方法で十分なケースが大半です*5。これが1-2のフェーズですね。


では、それらのデータ分析によって例えばあるeコマースサービスのDAU(日次アクティブユーザー)が500人だったのが5万人にまで増えたとしましょう。仮に500人だった時期に細かいデータ集計と可視化によって、どういうセグメントにどのような施策を打つべきかを細かく定めて、ルールベースで施策を配信していたとします。けれども、同じことを5万人になってからも人手でやるとしたら、どうなるでしょうか? 単純計算で言えば100倍のユーザー数に対して、同じ分析作業をやることになります。しかも、セグメント数が500人の時と5万人の時とで同じとは限りません。場合によってはセグメント数が10倍とか50倍になる可能性もあります。こうなると、もはや人手では回し切れません。つまり、このやり方ではスケーラブルではないというわけです。


またこれは別の問題になりますが、得てしてそのようなeコマースを展開するような業界*6では、転職によって人の出入りが生じるというのは良くあることです。例えば、上記のような人手によるデータ分析を担っていたデータ分析者が、突然辞めて転職するということになったらどうしたら良いのでしょう? 割とあるあるなのが「〇〇さんの『秘伝のタレ』的な分析が効いていたんだけど、〇〇さんが退職しちゃったので他にやれる人がいなくなった」というパターン。こうなると〇〇さんの穴埋めが出来ない限り、その会社のビジネスからは「秘伝のタレ」が失われることになってしまいます。これもまたスケーラビリティの欠如と言えるでしょう。


そうなった時に「ヒトの目で見てセグメントを決めてどの施策を行うべきかをヒトが判断していた」作業を、例えば機械学習システムで置き換えてみてはどうでしょう? おそらくですが、〇〇さんの「秘伝のタレ」に頼ることなく自動的に機械学習システムがセグメントを決めてどの施策を行うべきかを判断してくれるようになり(自動化)、しかも〇〇さんのその時々の気分に左右されていた判断もある一定ラインに安定するようになる(再現性)と思われます。そしてそれは〇〇さんがいなくなった後でも続けることができます(属人性の排除)。スケーラビリティが向上する、というわけです。


そこまで発展せずとも、例えば上記の3-4のフェーズであっても〇〇さんの気分に左右されてきた判断に、統計学的検定という方法で一定の再現性を与えることも出来ます*7統計学単体を持ち込むだけでもデータ分析をある程度スケーラブルにすることは可能なのです。


ちなみに、ここではユーザーレベルマーケティングの話をしてきましたが、広告戦略・戦術という話になればまた事情は異なってきます。ただ、ここでも広告のプランニングというマクロなレベルの話と広告のターゲティングというミクロなレベルの話とでは大きく方向性も方法論も異なりますので、似たような流れになるであろうと個人的には考えています。


個人的な意見


このブログでも何度か表明していますが、基本的に僕はデータサイエンティストや機械学習エンジニアのキャリアという点では「原理主義者」です。企業に勤めるデータサイエンティストや機械学習エンジニアである以上はビジネス面については「企業勤めならこれぐらいは出来るだろう」レベルのことが最低限出来ていれば良いと思っていて、あくまでも当人たちの価値は統計学機械学習やプログラミングと言ったSTEMスキルによって形作られるべきだし、そこで評価されるべきだと思うのです。


と書くと、「ビジネスの現場では売り上げ立ててナンボなので統計学やら機械学習やらプログラミングやら出来たところで評価なんてされないんだよ」という声が良く飛んでくるものなのですが、単純にビジネスの現場での評価「だけ」が欲しいのであればそれこそ「おしゃべり課題解決コンサルおじさん」になれば良いだけの話です。僕もそういう現場の実情は熟知しているつもりですし、それを否定するつもりはさらさらありません。


ただ、データ分析を生業としていて「データサイエンティスト」「機械学習エンジニア」という職業として認知される立場にあり、尚且つ統計学機械学習やプログラミングによって課題解決していくことが「好き」な人が、ビジネス上の要請だからという理由でそれらをあえて封印するような仕事のやり方をするべきではない、と個人的には思っています。むしろ、積極的にそれらの価値を存分にビジネスの現場で啓発し、広めていくべきとすら考えています。上に述べたように、それらを用いる方がより合理的だと僕は信じているからです。


ちなみに「おしゃべり課題解決コンサルおじさん」単体ではデータ分析やろうがやるまいがどうでもいい的な単なるおじさんになりがちですが、「データサイエンティスト」「機械学習エンジニア」とセールスやプロダクトや顧客との間をつないで交通整理やストーリーテリングしてくれる仲介者的な立ち位置に、データも分かる人材として「おしゃべり課題解決コンサルおじさん」を配置すると、実はデータ分析成果の社会実装に長けた非常に強力なデータ分析チーム構成になる、という点を最後に強調しておきます*8


最後に


色々書き連ねましたが、この記事のお題になった『データサイエンティスト養成読本 ビジネス活用編 (Software Design plusシリーズ)』は僕も技術評論社様からご恵贈いただき、その内容には全て目を通しておりますし、データ分析業界で6年以上働いてきた身としてはどちらかというと首肯できるお話ばかりであったということを付記しておきます。


ところで。「データサイエンティストとは何ぞや」的なポジショントークで溢れ返ったのは第一次データサイエンティストブームの末期の頃にも見られた現象で、その直後にバブルが弾けたのでした。ということで第二次データサイエンティストブームも間も無く崩壊するのだろうなと思っています。同時に人工知能ブーム、そして機械学習エンジニアブームも崩壊するのか否かを、今後は注意深く見守っていく必要がありそうです。。。

*1:もちろん第一次データサイエンティスト・ブームを念頭に置いています

*2:21世紀で最もセクシーな職業orz

*3:僕は既にNN諸系統の猛スピードの進歩から取り残され始めていますorz

*4:もちろん他の機械学習手法を用いればもっと精度を高めることは可能と思われる

*5:経営レベルの意思決定ともなると予算の増減ぐらいしか出来ることがなかったりするので、むしろそれより細かいデータ分析をしても役立てることの方が難しくなる

*6:いわゆるtech業界

*7:色々議論はありますが、有意水準という考え方も使えるわけで

*8:「社会実装」については多分次回のブログ記事で詳細に論じます、多分。。。