私ごと

自分の観点を言語化しておくブログ

2018年振り返りと2019年に向けて

あけましておめでとうございます。

昨年は研究開発として過ごして、一年目でした。AI市場も、コンセプトレベルで目新しいものが出ることがなくなり、やや飽和感を感じているこの頃ですが、振り返りを行い、本年のターゲットの整理にしていきたいと思います。

研究開発になって実感したこと

研究開発になって、分析を主に担当となったことで、技術面としては

- 言語処理関連やデータマイニングに関する分析のあれこれの入門・基礎の学習

- ニューラルを利用した言語処理の理解

- pythonC++でのコーディング

を行った年でした。特に、トピックモデル周りの洞察と仕組みの理解は深まりました。

また、分析エンジンの企画を技術面でサポートし、企画面としては、

- 何がどこまでできそうか

の整理を行いました。上位レベルの目標の知見はあまり広がりませんでしたが、言語情報が大量にある場合の分析について、少し形が見えた気がしました。

最後に、組織面として、フロントチームにいた際に、「なぜ改善サイクルを回せないのか」と言うことが、異なった視点で見えたました。

企画面

企画面としては、感じたことは以下です。

1. データが十分に取得できない領域は、引き続きモデリングしたほうが良い。また、コストも安い可能性がある。マーケティングには、多分にそういった面がある。(マクロ指標から、ブレイクダウンできる側面が多々ある)

2. データマイニングとして検討づけた後、代表を「要約」することはそれなりに望まれており、ここをシームレスに行うことは価値がありそう。(ただし、フローとしてどうしたら良いかは不明)

2.1. この問題として、視点ごとに、要約したいことが異なるのが問題になりそう

2.2. 付随して、教師データの作成がネックになる

2.3. その他は、結局のところカウントである。

技術面

かなりのことをフルスクラッチで実装した(している)ので、色々な悩ましさを実感できました。

1. C++のような型有りの言語を触って、いろいろな煩雑さがあることを実感しています。デザインパターンのありがたみを理解し始めました。

2. NNの論文の進歩が有り、今年はいろいろな知見に触れることができた気がしました。基本的に、語の近さを測定できるようになったことと順番を考慮できるようになったことで、あとはよしなにNNがなんとかしてくれる気配が有ります。これは、今年もう少し深めたいところです。

3. BoWはそろそろやりきった感が有り、あとはもう因果推論をからめるくらいかなと思っています。高速化や、WAICなど推定値の性質についてはもう少し深掘りしても良いかもしれないです。

4. 係り受けは、データが増やせないので、出来ることがそこまで変わらない気がしています。

5. クロス集計表をもう少し頑張って分析するなら、BN・Graphical Lasso・LINGAMあたりかなという気がします。ただ、先ずは、相関で見えるものを見られる会社になって欲しい(相関係数も何をどう計算するか悩ましいですが)

組織面

前々から、フルスクラッチすぎて、研究開発のスピードが遅いと感じていました。要因としては、

- フロントチームの分析力不足

- 研究チームのドキュメント整備不足

- 向上させたい製品機能が不明確

- 製品チームの組み込み方針の不足

 が挙げられると感じています。

フロントチームの分析力不足

- 研究開発が検証しようと思うほどの粒度としてブレイクダウンできない。よって、検証すべきタスクが何であるかがわからない。(これは、NLPがパイプラインが長いにも関わらず、中間タスクのアノテーションが困難であることにも起因する)

- そのため、揃えるべきデータがわからない。

- scikit-learnレベルでの使い方の検証ができない

- プロトタイプレベルで検証できない。(いちいち画面を作らないとできない)

- 一方で、PoCの際は、他に検証すべきことが多すぎて一々、プロとの検証までできないという面もある

研究チームのドキュメント化不足

- 使い方をドキュメント化できていない

- プロトタイプとして存在するコアをリスト化できていない

(本当は、いつどう使うのかをドキュメント化できたらベストだが、研究チームには不可能な気がする)

向上させたい製品機能が不明確

- 研究が何をどう検証すればいいのかわからないし、組み込み型もわからない。(当座の解決策に走る傾向がある)

コア機能をどうやったら、製品に組み込むことになるのかわからない

- 研究レベルでは検証した機能をどうしたら、製品に組み込もうとなるのかわからない

(そのため、研究者がそのままC++でコアを実装して、製品の人が整えるという形になりがち。C++が必須になってしまう)

今年は、取り急ぎ、研究だけで検証できるタスクのメニューを揃えることで、これ以上は研究ではできないということを示しておこうと思っています。

 

コンサル(SI)・サービス・ベンダー

 もう一つ市場環境として見ておきたいことが、この3つのトレードオフです

- コンサル

O: 何が実行して効果があることか・その運用体制の構築・納得感に対するスピードが早い

X:  オープンソース依存の場合、導入が行いにくい(フルスクラッチwebサービスを作るか、代替製品を導入するかになる)

- サービス

O: データが入る。クラウドの活用

X: 標準的なことしか提供できない

- ベンダー

O: 製品化してあるため、導入までがはやい

X: コンサルほど速度がない。またサービスみたいにデータがない

2019年に向けて

以上の、今年の振り返りを踏まえて、今年はいかに取り組んでいけたらと思います。

技術面

- embeddingを通じて、もう少しNNを利用したNLPの知見を得る

- デザインパターン、テストなど、少し開発力を上げる

- 並列・並行計算の実装

- 検証サイクルを確立して、今年入門したあれこれをいち早くためしていけるようにしたい(けど厳しそう)

企画面

- 製品化に向けて頑張る

組織面

- 経営陣に疑問をぶつけ続ける

全体

目標としていたことは、「生産性を上げて、ダウンサイジングを促し、自由度を高くしていくこと」でした。情報産業に対して、研究開発まで関わって見えたものは、

- AIがfitしやすいのは、サービス(データが手に入り、一般的な知識であるため)

- 特に専門知識に依存している業界の、生産性向上を企図したシステムは、AIにあまり向かない(データが手に入らない)

- 自分が目指したのは、専門知識業界だった

ということでした。

今年は、以下のいづれかにチャレンジしたいと思います

- 専門知識の必要な課題系へのアプローチ

- BNなど、因果系

- NLP頑張る