個人事業にデータサイエンスを導入した所感

に公開

私は6年間個人事業を続けており、ここ数年で自らデータサイエンス(以降DSと略記)を学び、事業への導入を進めてきました。幸運なことに、データサイエンティスト(こちらも以降DSと略記)と、この職能に仕事を発注する現場のプレイヤーの両方の立場を経験するという、貴重な経験ができているということになります。
沿革としては典型的で、ヒューリスティック→プログラムによる自動化→DSによる効率化、という流れを辿っています。
私の場合、プログラムの導入は比較的スムーズに進められましたが、DSの導入時には「もっとこうしておけば良かった」「思っていたのと違った」と感じることが多々ありました。
このような経験から、まだDSとして働き始めてもいない学部生の立場ではありますが、DSと現場との間にあるギャップの一例を解像度高く描写できるのではないかと考え、この記事を書くことにしました。

合理的に業務設計していたはずなのにDS導入で躓く

DSを導入しようとした際に最初に感じたことは、そのための土壌が全く整っていないということでした。
データ蓄積の設計の問題で、大部分のデータがそもそも記録されていない、ある条件下で行ごと削除している、挙句の果てにはデータ管理がめちゃくちゃなのでデータが丸ごと遺失している。
辛うじて残っていたデータについても、私自身がDSでありながら業務設計とプログラム(システム)の要件定義も担っていたため問題になりませんでしたが、もしも私が外部から参画したDSであれば、データ生成過程(遺失過程も含む)があまりにも理解不能で狼狽していたことでしょう。
なぜこうなってしまっていたかですが、私の場合はDS導入前と導入時とで何が合理的かという点にギャップがあったことが大きかったと考えています。
例えばDS導入前、あるデータ抽出のプログラムでは、抽出されなかった行をすべて削除する設計になっていました。DSの導入を見据えれば、データはすべて残して抽出されたかを表すフラグを記録する列を用意するべきでした。しかし、抽出したデータに対して人力で追加処理をする必要があったので、その際にそのフラグの列に対してフィルタを掛け、抽出されたデータだけに絞り込む手間を加えるよりは、抽出されなかった行を丸ごと削除してしまった方が楽で、当時は合理的でもあったのです。
結局、まずは既存データがバイアスだらけであることを承知の上でプロトタイプの機械学習モデルを作成し、イチからデータを貯め直して十分な精度となったところで入れ替えました。
ところで、これは私の個人事業なんかよりも遥かにしっかりしているであろう大規模な事業体でもありがちな問題なのではないかと考えます。なぜなら、過去の私と同様、DSを導入するために仕事をしている人はおそらくいないからです。利益に貢献して評価されるため、生産性を上げるために合理的に行動すると、DS導入の文脈においては不合理となってしまうというのは、構造的に避け難いことなのではないでしょうか。

生産性の視点

多くの場合、モデルに技巧を凝らすよりは前処理に力を入れた方が良い結果につながることが多いというのは周知の事実となりつつあるように見えます。このような如何に成果を高めるかという点については広く論じられているように思います。ただ、これは成果の多寡だけを考慮する1次元の見方で、私も自らDSを導入する前はこの見方をしていました。しかし、導入にあたって、ここに投下コストという軸を加えて生産性(=成果/投下コスト)を高めることを意識するべき、というより意識したいと思うようになりました。
生産性を左右するのは、前処理に着手するよりもさらに前、全体方策を設計する段階です。
極端な例とはなりますが、私が業務に自然言語処理を導入した際、最初は現場のプレイヤー(私自身)でアノテーションをして精度の改善を実現しようと考えていました。しかし、正直なところそんな面倒なことはしたくありません。結局、自身のプレイヤーとしてのドメイン知識を活かして、モデルの出力を数十件目視で確認してアジャイルにチューニングを繰り返す方法に行き着き、低コストで必要十分な成果物を得ることができました。
評価指標をF1スコアなどの間接的な数値指標から、ビジネス課題の解決如何そのものに置き換えたことで、おそらく必要コストを1/10以下に抑えることができたわけです。このようなことはある程度普遍的なのではないかと想像します。

今後の方針

もちろん、ビジネスシーンにDSが相当程度浸透した現在においては、私が経験した事例は小規模事業や現場レベルの話で、大規模な事業体になるほど重複する部分は少なくなっていくのだと思います。大規模になるほど人材や仕組みは洗練されているでしょうし、少し精度を上げるだけでもそのために必要なコストを補って余りある成果を得ることができるでしょう。
私自身も、まだまだやりようはあるにせよ、データ蓄積の仕組みの整備や全体設計の工夫でどうにかなる部分についてはできることをやり尽くした感があります。
ここからさらに生産性を上げるためにはある意味DSらしい愚直な技術面の洗練が求められます。ただ、それが本当に必要なのかは、正直なところまだよく分かっていません。
進捗があれば追加の記事を書きたいと思います。

関連記事

https://zenn.dev/tomnjp/articles/0937c107562c3d
https://zenn.dev/tomnjp/articles/5c15e877e843e5
https://zenn.dev/tomnjp/articles/63e28094e5facc

Discussion