FinTech企業で働く駆け出しData ScientistのBlog

このブログは筆者の勉強用のメモであり、内容は間違っている可能性もあります。もし誤り等があった場合にはご指摘いただけますと幸いです。また、このブログの内容は筆者個人によるものであり、筆者が所属したことのあるいかなる組織や団体を代表するものではありません。

TwitterのBotで仮想通貨(BTC/JPY)で大きなプライス変化があったときにアラートを出すようにしました。

PythonAPIを叩く練習がてら、このようなBotを作っています。

twitter.com

Botでつぶやいている内容

ここでは、主に以下のツイートをしています。

  1. BTC/JPY Best Bid / Best Ask
  2. BTC/JPY Spread
  3. BTC/JPY Volume
  4. BTC/JPY Spread Transition
  5. BTC/JPY Price Change (New!)

1. BTC/JPY Best Bid / Best Ask

こちらは、各取引所のBest Bid (売値)とBest Ask (買値)を表示しています。

Best Bid (売値)

 Best Ask(買値)

2. BTC/JPY Spread

スプレッドとは、BidとAskの差になります。販売所形式であれば、この差がその取引所(販売所)の利益になります。投資家目線では、この差が狭い方が取引コストがかからなくなりますので、取引しやすくなりますね。

 3. BTC/JPY Volume

こちらは直近24hにおけるBTC/JPYの取引量を出しています。

4. BTC/JPY Spread Transition

取引所のBidやAskはどのような取引が行われるか次第で瞬間的な要素がかなり強いものになります。そのため、ある瞬間はSpreadが狭くても、ある瞬間は広くなるということが起こります。そこで、ここでは少々雑ですが、直近1時間のSpreadを10分毎に平均して描画したものがこちらになります。

※5のリリースの影響で若干バグり気味です…時間がある時に直します。それか現状はかなり力技で実装しているので、抜本的なリファクタリングを検討しています。

5. BTC/JPY Price Change

直近5分間で1%以上プライス変化があった場合にその変化内容をつぶやきます。こちらでは単純に5分前のMid Priceと現在のMid Priceを比較しているだけなので、5分間の中での変動は含みません。5分前と現在のMid Priceのみ参照しています。

※レイアウト少し変更予定です。

Twitterアラート設定方法

BTC/JPYで投資している方で、タイムリーにこちらを参照されたい方向けにTwitterでのアラート設定方法をご案内します。

まずはこちらのBotのプロフィールページに行きます。

f:id:yukiyoshisato:20181125145514p:plain

こちらの「フォロー中」という表示の左にベルのマークがあると思いますので、こちらをクリックします。

f:id:yukiyoshisato:20181125145528p:plain

「すべてのツイート」を選択します。これで設定完了です。そうすると、以下のような通知が来るようになります。

f:id:yukiyoshisato:20181125145609p:plain

当然ですが、マーケットが激しく変動しているときには大量の通知が来ますので、ちょっとうるさいなと思われたら同じ手順で解除していただければと思います。また、こちらのアラートにより大量ツイートが行われると、Twitter APIの制限に引っかかってしまって不定期にツイートが止まってしまうこともあると思います。この辺はお許しください。

ご参考までに、APIプログラミングで参考にした書籍はこちらになります。

仮想通貨はまだかなり激しく変動しますので、くれぐれも投資は余裕資金の中で行っていただければと思います。

日本ディープラーニング協会(JDLA)のG検定を受けました。

本日、日本ディープラーニング協会(JDLA)が主催するG(ジェネラリスト)検定を受験しましたので、雑感を述べてみたいと思います。

G検定とは何か

www.jdla.org

JDLAの提供する資格試験にはG検定とE資格という二つの種類があります。

G検定

ディープラーニングの基礎知識を有し、適切な活用方針を決定して事業応用する能力を持つ人材

E資格

ディープラーニングの理論を理解し、適切な手法を選択して実装する能力を持つ人材

ディープラーニングを取り巻く主要な2種類の登場人物を育成していこうという狙いです。いわゆるシステム業界で分かりやすい言葉で言えば、「ユーザー」と「エンジニア」です。

エンジニア側はともかく、ユーザー側のお話としてAI界隈でよく聞く話で、「AI使ってなんかやれ」とか「金払ってデータもやったのになんで精度出ないんだ」とかAIのことを何もわかっていないのにこういうおかしな事を言う人が出てきてしまうと、うまくいくものもうまくいかなくなってしまいます。どんなにエンジニアが努力をしても、そもそもAIで解くべき問題でもなければ、いくらお金払われても何の役にも立たないようなゴミデータばかり出されても、こればっかりはどうにもなりません。

恐らくそういった残念な人が出てくることを抑止したいという狙いもあってこのG検定ができたのかな…?という気もしますね。

なぜ受けたのか

私は今、東京大学松尾研究室が提供する寄付講座である、Deep Learning 基礎講座を受講しています。この講座のレベル感は恐らくE資格の方に当たると思います。この講座では高レベルなライブラリを使わずに、自力でディープラーニングのモデルを開発できるようになることを目指していて、実際に演習ではそういったことをやっています(今のところ私はコピペしてなんとか動かすのが精一杯ですが)。

でも、ふと思ったときにディープラーニングで何をしたいのかという点について、自分の中でもまだあまり具体的なイメージを持てていなかったというか、そもそも何ができるのかをあまりよく知らなかったので、アイデアが湧いてこないというような感じもありました。そんな中、本屋でG検定のテキストを手に取ってぱらぱらっと眺めてみたら、今の私がちょうど知りたかったようなことなどが簡潔にまとめられているなという印象を持ちました。

また、そのすぐ横にJDLAが発刊したばかりのこちらの本もありましたので、両方合わせて買ってみることにしました。

あと、最後に一番大事な点ですが、G検定合格者Slackなるものがあると聞き、これに加わりたいと思ったのがこれに受かりたいと思った一番の動機です。機械学習界隈では、こういったコミュニティが色々なところでできており、無料で入れる上に、その道のエキスパートから色々と教えてもらうこともできてしまいます。本当に学習意欲のある人にとっては素晴らしい環境が整っていると思いますし、こういった動きを見ると本当にいい時代になったなぁとしみじみ思います。ご参考までに私が参加しているコミュニティをご紹介します。

Kaggler-ja
https://kaggler-ja.herokuapp.com/
機械学習工学研究会
https://sites.google.com/view/sig-mlse/

どう勉強したのか(どう勉強するとよかったのか)

この記事を書いている時点では、まだ合格していませんでしたので、内容を踏まえてどう勉強すればよかったのかも含めて反省してみたいと思います。

まず、私がG検定を受けようと決めたのは締め切り1日前の11月14日でした(遅)。

次回は2019年3月9日に予定されていますので、気になる方は早めに勉強を開始しましょう。

私の場合、もともと機械学習は勉強していたところに、松尾研の講座と講座の副読本としてこちらを読んでいました。

そのため、ゼロから勉強する方に比べればだいぶアドバンテージはある状態だったと思います。でもやっぱり実際に試験勉強をして試験を受けてみて実感するのは自分が苦手にしているところとか、理解をおろそかにしていた部分とか如実にわかるので大変良い自己点検の機会になりました。結局私がやれたこととしては、公式テキストを一読する程度で終わってしまいました。

で、肝心のどう勉強すると良かったのかという点についてですが、まず公式テキストだけでは足りません。出題内容に関して触れられてはいるけど回答につながるまでの情報は書かれていないものもあったり、AI白書2017からもかなり出題がありました。

もうすぐ、これの2019版が出ますね。

あと、これはちょっと意外だったのですが、簡単な計算問題(微分やベクトル計算)も出ました。ディープラーニングをかじっていれば普通にやる程度のものではありましたが、エンジニアでもないユーザーサイドの方からすると、「お、まじか」ってなる気はします。社会実装例(自動運転、他)に関しても結構細かいところまで突っ込まれていたりしたので、活用例もしっかり勉強しておいた方が良いと思いました。

本番対策Tips

あまり本質的ではないですが、ルールを破らない程度のTipsをまとめてみたいと思います。この試験は自宅受験になっており、わからないことは自分で調べながら試験を受けることができます。ただ、120分で226問とかなりボリュームがありますので、恐らく調べるスキを与えないためのボリュームなのかと思います。でも調べることはできますので、これを最大限活用しましょう。

問題の中には、比較的簡単な選択問題が1つの文章で4問とかあるケースもあれば、1問で5つぐらいの長文を読んで内容を判定しないといけないようなものもあります。絶対に犯してはならないのは、自信のない読解問題で時間を消費することです。そのため、試験中、私の中で以下に問題を分類しました。

  1. 調べればすぐに答えにたどり着きやすい設問
  2. 読解が必要で答えにたどり着きにくい設問
  3. 読解が必要で答えにたどり着きにくそうで、後で調べても回答できなさそうな設問

この試験には、後で振り返るためのマーキングをする機能がありますが、3に関してはマーキングをやめました。つまりその場でテキトーに答えるだけ答えて完全に捨てました。

結果どうだったかというと、この戦略は正しかったと思います。私のペース的に、半分ぐらい来たところでまだ85分くらい残っていました。ただ、この前半は考えることを一切しなかったので、ちょっとでも不安に感じたらマーキングして次に進んでいました。このペースでいけば、50分くらい余ることになりますので、後半は、1の調べればすぐに答えにたどり着きやすい設問について、初見でも調べながらやることにしました。特に、1つのテーマで穴埋め4-5問とかあるやつは調べるコストに対して回答効率がぐっとよくなりますので、多少自信がある方でも絶対に落とすまいと調べながらやりました。

その結果、一通り解き終えた時点で余った時間は17分ぐらいでした。この17分を使って前半かなり飛ばしたところを中心に振り返りをしていきました。ここで、公式テキストでも書いていないこととかもあったので、ググったりして回答していきました。そうこうしていたら、いくつか回答しきれずに時間切れになりました。やはりググり出すとすぐに回答にたどり着けるかわからないですし、可能な限りググる個数を減らすのもポイントですね。 

あと、公式テキスト調べるときは索引を利用して該当ページを探したりしていましたが、まだこれからテキストを購入される方は、楽天Koboでの電子書籍購入がオススメです。なぜなら、電子書籍の中身をPC上で検索できるからです。ではなぜAmazon Kindleではないのかと言うと、Amazon Kindleは日本語での検索に対応していません。試験内容は日本語ですので、日本語で検索することになりますが、Amazon Kindleで検索しようと思うと、テキストエディタなどで一度日本語を入力してから、それをコピペして検索する感じになります。これだけ時間がタイトな試験なので、そのリードタイムは下手したら数問回答をできるぐらいの時間になりかねません。推薦図書の楽天Kobo版リンクを貼っておきます。

これは試験を受けた後にTwitterを眺めていて知ったのですが、どうやらG検定の模擬試験を受けられるところがあるようで、軽くググってみたところ恐らくこちらですかね…?試験形式になれるためにも問題に解きなれておくのは大切だと思いますので、ご活用ください。

study-ai.com

 最後に、間違っても数人で結託して設問をブートストラップサンプリングして解いてアンサンブル回答する(?)みたいなことはしないでくださいね。

 これからG検定を受けようとされる方の参考になれば幸いです。

東京都の空きテニスコートをPython(Selenium)でWebスクレイピングしてTweetします。

今の仕事に就いてからは、仕事でPythonというプログラミング言語を毎日書いているのですが、そのお勉強がてら、ちょっとしたお便利ツールを作ってみました。

はじめに

都内のテニスコートって2時間やったらウン万円みたいなところもありますが、東京都が運営しているスポーツ施設はかなりリーズナブルなお値段(2時間照明込み4000円とか)でテニスコートを借りることができます。これを知ってからは、会社帰りに利用させていただくようになりました。

東京都スポーツ施設サービス

抽選で1人2枠まで申し込めるのですが、場所や日程を選ばなければある程度の確度で当てに行くこともできますが、やはり都心部に近いところや金曜日などはみなさん狙ってるのでなかなか当たりません。

抽選に外れてしまうとあとは空き枠を検索して予約しに行くことになるのですが、これがちょっと面倒だったりします。また、人気のあるところなどは見張り役がいるんじゃないかと思うぐらい瞬時に予約がされています。前にあったのですが、ログインせずに空き枠検索して、お!いいとこ空いてるじゃん!と思ってログインしてそのページを開いた時にはすでに埋まっていました…。

ところが、案外探してみると、ちょっと都心からは離れるけれども行けないことはないぐらいのところでそれなりに空きが出ることが分かってきました。

なぜやるのか

言わずもがなですが、いい場所、いい日程のアフターファイブでテニスを楽しめる枠があったら予約したいからです。それをタイムリーにピックアップできるようにしてみようと思ったのがきっかけでした。

でも実際にやり始めてみると、結構いいところ空いていることがあるのですが、結局は自分の予定的に行けないところだったりすることが多いんですよね。でもそうなるとこの集めた情報はなんの役にも立ちません。

それに、一応テニス愛好家としてはテニスコートが誰にも予約されずに使われないままになってしまうのはなんだかもったいない気がするので、もしこのお便利ツールを見てタイムリーに予約してテニスを楽しめる人が増えて、空きコートのままになってしまうコートが減ってくれたらうれしいなと思っています。

どうやるのか

今回はこちらの記事を参考にさせていただきました。

qiita.com

スクレイピングというのは、Webサイトから情報を抽出して利用することを指します。つまり、この東京都スポーツ施設サービスのWebサイトから情報を抽出していきます。

参考にさせていただいた記事を見ていただければ、Seleniumの使い方は非常に良くわかると思いますので、ここでは触れませんが、その代わり、今回の題材にしているサイトを使って、HTMLの要素の追いかけ方とその実装の仕方を中心に見ていきたいと思います。

私はWeb BrowserにはGoogle Chromeを使っているのですが、ChromeはF12キーでHTMLの要素を簡単に追いかけることができます。正直私はHTMLなんてまともに描いたことはなく、ズブの素人ですが、そんな素人でも要素を追いかけていくことができました。

ホーム画面

f:id:yukiyoshisato:20181014224838p:plain

右側がF12キーを押して出てきたHTMLの要素を表示した画面です。HTMLのタグとか良く知らない私でも追いかけられるのは、ご覧の通り適当にひとつずつ要素をたどっていけば、左側の画面が網掛けのようになってくれるのです。これのおかげで、狙っている要素までたどっていくことができます。

f:id:yukiyoshisato:20181014225045p:plain

狙っている要素は「施設の空き状況検索」の「利用日時から」です。そのため、1つ目のキャプチャの2つ下の要素に移ったらこちらの網掛けがした全体に移ってきました。ここからは、ドリルダウンになっている要素をどんどん奥に向かってたどっていきます。

f:id:yukiyoshisato:20181014225307p:plain

そうそうこの右側の…

f:id:yukiyoshisato:20181014225325p:plain

これ!だいぶ深く来ましたね。サイトによっては探すのが大変なこともありますが、そこは気合いで頑張りましょう。

このボタンのidは"dateSearch"となっています。こいつをクリックすればよいわけです。次に利用日時から検索する画面に映ります。

f:id:yukiyoshisato:20181014225803p:plain

あとの要領は先ほどと一緒です。ひたすらターゲットの要素が見つかるまでドリルダウンを進み続けます。すると、網掛けが通り過ぎたりすることもあるので、そうしたら行き過ぎなのでちょっと戻ってみましょう。そうこうしていればお目当ての要素までたどり着けるはずです。

ここではドロップダウンリストから年月日や時間を埋めて、種目のラジオボタンを選択します。検索結果画面がこちら。

f:id:yukiyoshisato:20181014230240p:plain

今選択している要素である、idが"bnamem"となっている部分で「浮間公園」という文字列があります。これがこの利用日時で検索した結果、空きがあるテニスコートの名称になります。つまり、今回のツールが目的にしている値になります。

これをちょこっと文字列整形して、Twitter APIを利用してTwitterでつぶやきます。Twitter APIの使い方はこちらの記事を参考にしました。

qiita.com

Twitter APIの利用申請は大体丸1日ぐらいかかりました。すべて英語で利用目的とか、ちょっとした作文をやる必要があります。あと、Slack APIも叩いてみたかったので、Slackも実装しています。ソースコードはこちら。

gist8518239423f65f8b848a1d0a1a36b0db

上からざっと説明していきます。

import 

必要なモジュールをインポートします。from.utilsから始まるものは私が個別にLog出力やTwitter API、Slack APIを叩く部分を自分好みに機能を加えただけで大したことはしていません。

COURT_TYPES = {"ハード": "2-1000-1020", "人工芝": "2-1000-1030"}

コートの種類を定義しています。本当は定数で宣言したいのですが、PythonにはStatic Variablesの宣言の仕方がないので、これだけのためにわざわざStatic Methodこしらえるのもやりすぎな気がするのでこれで我慢します…。

def __init__(self, from_time, to_time, court):

このスクリプトを動かすのに必要な各種クラス変数を初期化しています。from_timeとto_timeは19-21時の19と21に相当する部分です。courtは"ハード"か"人工芝"です。court_stringはSeleniumでWebスクレイピングする際のラジオボタンの要素名になります。

def _handle_conditions(self, year, month, day):

このスクリプトは基本的に1ヶ月単位で動きます。つまり、2018年10月14日に実行した場合、今日以降の今月の日を全て検索しに行きます。そのループが定義されています。

def _handle_elements(self, year, month, day):

ここが実際にWebスクレイピングを実行している箇所になります。self.driver.get/find_xxx等でクリックしたり、値を代入したりしています。最後の検索結果は"bnamem"という要素名で複数の検索結果が表示されることがありますので、この検索結果はリストで受け取って、その後にfor loopして、出力メッセージの整形をしています。

def run(self):

これがこのスクリプトのpublic methodで、インスタンスを初期化した後はこれを呼び出します。「_」から始まるメソッドはすべてクラス内でのみ呼び出されることを想定しています。

ここではまず現在の日時を取得して、出力文字列の初期整形をします。その後、self._handle_conditionsで個々の日にちの検索結果文字列を足し込んで、それをSlackとTwitterに流しています。

その後に「now.day >= 22」とありますが、このサイトでは、22日以降になると翌月の空き枠予約が可能になります。そのため、このif文の中で翌月分も検索しに行っています。

最後にエラーというエラーを全部拾ってログに出すのとWebスクレイピングに利用したdriverを閉じてスクリプトを完了します。

ご覧の通り、エラーハンドリングはさっぱりしておらず、とりあえずなんかエラー出てきたらざばっと拾ってログに吐くことしかしていません。想定外エラーが起こったら、都度対処していきます。(まともなアプリを作るときにはこういうことはしてはいけません。)

def _handle_dates(year, month, day):

毎月月末日は異なるので、その月末日を踏まえたうえで、検索すべき日付の範囲を返しています。

def _handle_week(year, month, day):

曜日も見えた方が親切かなと思って、対象日の曜日を返しています。

if __name__ == "__main__":

メイン文です。ジョブ実行する際の引数を処理しています。引数なしの場合はとりあえず19-21時の人工芝で実行します。ジョブからは、19-21時のハードコートと人工芝コートを設定してあります。

実行結果

こんな感じです。

空きがない場合はリンクの後は何も出力されません。

制約事項

実は致命的な制約がありまして、先にも述べた通りエラーハンドリングは全くしておらず、空きコートがたくさんあるとTwitter投稿の文字数制限に引っかかって投稿がエラーで落ちるという事象が確認されております。それを受けて、以前よりは出力文字列を色々とスリム化して、なるべくたくさんのコート名をつぶやけるようにはしたのですが、でもやはり増えるとまた落ちてしまうと思います。

こちらのお便利ツールはなるべく空きコートを減らしてみんなが楽しめるようになるといいなと思っていた面もあったのに、空きコートがいっぱいあると投稿できないという悩ましい状況になってしまっています。

いずれまた時間ができたときにTwitter APIを自分好みに機能追加しているutilsクラスで文字数制限かかる場合には文字列を複数に分割して投稿できる機能を開発したいと思います。ちょっとデバッグして文字数見てみたりしたのですが、リンクとか入れてしまうと、自動的に省略されて投稿していたりすることもあったりで、仕上がりの文字数制限を事前にキャッチするのが難しそうな雰囲気だったのも後回しにした理由です…。言い訳ですが…。

さいごに

機械学習の勉強とかし始めた頃からWebスクレイピングは気になってはいたのですが、なかなか重い腰が上がらずにいました。Pythonやり始めてしょっちゅう感じることではあるのですが、実際やってみれば、あっという間にできてしまうんだなと思いました。というか、先人の皆さんが簡単にできる環境を用意してくれているので、それをうまく使いこなしながら自分のやりたいことをやれてしまえるんですね。皆さん本当にありがとうございます。

Webスクレイピングは応用しようと思えば色々なところで活用できると思いました。それこそ、業務でWebアプリを使っているのであれば、定例業務なんかは全部これでできてしまいます。世間ではRPA(Robotics Process Automation)とか流行っていますが、それとほぼ同等のことをPythonのこんな数十行程度であっという間に実装できてしまいました。

結構ビックリしたのは、Seleniumがちゃんとページをロードする間待ってくれているように感じました。きちんと検証はしていませんが、今のところロードし終わる前に次の要素取りに行って空振りするとかそんなことは起こっていません。通信環境悪い時もゆっくり実行されていきます。昔から画面マクロのようなものはありましたが、あれの類は処理が重そうなところで個別にSleepするのを実装しないといけない感じでしたが、そういった煩わしさがないのは素晴らしいなと思いました。

これからも色々とWebスクレイピングのアイデア湧いたら増やしていきたいと思います。

 

追記(2018-10-23)

自分のアカウントでつぶやいていましたが、Botアカウントの準備ができましたので、今後はこちらでつぶやいていきます。

twitter.com

データサイエンティストとして入社するまでにやったこと

こちらの記事では、データサイエンティストを目指すきっかけからデータサイエンティストとしてオファーを頂くまでのことを書かせていただきました。

yukiyoshisato.hatenablog.com

今回は、データサイエンティストとしてオファーを頂いてから入社するまでにやったことについてまとめてみたいと思います。

 

ミートアップやイベントへの参加

業界研究やお勉強も兼ねて色々なミートアップやイベントに参加させていただきました。

 

www.datarobot.com

AIジョブカレに通い始めるまでは名前も知らなかったのですが、機械学習の自動化に力を入れているDataRobotという会社があります。DataRobotは定期的にユーザー向けに説明会などを開いており、まだユーザーではない人でも参加してみて、実際に触ってみることができる会もありましたので、行ってみました。

大体一通りの機械学習の流れは実践してみて掴めていた頃にお邪魔したので、そのすごさが良くわかりました。こんなことできたら、いいな、あーPythonでどうやって書いたらこういうことできるんだろう、とか色々考えていたことが、まぁものの見事に全部自動化されていますね。細かいパラメータとかデータの型とか細かい調整が必要なところもGUIからやれるようになっており、これならPythonが実装できない人でも機械学習できそうです。

一言でいうと、カッコイイ!と思いました。自分は機械学習に必要な実装をPythonでひとつひとつ調べながらやってますが、これがあれば、出したい予測に対してそれなりのデータがそろっていれば、かなりイケてるモデルで学習と予測をぶん回すことができそうです。デモ用のアカウントでもデータを吸い上げたら本国経由でAWSにつなげてそこで機械学習の処理をぶん回しているようです。色々なモデルで同時に学習と予測をしてその予測結果とか一覧やグラフやらで比較検討できちゃう感じでした。

ただ、データが揃うまでのところが実世界ではかなりキーポイントになりますが、その辺のソリューションはおそらくDataRobotのデータサイエンティストがガイドしていくような感じなのでしょうか・・・?機械学習やってみたいけど、手が出ない会社にはうってつけかもしれません。

 

Slush Tokyo 2019 - Slush Tokyo

スタートアップに転職しようと思っていたこともあり、スタートアップ界隈のことを調べていたら出てきました。どうやら毎年開かれていたようで、こういった催しがあったこと自体知らなかったことも、本当にここ数年自分のアンテナが低くなってしまっていたんだなと感じました。

行ってみたら、サイトの雰囲気の通りというか、もはや完全にフェスのノリでしたね。昔はサマソニとかROCK IN JAPANとかよく行ってましたけど、本当にそんな感じでした。みんな真面目な話するはずなのに爆音のシャレた音楽とともにアントレプレナー登場みたいな感じでしたし、メインステージはちょっとマイクの音が大きすぎたので、インナーイヤーヘッドフォンを着けたまま聞く感じでちょうどよかったです。

イベントで集まる人たちも、ブロックチェーン周りやAI周り、IoT周りの人が沢山いたので、最先端の領域を学ぶのに本当に良い場だなと思いました。チケット代はそれなりにしますが、全然払う価値あると思います。

にしても本当に世界の第一線を走っているアントレプレナーのみなさんの熱量は凄かったです!!みんな情熱をもって自分たちの事業に取り組んでいて、凄く良い刺激になりました。やっぱり事前に会社のホームページを調べたり、インタビュー記事読んだりしてても、実際会うのとは全然違いますね。なんだろう、やっぱりすごい人って本当にエネルギーやオーラに満ち溢れているし、それに触れるだけで自分までそうなれるような錯覚すら感じるような気がしてきます。

正直自分はそれなりに情熱があってやりたいことに向かってやれるタイプとは思いますが、やっぱりちょっと横道にそれたり、気持ちがめげそうになったり、全力で逃げることもあったりする凡人なので、こういった方々に定期的に触れて栄養補給するのは大切なんだなと思います。

 

techplay.jp

次はTeam AIのイベントに初参加しました。代表の石井さんの動画はちょこちょこ見ていたのですが、この会は以下のテーマで、もうまさに今の自分のためにあるかのようなテーマだったので行ってみました。

①BLOCKCHAIN/仮想通貨取引は金融業界の再成長エンジンになるのか?
②RPA(Robot Process Automation)による劇的な事務合理化と働き方改革
③AIロボットによる金融無人店舗化へ
量子コンピューターとAGI(汎用人工知能)が読み解く資本市場

恐らく10~15人くらい集まっていたかと思います。進め方も面白くて、一方的にレクチャーをする感じではなく、みんなでラウンド形式でトピックについて話し合ったりする場もあったり、会の後には近くのレストランで一杯やりながらみんなで業界の話をするような流れもあって本当に楽しかったです。

Blockchainのこととかは、入門書をちょろっとかじった程度ではありますが、やっぱりきちんと理解できていないところがあったり、あるいはさらに最新の情報があったりと代表の石井さんがとても幅広くわかりやすく解説してくださるので、本当に参考になりました。

その後の量子コンピューターを解説してくださった伊藤さんも、難しいお話をすごくかみ砕いてお話してくださるので、入りとしてこの場を選んで本当に正解だったなと思いました。いきなり別の講義とか本とかにアタックしてたらちんぷんかんぷんのまま終わってしまいそうなところ、なんとなくどんなことをしてくれるのかのイメージは湧かせられるようになりました。

 

mlxse.connpass.com

mlxse.connpass.com

機械学習ソフトウェア工学の学問体系的な感じでまとめていこうというような流れが始まったようで、そのキックオフがありました。当日は行くことは難しかったので、これまで使ったことのなかったニコニコ動画でプレミアム会員になって視聴しました。本当に便利な世の中になりましたね。動画配信で生の話を聞けるなんて本当にありがたいですね。

ただ、家のこととかやりながら見ていたので、工藤さんと杉山先生の発表を見たあたりであとは録画みればいいやと思って中断してしまい、その後1週間以内に見なければいけないのに見そびれてしまうという失態を演じてしまいました。やっぱりこういうのは直接行って聞いた方がいいですね。人のエネルギーに触れることもできますし。もちろん動画でもお話の内容は大変参考になりました。

杉山先生は機械学習の手法を簡潔にまとめてくださっていてとても参考になりました。

というわけでまだ杉山先生の論文見れてませんが、見なければ!ブログに書くのがちょうどよいリマインダーになりました。

 

www.asahi.com

こちらでは、前の記事でも紹介させていただいた『会社を変える分析の力』を執筆された滋賀大学の河本先生のプレゼンがある!ということで気になっていました。河本先生のお話は実際の現場でのお話なので、ビジネスでどのようにデータサイエンスが活かされるのか、どんなところでつまずきやすいのかなどお話してくださいました。また、最近だとGEなんかはエンジニア自身がデータサイエンスを普通にできるようにするということを目指しているとか、データサイエンスにおける人材育成のお話なんかも参考になりました。割と今いる会社もそんな雰囲気で、非エンジニアの方とかでもTableauとかPythonとか使ってデータ分析を普通にやる雰囲気がありますね。きっとデータサイエンスってロジカルシンキングとかみたいにビジネススキルの基礎を成す一般教養レベルにいずれなっていくのだと思います。

その他感想はこちらをご覧ください。

東北大学大関先生の話は本当に感動しましたね…!映画とかみたいに特別な演出もなく、普通に素でお話を聞いて鳥肌が立ったのって人生で初かもしれません。未だにその時の感動を思い出すと体の底からフルフルしてくる感じがあります。そうだ、D-WAVEのAPIとかも調べないと!目標に挙げておきながらそれ以来何もしていないという…。ブログを書きながらリマインドするのが定着化しそうですね…!

 

自学自習(2018年4月~2018年6月)

内定を頂いてからはイベントなどに合わせて予習する目的もかねて以下の本を読みました。

ベイズもかじってみました。まだきちんと理解はできていませんが、どんなことをやるのかはつかめた気がしています。この辺も追って学習を深めたいと思います。

こちらは大分前に買って寝かせていましたが、ざっと目を通しました。Googleがどういう領域でディープラーニングを適用しているかの事例を中心にまとめられています。理論面にはそれほど触れずに、だれでも読みやすくなっていると思いますので、AI導入したい人が読むのにちょうどよいと思います。

東北大学大関先生の本です。ぜひみなさんご一読ください。そして機会があれば大関先生のお話を直接聞いてみてください!DVD化されたら真っ先に買います。冗談抜きで。

TED SAPPOROでもブームになった植松さんの本です。ほぼTEDでのお話とリンクしていますが、私は植松さんの考え方が大好きです。このブログで書いている内容も植松さんに影響を受けているところが結構あります。

正直転職するのは少し怖かったです。でも勇気を出してその一歩を踏み出してみることにしました。でもやっぱり怖かったので、入社日前夜と入社日の通勤時間でこの本を読み切りました。勇気出ました。よっしゃ、やってやるぞ、という気持ちになれました。自分の気持ちが浮かないときとか、イマイチなことが続くときとかにも定期的に動画を見て気持ちをリフレッシュさせていただいています。今はそんなにイマイチな気分ではないですが、また見てみよう。

TEDの動画はこちらです。

www.youtube.com

デリバティブ取引における担保と仮想通貨の親和性

ちょっと最近気になる動きがあったので、前々から感じていたことを徒然なるままに吐き出してみたいと思います。

jp.cointelegraph.com

バークレイズとかこういうことやってたんですね。どうやらこういったハッカソンはちょこちょこ行われていたみたいなので、自分のアンテナの低さを恨みますね。チャンスがあればやってみたかったなぁ・・・。

それはさておき、一応前職まででおよそ11年程デリバティブビジネスに身を置いたものとして、ぼんやり考えていたこととか書き記しておきたいと思います。

はじめに

この記事で触れられているISDA CDMについてですが、これはもともとISDAはFpMLというデリバティブプロダクトを表現するMarkup Languageをたぶん10年以上前ぐらいから?開発していたのですが、前々職でデリバティブ取引システムを開発していた頃も、「ふーんそういうのあるんだなー」ぐらいにしか思っておらず、その頃のシステムといえばまだ電子コンファメーションをするMarkitとかマージンコールするMarginSphereとかとも連携してなくて、孤立無援のシステムという感じで、他のシステムとの連携を意識してそういうのを使うような感じはありませんでした。あっても個々の金融機関内のインターフェースを個別に開発するような感じでした。

ところが、最近の電子化の流れからFpMLにもまた光があたり、ISDA CDMとしてプロダクト表現を統一的な解釈の元みんなで同じデータモデルの管理しようよ、プログラミングの仕方しようよ、となってきています。その背景には先にも触れた様々な外部サービス(Markit、MarginSphere、triResolve、等)との連携がほぼ必須になってきていることが後押ししていると思います。

デリバティブ取引と担保

簡単にデリバティブ取引と担保について触れておきたいと思います。デリバティブ取引とは金融商品の一種で、金利や為替、株などを指標にして様々のキャッシュフローをカスタマイズして作れるような商品です。そのため、取引をすると取り決めた日(約定日)があって、個々のキャッシュフローが発生する日が一定のルールに従って決められます。取引所などで取引されている定型化されたものとは異なり、機関投資家(バイサイド)などが個別の事情に従って証券会社(セルサイド)と取り決め内容を検討します。つまり、機関投資家と証券会社で1対1で取引が行われます。これを店頭取引(OTC取引:Over the Counter)といいます。

店頭取引の場合、あらかじめ決められたスケジュールでキャッシュフローを定義していても、その相手方が倒産した場合は、そのキャッシュフローをとりっぱぐれてしまいます。それが顕著になったのがリーマンショックですね。リーマンブラザーズは相当な額の取引をしていたので、それが全部水の泡になってしまって取引相手にも大打撃になりました。まともな会社はその予兆を感じ取ってあらかじめ取引を解約しておきますが。。。とはいえ解約するにもリスクヘッジやらなんやらで再取組み相手がいるかどうかとかいろいろ課題もあります。いずれにしろ倒産されては困るので、現時点で計測される商品価値(現在価値:Present Value)の分の担保をいれておくわけです。友達にお金貸すけどその代わりそれ相当の品物を預かっておくようなイメージですね。

担保管理業務の実態

簡単に言うと、担保管理は、日々変動するマーケットの情報をもとに各取引の現在価値が再計算され、それに合わせて担保物(お金、債券、株式、等)のやり取りをするわけです。例えばデリバティブ取引の価値が金利のマーケットが変動したことによって変わったらその分追加で担保を出すとか、あるいは担保物としてもらっていた債券の価値がさがってしまったのでデリバティブ取引の価値はそんなにかわってなくても追加の担保を請求するとか、そんなことを毎日やります。

そこにリーマンショックの反省から、グローバルな金融規制の一部としてこの担保管理業務もより精緻に厳密にやることを求められるようになりました。

実際、規制以前の担保管理の実務なんて、今日の締め処理(大体日本時間夕方のマーケットデータでやります)の時の現在価値を計算したら、それを翌日に相手方へ通知してそれから2~3日後に担保物を決済するような状況でした。なぜなら、締め処理自体夕方なので、それから相手方に通知していたら連絡取りあえるのは夜中になってしまいますし、お金はともかく証券の決済には現物の決済慣行やらブツの調達やら管理やらなんやらで手間暇かかりますので、2~3日のリードタイムは当たり前にかかっていました。

担保管理にかかる金融規制の内容

どのような内容だったかと言いますと、まぁもう一言でいえば、とにかくデリバティブ取引の現在価値が計算されたら直ちに担保のやり取りをせいという感じでした。担保が間接的に関連する規制では(金融の世界には色んなところに規制があります)、あたかも現在価値が計算された瞬間に担保がやり取りされないと要件をみたさないとして追徴金のようなものを課せられそうになったようなものもありました(恐らくそこは最終的にはある程度緩和されたはず…)。

でも規制当局の言っていることは理論的には極めて正しいです。株はともかく為替なんかは24時間動き続けますし、担保のやり取りのためのデリバティブ取引の現在価値の計算もとある夕方の一時点の断面でえいっと計算しているにすぎないですし、実際にその担保が決済されるのは計算時点から3~4日後(相手方への通知から2~3日後)なので、時々刻々と変化するマーケットにおいては、その分倒産リスクにさらされていることになります。そのため、マーケット変化に合わせてリアルタイムに現在価値計算がされて担保のやり取りをできれば、より精緻に倒産リスクを回避することが可能になります。

妥協策

結局のところ、担保請求のやり取り(マージンコールといいます)にしても、担保の決済にしても各国通貨、各国債券しかりですが、決済インフラの時間制約もあったりするので、はっきり言ってそんなことは無理なわけです。そこで、当局もある程度譲歩してくれつつも金融機関も頑張りましょうてきなところで一旦は落ち着きました。

仮想通貨の可能性

でも規制対応の業務考える仕事をしている傍らでこんなニュースを目にしました。

deutsche-boerse.com

こちらは店頭取引ではなく、CCP(Central Counterparty)取引に関する部分ですが(店頭取引は相手方の倒産リスクがあるので、それを排除しようと入れられた集中清算義務により、取引所でデリバティブ取引の決済をできるようにしたものです)、担保に関するブロックチェーンの仕組みを入れようというものでした。どうやら、最近アップデートがあったみたいですが、この記事を見てパッと感じたのは、店頭取引における担保も全部仮想通貨でやり取りしちゃえば決済インフラの制約とかうけなくていいじゃんと思ったことです。

なんなら、現在価値の計算結果照合なんかも一定のルールに従ってやるだけなので、Ethereumのスマートコントラクトとか使って実装してしまえば、

 

         デリバティブ取引の現在価値が再計算される

                  ↓

          その瞬間担保が仮想通貨で決済される

 

みたいなこととか普通にできるんじゃないかと思います。現状ではまだそのレベルでまともに使える(うまくヘッジできる)通貨とかなさそうですが、時代が進んでそういう面も市場が成熟してきて、そもそもどこの会社もその国の法定通貨で決算とかじゃなくて仮想通貨でやるような感じになってきたらガラッと変わるかもしれませんね。

突然突拍子もないことを言いましたが、もはや決算を親会社の特定の国や通貨に縛ってやるとかグローバルにビジネス展開している会社からしたら本当に意味があるのか謎ですし、いい意味でボーダーレスが進んで、ここで触れたことが自然とおこなわれるような時代が来たらいいんじゃないかと思います。

冒頭のニュースに話を戻すと、もうこのレベル以上にとがったものがハッカソンで出てくることを期待しています。私自身は今回のハッカソンに出るのはさすがにもうちょっと厳しいですが、別にこのハッカソンに限らず、今の自分がやっている仕事の延長なのか、あるいは別なのかはともかくとして、私自身もこういったことを社会実装していくためのお勉強もしていこうと思います。

データサイエンティストになるまでにやったこと

前回の記事からだいぶ間が空いてしまいましたが、ここでデータサイエンティストの職を頂けるまでにしてきたことを記しておきたいと思います。もし興味があって、この職についてみたいと思う方の参考になれば幸いです。

 

きっかけ(2017年秋頃)

 この本を読みました。だいぶ前に一度流行った本ですが、

そのうち読んでみようと思ったまま月日が流れていました。でもデータサイエンティストの職業にちょっと興味もあったので、なんとなく読みはじめてみたらまぁ面白かったです。統計の教科書というよりは読み物として非常に読みごたえがありました。いろいろな事例を交えて説明されており、うまく興味を掻き立てられ、本を読み終えた頃にはどうやったらデータサイエンティストになれるのかを考え始めていました。

 

スクールに入学(2017年12月)

とりあえずデータサイエンティストにどうやったらなれるのかググっていたら、データサイエンティストを養成するスクールが出始めていることに気が付きました。で、最初にこちらの説明会にお邪魔しました。

datamix.co.jp

すごくみっちり鍛えてもらえそうでいい感じはしたのですが、時間的な面と金額的な面(70万円程)でそこまでの覚悟は決められず、断念しました。その後見つけたのがこちらです。

 

www.aijobcolle.com

金額も10万円と破格で、講義のペースや回数なんかも仕事しながらなんとかやれそうな気がしました。また、初回の講義を受けてちょっと違うなと思ったら返金も受け付けてもらえるとのことだったので、ものは試しで行ってみようという気持ちでいくことができました。

実際に行ってみたら、こちらのサイト見てもらえれば分かりますが、講師陣はものすごく充実しており、お話もすごくおもしろかったです。仕事としてもすごく興味を持てて純粋に勉強したいと思えて、なおかつ非常に優秀な講師の方に教えてもらえるので、これはやってみる価値はありそうだと確信できました。

ただ、今思えばここでひとつ判断ミスをしました。機械学習や深層学習等いわゆる人工知能にかかるようなプログラミングをするためには、非常に性能の良いPCが必要になります。システムエンジニアをやめて証券会社で働き始めてからは家でプログラミングすることもめっきりなくなり、ちょっとしたネットブック的なしょぼいPCしか持っていなかったので、まともな性能のPCを買うことにしました。しかし、自分は昔からWindows一筋だったので、Dellでそこそこ性能の良いWindowsマシンを購入しました。実は説明会だけ行って失礼してしまったデータミックスさんでも開発環境のアドバイスをちゃっかりいただいた時に、データサイエンティストとか機械学習エンジニアはみんなMacBook Proですよ、と言われ、AIジョブカレの講師の方もMacBook Pro使っているのを見ていたのに、Windowsにしてしまいました。でもやっぱりMacBook Proにしておけばよかったと今は思います。なぜなら、職場で一緒に働いているデータサイエンティストはMacBook Pro以外使っている人はいません。Windowsでやっている人もいるでしょうが、かなり少数派だと思います。今は私もご多分に漏れず仕事でMacBook Pro使ってます。とりあえず、データサイエンティストや機械学習エンジニア目指すならうだうだ言わずにMacBook Pro買った方がいいと思います。慣れるのに少し時間は必要ですが、毎日使ってれば誰でも使えます。当たり前ですけど。さすがにまだ購入して半年ぐらいしかたっていないので自宅PCはしばらくWindowsで我慢しますけど、そこそこ後悔してます。でもWindowsだとSteamで聖剣伝説2ができるので許します。

 

スクールでの講義と宿題(2017年12月~2018年3月)

AIジョブカレは動画も取ってくれるので、講義の時に分かった気がしててもあんまり分かっていなかったところとか聞き洩らしていたところとかも復習できるので、すごく学習しやすかったです。また、宿題の内容も最初とりかかったときはPythonも初めてだったのでちんぷんかんぷんでしたが、そういった初学者でも手が動かせるようにすごくよく工夫されていたと思います。

でも、正直最後の方になるまでは、私はかなり落ちこぼれの部類だったと思います。理系でもなく、Pythonも初めてで、受講生の方で結構活発に質問されている方とかはすでにデータ分析の仕事とかしているような感じの人もいて、内心、やばい・・・やっぱり敷居高そうだな・・・と感じていました。宿題もなんとかかんとか食らいつきながらこなしているような状況でした。本音を言うと当時は全然内容理解できていなかったと思いますがが、とりあえず動くものを作ってなんとかギリギリで提出するの繰り返しでした。

 

自学自習(2017年12月~2018年3月)

Javaは最初の会社でずっとやっていたので、基本的なプログラミングの知識とかは大丈夫かなと思っていましたが、Pythonは見たことも触ったこともなかったので、まずはここから始めました。

まずは第一歩です。Pythonって動的に型付けするところとかすごく新鮮な感じがして、シンプルにかけるんだなーと思って面白かったです。

あと、実際にデータサイエンティストがどんなライフサイクルで仕事しているのかさっぱりイメージが湧かなかったので、こちらの本を読みました。

こちらも非常に良い本で、2018年1月当時では機械学習プロジェクトの始まりから終わりまでを描いている本はそんなになかったと思いますので、大変参考になりました。

最後の1冊は、AIジョブカレで講師の方にかなり最初のころに推薦されていたのですが、書店で手に取ってパラパラっとめくってみたらだいぶ込み入った感じがして、ちょっと手を出せずにいました。

でも、いざ読み始めてみたら、すごくわかりやすく解説されていて、AIジョブカレ受講生であれば、初学者でも全然読める内容だと思います。というか講義の流れと本の流れがほぼリンクしているので、漠然としか理解できていなかったところが改めて本で復習できるような感覚がありました。ゼロから読んだらもしかしたらとっつきにくいところもあるかもしれませんが、AIジョブカレの講義の副読本としては非常に良い本だと思います。

あとは、やはりFinTech周りの勉強をしたいなと思っていたので、仮想通貨も盛り上がっていることだし、以下の本を読みました。

 

転職活動(2018年2月~3月)

2月24日に仮想通貨・ブロックチェーン企業合同企業説明会 in 東京第1回というものが開かれるということだったので、行ってみました。

withb.co.jp

仮想通貨がかなり盛り上がっていたこともあって、参加者の数もすごくてLIFULLさんの会場にすし詰め状態でしたし、報道陣もかなり来ていました。ちょっとあれは具合悪くなるレベルの人口密度でしたね・・・。でもイベントとしてはかなり良かったと思います。話を聞いた中では、カレンシーポートの杉井さんとBitFlyerの江田さんの話はすごくおもしろかったですし、このお二方は凄く本物感がありました。杉井さんは社長なので当たり前と言えば当たり前かもしれませんが、BitFlyerは現場の人でもかなり優秀な人集めてるんだなーと思いました。コンセンサス・ベイスの志茂さんともお話させていただける機会を頂けて、かなり多方面でご活躍されていて、その縦横無尽ぷりに大企業色に染まり切っていた自分としてはちょっと面食らう感じもありました。一方で、社長のくせにかなりイマイチな人とかもいましたけど、それはここでは割愛します。

ここの参加企業でデータサイエンティストの職を募集しているのを発見し、個別の企業ブースでもかなり色々をお話を聞かせて頂くことができ、会社のビジネスもチームの方々もすごく魅力を感じたので、その場で応募することにしました。やはり自分としてはFinTech×データサイエンスで探していたこともあって、運命感じるレベルで出会っちゃった感がありました。

で、採用プロセスが始まり、大体のデータサイエンティストや機械学習エンジニアの職では課されるプログラミングテストがありました。データをもらってそれで機械学習のプログラムを書いて提出する、というものでしたが、やはりAIジョブカレでこなしていた宿題とはワケが違いました。AIジョブカレの宿題は自分で考えなければならないものも出てきますが、そうは言っても講義でやった内容を踏まえればやれるものでした。しかし、本当に教科書的に整っていないというか、現実世界のデータに触れて思ったのは、「まじでわかんない」でした。データサイエンティストや機械学習エンジニアの仕事の8割はデータの前処理と言われています。どういうデータを集めてきてそれをどう加工してやれば予測に役立つデータになるのかを考える部分です。なんだかんだ、AIジョブカレで用意してくれていたデータセットはすごくわかりやすいというか、初学者でも理解しやすいデータセットが使われていると思います。こういう特徴量からたぶん予測できるだろうなと思えるものがある程度綺麗にそろっており、そこからPythonでscikit-learnの学習器を呼び出してやればなんとかなる感じでした。でも出されたお題では当時の自分の理解力や実装力ではどう前処理してやれば分類器にうまくかけられる状態になるのか全然わからなかったので、ここにきて、初めてまともにExploratory Data AnalysisやPythonの実装やら機械学習のロジックの組み立て方やら「自分で調べて自分で考えて自分で作る」ということをやりました。スクールで宿題こなしているとなんとなくできている気がしてしまいますが、やはりそれは思い込みで、スクールが上手に導いてくれているからそう思えていただけでした。スクールの外で真の実力を問われた瞬間に異次元の課題の海に飛び込んで溺れかけるような感じがしました。でも、なんとかやらねばという思いで、上記のPython機械学習プログラミングを読みながらいろいろ試して平日は睡眠時間を削って、休日は朝から晩までひたすら勉強・プログラミングをし続け、正直、全然できたという手応えはなかったのですが、なんとか提出させていただきました。

 

AI関連企業の研究(2018年3月)

転職活動と並行して、AIジョブカレでも転職先の候補となる企業の方々を集めたプレゼンの場を設けていただき、現場のデータサイエンティストの方々のお話を聞かせて頂いて本当に参考になりました。中でも実際に企業にも訪問させていただいたブレインズコンサルティングさんとGA Technologiesさんのお話は本当に勉強になりました。特にGA Technologies橋本さんはデータサイエンティスト協会の活動などもされていた業界の第一線でご活躍されている方で、大変貴重なお話をたくさん頂くことができました。ご紹介いただいた滋賀大学の河本先生(当時大阪ガス情報通信部ビジネスアナリシスセンター所長)の本もものすごく勉強になりました(これは転職活動後に読みました)。

あと、以下のイベントにも参加しました。

techplay.jp

この中では、BEDOREの竪山さんにはとても親切に貴重なアドバイスを頂けたり、アースアイズ山内さんには夢物語ばかりじゃなくてすごく現実的な部分があることに関するアドバイスも頂けたり、その他いらっしゃっている企業さんみなさん特色のあるソリューションを持っていてとても興味深かったです。これからどんな分野でデータサイエンティストとしてキャリアを築いていけるのか全くわからなかった時期でしたが、本当に良い刺激をたくさんいただくことができました。

 

スクールでの最終コンペ(2018年4月)

AIジョブカレでは、最終課題として、受講生同士でKaggleライクのコンペをやります。その場でデータセットが配られ、それを分析して前処理して機械学習のロジックにかけて、予測してCSVファイルで予測結果を提出するというものです。

転職活動でいっぱいいっぱいだったこともあって、正直こちらには全然気が回っていなかったのですが、採用試験として課されたプログラミングテストの時のコードベースをそのまま使いまわせそうだったので、もうそれでいいやと思って、当日を迎えました。そうしたら、それでそのまま優勝出来ちゃいました。

他の受講生の方とかすでにデータサイエンティストとして働いていそうな人もいたので、自分が優勝と言われて全然実感が湧かなかったのですが、やはり採用試験の時に徹底的に「自分で調べて自分で考えて自分で作る」をやったおかげで、一気に成長できたのだと思います。採用試験でプログラミングテストが課されていなければこの優勝は間違いなくなかったですし、どう逆立ちしてもここまで自分を追い込んでやれたのは採用試験のおかげでした。また、困難な採用試験に立ち向かっていて気持ちがめげてしまいそうだったところ、AI関連企業研究でたくさんの方のお話を伺うことができてそれが頑張る原動力にもなりました。

 

データサイエンティストとして採用(2018年4月)

採用試験で分析結果を提出してから特にご連絡いただいていなかったので、正直ダメだったのかなと半ば思っていたところにスクールの最終コンペで優勝できたので、それを報告しました。すると次の日にデータサイエンティストとしてオファーを頂くことができました。最終コンペ優勝がオファーの材料になったのか真偽のほどは不明ですが、時系列ではそのような感じでした。

 

まとめ

振り返ってみると、本当に偶然の連続だったと思います。データサイエンティストになろうと思い始めたタイミングしかり、スクールとの出会いしかり、合同企業説明会での出会いしかり、AI関連企業研究で貴重なお話を頂けたことしかり、採用試験のプログラミングテストで鍛えさせてもらえる機会をもらえたことしかり、それでスクールの最終コンペで優勝できたことしかり、データサイエンティストの職を頂けることになったことしかり・・・。こんなにもすべての歯車がうまくはまることがあるのかなと思うぐらいな感じでした。

やっぱり、何事も本気で動き出せばそういう風に道は切り開いていけるし、人との出会いにも意味があるのかな・・・と自己中心的な驕る気持ちが見え隠れしつつも、関わってくださったすべての方のおかげで今の自分があることを忘れずに、世のため人のためにデータサイエンティストとして頑張っていきたいと思います。

思い出したことを片っ端から書きなぐってしまったので読みづらいところもあったかと思いますが、これからデータサイエンティストになりたいと思っている方の参考になれば幸いです。

アナリティクス・トランスレーター

www.mckinsey.com

こちらの記事の内容をざっくりサマリしてみたいと思います。(筆者の超意訳です)

 

注目されてきた背景

 昨今、AIやデータ分析が活用されるにあたって、純粋なデータサイエンティストのみならず、データエンジニア、データアーキテクト、データ可視化スペシャリストなどとチームを編成してやることが増えてきていますが、その中でも重要な役割がトランスレーターになります。なぜこの役割が重要かというと、データ分析の成果をビジネスのインパクトにつなげていくための役割を担うからです。

 

トランスレーターとは

トランスレーターは、 データエンジニアやアーキテクトのスペシャリストではなく、データ分析自体のプロフェッショナルでもなく、深い技術的な知識もありません。その代わり、データサイエンスの専門家とビジネスの専門家をブリッジする重要な役割をおいます。企業にとって分析のインパクトがより効果的に出るように貢献します。マッキンゼーの推定によると、米国だけでも200-400万人ほどの需要が見込まれています。

 

何をするのか

 トランスレーターはドメイン知識を活用して、ビジネスユーザーの課題を特定し、優先順位付けを行って、分析の価値の最大化を図ります。そのために、データサイエンティストにビジネスのゴールや必要なドメイン知識を提供したり、ビジネスユーザーに分析結果をうまく伝えて、業務改善を促進するように働きかけていきます。

 

どんなスキルが必要か

ドメイン知識
トランスレーターにとって最も重要なスキルで、対象とするビジネスの業界や分析している企業のことを詳しく知っている必要があります。

 一般的な技術理解

自身で分析モデルの構築などはできなくとも、データサイエンティストが出す分析結果の意味を理解してビジネスに適用していくための知識が必要です。STEM (Science, technology, engineering, and mathematics) のバックグラウンドを持っています。

プロジェクトマネジメントスキル

トランスレーター分析のライフサイクルを回していく上でイニシアチブをとりますので、プロジェクトマネジメントスキルは必須です。

起業家精神

他の人から教えをもらいやすいスキルに加えて、ビジネスを成功させるために、情熱やコミットメントが必要です。

 

現状の自分自身と照らし合わせて、目指す方向を再度確認したいと思います。

プロジェクトマネジメントスキルと起業家精神に関しては最初の会社の経験を活かせるかなと思うので、ここでは一旦横に置いて、ドメイン知識と技術知識にフォーカスします。

 

ドメイン知識

"金融"という意味ではバックグラウンドはありますが、ブロックチェーンで実装される金融ビジネスならびに転職するのでまだ次に働く会社のことも殆ど知らないので、これらはゼロから勉強していく必要があります。業務設計やプロジェクト対応の経験を活かして早期にキャッチアップしたいと思います。

 

技術知識

トランスレーターとしては、データサイエンティストほどの知識はいらないとありますが、私はデータサイエンティストとして働きますので、現場のデータサイエンティストとして求められる水準は当然満たせるようにしたいと思いますし、将来的には新たなモデルを開発しようと研究されている方レベルになれるぐらい上を目指して、磨き続けていきます。

 

アナリティクス・トランスレーターが登場する記事でAI関連のプロジェクトについてとてもよくまとめられている記事を見つけましたので、リンク貼っておきます。

AI/データサイエンスのプロジェクトが失敗する10の危険なサイン

 

私が目指すイメージとしては、こちらの記事の中腹に出てくる弁図のど真ん中ですね。役割いませんけど・・・(苦笑

現実的にはそんな役割を本当の意味でこなせる人はいないし、これからも出てこないのかもしれませんが、目指すのは自由ですので、目指します!