#はじめに
昨年のAdvent Calendarの記事ではポスドクからデータ分析職への転職活動について書きました。今回は転職後の約1年で経験したことや学んだことをプロジェクトごとにまとめました。受託なのでプロジェクトの具体的な内容は書いておりません。その点ご了承ください。
#メディア関係ログデータの集計・可視化(期間:約2ヶ月半)
Pythonを使ったテーブルデータの集計、可視化をひたすら実施しました。ポスドク時代にテーブルデータの集計を行うことはほとんどなかったので大変でしたが、このプロジェクトを通して飛躍的に上達しました。
顧客の前でプレゼンテーションすることも数回ありました。顧客の前でのプレゼンテーションは、学会発表と通じるところもあれば、そうでないところもありました。また、資料作成に費やすことができる時間がこれまでより圧倒的に短く、限られた時間で素早く資料をつくらなければならないためこれまでとは異なったやり方が必要でした。
#メディア関係ログデータのダッシュボード作成(期間:約2ヶ月)
BIツールを使ってログデータのダッシュボードを作成しました。ダッシュボード作成の経験はなくBIツールも全く使ったことがなかったのですが、このプロジェクトを通してBIツールを使ったダッシュボード作成に必要な技術を一通り習得できました。
#時系列データを使った故障予知の検証 (約半月)
機器の計測データから故障の予兆を捉えることができるかどうか周波数解析を用いて検証しました。データの整理、集計、ノイズ除去から周波数解析までPythonで実行しました。
#メディア関係サービスの利用数予測の検証(期間:約3ヶ月)
サービス利用数をどの程度の精度で予測できるか月、週、日単位で検証しました。データーベースからSQLでデータを抽出して、Pythonで集計、可視化、予測モデルの構築を行いました。
社内での検証だったため顧客とのコミュニケーションの経験を積むことはできませんでしたが、Pythonのスキルは向上し、集計、可視化、予測モデルのコーディングを格段に素早く実行できるようになりました。
文書検索技術の検証(期間:約4ヶ月)
深層学習を使った文章検索技術をPytorchで実装し、性能を検証しました。まず、顧客からいただいたテキストデータの前処理をPythonで実施しました(正規表現等を使用)。モデルのハイパーパラメータのチューニングとGPUを用いた学習をPytorchで実行し、性能を評価しました。比較対象として深層学習を用いない伝統的な手法も実装、評価しました。さらに、深層学習の計算結果を検索エンジンに組み入れました。
自然言語処理は未経験でしたが、本プロジェクトを通してテキストの前処理、文書検索に関連する自然言語処理の技術を習得できました。Pytorchに関しても計算グラフなど基本的なところは習得できました。また、深層学習のライブラリでの計算方法を正確に把握するためにライブラリのソースコードを読み解きましたが、その過程で優れた設計やcallメソッドはじめPythonの様々な機能を学習できました。
配送最適化アルゴリズム開発(約1ヶ月)
商品の最適な配送計画を算出するアルゴリズムを構築しました。このプロジェクトは現在継続中で、Pythonでアルゴリズムの実装、検証を実施しています。
この最適化問題は、考慮しなければならない要因が多く、その要因が絡み合っており非常に複雑です。また、アルゴリズムの計算時間も短くなければならないという事情があります。ですので、この複雑な問題を適切に数式で表現し、シンプルな手順で解を求めるアルゴリズムを構築する必要がありました。これを実現する上でアルゴリズム研究開発の経験が活きたと思います。
習得スキル
-
Python
ダッシュボード作成以外のプロジェクトではPythonを使用したので(期間:約11ヶ月)、Pythonのコーディングスキルは飛躍的に向上しました。特にPandasを使ったテーブルデータの集計、分析の技術が一番伸びました。 -
SQL
SQLに関しては、ログデータ、サービス利用数予測に用いるデータの抽出で使用したのみで、業務で利用する機会は比較的少なかったので、本を読んだりデータサイエンス100本ノックに取り組んだりするなど自習で習得しました。 -
プレゼンテーション
顧客に対するプレゼンテーションの機会は少なかったのですが、プレゼンテーション資料の作成の技術が向上し、作成時間もある程度短縮できるようになりました。 -
ソフトスキル
ポスドク時代は、個人の研究、他の研究者との共同研究に関わらず、基本的に自分のやり方、自分の考えで研究を進めておりました。入社以降は、PMの元、顧客の同意を得ながら仕事を進めていきますので、業務を通じて、チームでの仕事の進め方、コミュニケーションのとり方を学びました。
所感
多くのプロジェクトに関わることで様々な課題に取り組み、様々な技術に触れることができましたが、いずれのプロジェクトも期間が数ヶ月と短いため、業務を通じて一つのテーマ、技術を深めていくことはあまりできなかったように思えます。この点に関しては、ある程度自習で補いました(特にSQL)。
上述しましたが、仕事の進め方が、研究所と大きく異なるので、学ぶことが多かったです。例えば、研究のようにじっくり一つのことに取り組むのではなく様々な業務を素早く仕上げていかなければなりませんので、スピードに対する意識が重視する方向に大きく変化しました。
機械学習の専門性に関しては、活かせるプロジェクトもあれば、全く活かす機会のないプロジェクトもありました。ただし、ポスドク時代に培った問題解決能力、本質を深く考える力、プレゼンテーション能力、文章力、プログラミングスキル等ある程度抽象的な能力はどのプロジェクトでも大いに役立っていると思います。
今後も、分析、アルゴリズム開発からシステム開発まで一貫して遂行できるように技術を高めていきたいと思っています。
最後まで読んでいただきありがとうございました。