PyConJP 2019に参加しました

9月16日と17日の二日間、大田区産業プラザPiOで開催されたPyConJP 2019に参加してきました。
昨年の2018も参加したのでこれで2回連続の参加です。

今年も非常に面白いセッションがたくさんあり、多くの学びがあった2日間でした。
ありがたいことに、connpassの資料ページや、
公式サイトのタイムテーブルページに発表資料をまとめていただいていて、
時間の被り等で聞けなかった発表の資料もすごい手軽に確認できるようになっています。

ちなみに僕は以下の講演を聞きました。

1日目

基調講演 Why Python is Eating the World
PythonとAutoML
機械学習におけるハイパーパラメータ最適化の理論と実践
Dashとオープンデータでインタラクティブに日本経済を可視化する
Pythonを使ったAPIサーバー開発を始める際に整備したCIとテスト機構
pandasのStyling機能で強化するJupyter実験レポート
LT

2日目

基調講演 Pythonで切り開く新しい農業
Pythonで始めてみよう関数型プログラミング
婚活・恋活領域におけるPythonを使ったマッチング最適化
知ろう!使おう!HDF5ファイル!
Anaconda環境運用TIPS 〜Anacondaの環境構築について知る・質問に答えられるようになる〜
チームメイトのためにdocstringを書こう
LT

2日間通して、今までなんとなくやっていたことの詳細を知れたり、
いつか試したいなと思っていたライブラリをいよいよ触ってみようというモチベーションが上がったり、
全く知らなかった手法を知れたりと本当に参考になる話がたくさんありました。

とりあえず、手軽なところからになると思いますが順次試していって、このブログでも紹介していこうと思います。
また、聞けなかったセッションの資料も順次確認していきます。

イベントを通してですが、昨年と比べて、ちょっとした些細なところにも多くの改善の工夫がされていて、
運営の皆さんのより良いイベントにしていこうという熱意を感じる2日間でした。
1000人を超える人が集まるイベントをスムーズに開催するだけでも相当大変なことだと思いますが、
このような素敵な場を提供していただけて、本当にありがたいなと思います。

来年は8月の開催とのことですが、また是非とも参加したいです。

people analytics tokyo #1に参加しました

少し前になりますが、6月28日にYahoo!のコワーキングスペースのLODGEで開催されたpeople analytics tokyo #1 に参加してきました。
イベントのページ

3つのトークと3つのLT全て資料が公開されていてありがたい。

Talk

Drive Business Performance by People Analytics – 国内外の最新トレンドと事例を添えて – -BtoA株式会社 代表取締役 石原史章さん
Rによるemailコミュニケーションの可視化 – ソフトバンク株式会社 御園生銀平さん
感謝ネットワークからみる組織のコミュニケーションの形 – People Analyst 大成弘子さん

LT

People Analyticsと社会ネットワーク分析 – フリーランス 祖山寿雄さん
組織の「価値観」ネットワークの可視化と「評価」の関係性 – 株式会社トランス 代表取締役 塚本鋭さん
群衆の知恵・集団的知性 〜 会社で集まる意味あんの?〜 – 株式会社シンギュレイト 代表取締役 鹿内学 さん

感想

自分は人材系のサービスの会社でデータサイエンティストをやっているのに、
なかなかこの分野の分析には取り組めていない反省もあって参加を決めました。
結果的には参加して大正解でした。

1. ネットワーク分析が持つポテンシャルの高さを実感した

ネットワーク分析についてはそういうものがあるということだけは知っていましたが、
サンプルコード等を動かしてみても、それをどう使えば業務に役立つ(=利益が出る)のかわからず、学習が進んでいませんでした。
しかし、今回の発表では多くのテーマの中でネットワーク分析が使われており、
そのネットワークも、メールやりとり、価値観の近さ、上司と部下などの組織体制、会話中の単語の共起など、様々な種類のものでした。
そしてそのいずれでも興味深い知見が得られおり、この手法が持つ可能性の高さを実感しました。

2. 分析から得られた知見が面白い

退職者の予測と対策や従業員の不正の予防、価値観と仕事におけるパフォーマンスの関係、
上司の語彙と部下のエンゲージメントの関係など、組織で働く人なら誰でも興味をもちそうな結果が紹介され、
結果だけを取ってみても面白いものばかりでした。

3. 会場全体の一体感が心地よかった

普段はそれぞれ別々の分野の分析をしている人が、各自自分の好きなことを話すタイプのMeetUpが好きでよく参加しているのですが、
今回の会はそれとは逆に、非常に全体の統一感の高い会でした。
しかし、全体に一体感があり会場の雰囲気の良さもあり、とても心地の良い時間を過ごせました。
ネットワークの種類は違っても多くの人がネットワーク分析の手法を使い、人に関する分析を行うという、
共通のテーマを持って集まっているからこそだと思います。
大成さんの発表の中で、ピープルアナリティクスとは、働く人々を幸福にする分析である、という言葉がありましたが、
そこに取り組む人たちの集まりだったということも大きく影響していると思います。

4. おまけ

Yahoo LODGE に興味があり、いつか行きたいと思ってたので行けてよかった。

まとめ

全然知識を持ってない分野のミートアップでしたが、思い切って参加してみてよかったと思います。
ネットワーク分析という新しいおもちゃを手に入れて日々の勉強がまた楽しくなりそうです。
自分の職場のデータでも何かやってみたい。

ピープルアナリティクスについて、日本語で具体的な例を学べる場が少ないということで今回の会を開催されたそうですが、
僕に取って非常にありがたいきっかけになりました。
会の準備も当日の運絵も大変だったと思いますが、主催者・発表者の皆様、本当にありがとうございました。

白金鉱業 Meetup Vol.8 に参加しました

先日ブレインパッドさんのオフィスで開催された、白金鉱業 Meetup Vol.8 に参加参加させていただきました。

Vol.7からの連続参加です。
参考:白金鉱業 Meetup Vol.7 に参加しました

今回は資料がそれぞれ公開されているので軽めに記録を残しておきます。
(共感した部分、気になった部分を書き残そうとすると、しんゆうさんの発表なんてすごい量になってしまうので。)

事業者視点で語る!音声×データの活用可能

発表者:小山内将宏さん(株式会社Voicy/データストラテジスト)

Voicyの小山内さんの発表。
・お恥ずかしながらVoicyを使ったことがなかったのですが、非常に面白いコンセプトのサービスだと思いました。
(そういえば前職に XXXXX Sound って似たようなコンセプトのアプリがあった)

・社内に一人しかデータアナリストがいらっしゃらないそうで、お一人で業務を回されている(=それだけ優先度つけて効率化されている)という点でも参考になります。
「データが絡む部分はなんでもやります」って点も今の自分の立ち位置に近いかも。

SuperQuery は初めて存在を知りました。
 (というか、BigQueryはクエリの履歴がストックされないのか。。。トレジャーデータだと残るのに。)

・音声データへのアプローチは面白そう。
自然言語処理的な要素も多分に含まれているのですね。

・レコメンドのところで、好きじゃないものを出さないようにすることが重要という視点は音声サービスならではと思います。
(ECサイトだと10個推薦した中に1個変なの混ざってもそこまで問題ないですが、音は1つずつしか聞かないからそれが嫌なのだと極端にUX下がります)

・iPadの手書きアプリも便利そうでした。

Metabaseが気になる。

それでも「データ分析」で仕事をしたい人のための業界長期予報

発表者:しんゆうさん(フリーランス)

発表者はデータ分析とインテリジェンスの人。
最近各所で語られるようになっているデータアナリスト・データサイエンティストのキャリアのお話。
非常に気になるところです。

・発表された内容に全面的に同意します。

・資料中の定義だと自分はかなりの時間を「データエンジニア」の仕事に費やしてることになる。
(データサイエンティストとしてもデータアナリストとしての仕事も持ってるので特に不満はないですが。)

・会社でうちのチームが作ってるレポートは結構使ってもらえていて、他チームからもアナリストの増員を要望されるような状況なので、
うちはかなり恵まれているんだなぁーというのが正直なところです。

・「データ分析を売り込む」って意識はもっと高く持たないといけないともいます。
そうでないと、どんどん単純なレポート作成の作業ばかりになってしまう。

データサイエンティストよ、震えて眠れ

発表者:辻陽行さん(株式会社ブレインパッド/シニアデータサイエンティスト)

毎回面白い辻さんの発表。
タイトルは仰々しいですが、要はGCPに機械学習系のサービスが充実してきてるよっていうお話。

僕自身はGCPよりAWSのほうが好きでGCP全然触ってないので、そのことに対して危機感を持ちました。
もっとGCPを覚えた方がいいのかもしれない。

・FIFAとかこゝろとか話が脱線しまくりですがきちんとGCPの話に戻ってきます。

・AutoMLシリーズがどの程度手軽に使えるのかをまだ触ってないので理解できてないのですが、
知識不要でこれだけ制度が出せるのなら確かに脅威です。

・自分はもともと機械学習以外の仕事のウェイトが大きいので特に震えませんが、
たまに超短納期でモデルを作ってアウトプットを出さないといけない仕事が降ってくるので、
使えるよになればGCPは強力なツールになりそうです。

こゝろに興味が湧いたのでちゃんと読みたい。

まとめ

最近盛り上がっているキャリアの話、自分と同じように何でも屋っぽくなっている小山内さんのお話、
自分にとってほぼ未経験のGCPの活用のお話と、今回もどれも楽しく聞かせていただきました。
また、今回の懇親会も色々なかたとお話ができて非常に有意義な時間でした。
このような場を提供してくださっているブレインパッドさんには感謝しかないです。

次回以降のスピーカーもすごい人が続くようなので、
出来るだけ業務調整して参加したいです。(あとは抽選さえ通れば。)

白金鉱業 Meetup Vol.7 に参加しました

先日ブレインパッドさんのオフィスで開催された、白金鉱業 Meetup Vol.7 に参加してきました。
Vol.4以来、久しぶりの参加です。
今回は機械学習のテクニカルな点以外にも非常に面白い話を聞くことができ、マジで参加してよかったです。
今回もメモした内容などまとめておきます。

MLOps Yearning ~ 実運用システムを構築する前にデータサイエンティストが考えておきたいこと


楽天株式会社/三浦航さん

MLOpsや機械学習プロジェクトのナレッジは蓄積されているが、データサイエンスにおける継続的なモデルの改善部分のナレッジは薄い(と感じられていること)から問題提起されてスタート。
データサイエンスがメインフィールドのデータサイエンティストが機械学習モデルを構築するときに
考えておくべきところについてお話されました。
題材として取り上げられたのは、店舗名からそのカテゴリーを予測する自然言語処理タスク。
その他、ショッピング、オークションサイトにおける同一アイテムの名寄せ、レシピサイトにおける材料名の正規化なども例示されましたが、
似たようなタスクには僕もよく直面し、毎回色々工夫しながら対応しているので興味深く聞きました。

楽天さんも独自の機会学習基盤を持っていて、その上でAirflowが動いてるそうです。(うらやましい)

– 学習したモデルは即座に本番に反映されるのではなく、次回の実行で反映されるフローにしていて、その間に学習したモデルのチェックをする猶予時間を作っている
– 機械学習パイプラインは機械学習エンジニアが実装することになっているが、 データサイエンティストも関わった方がいいのではないか。
– そもそも店舗カテゴリーの予測タスク自体が難しい。~~薬局は機械学習モデルでドラッグストアだとわかるが、ユニクロやH&Mは事前に知っていないと何のお店かわからない。
固有名詞が多く、分かち書きも難しいく、学習時と運用時のデータも異なる。
– トレンドなどによりデータの傾向が毎回変わる。
– タスクの難易度が変わるので、正解率やf1スコアなどをラッキングしていても意味がないことがある。
– データを一個一個見る定性的な評価も行なっている。
– ラベル付けされたデータのカテゴリの分布変化や、同様に予測されたカテゴリの分布変化も見る。
– ルールベースで対応できることはルールベースで対応する。
– 一回のPoCだけで運用にのせるのは難しいので、ヒストリカルなデータで複数回結果を見る必要がある。
– 実運用を見据えて、実用上やりたいことでPoCを回すことが大事(そのためメニビジネスフローを明確にしておく)
– データサイエンティストが考慮すべき問題の多くは one-shotのPoCというのが問題で、時間軸と業務フローの観点が欠如していることに起因する。
– データサイエンティスト、機械学習エンジニア、PMなどが、お互いの領域をカバーする必要あり。

特に、機械学習モデルもヒストリカルデータを使って複数の期間でバックテストするべき、という観点は自分には抜けていたので新鮮でした。
(トレーダーとしては、この問題にはかなり慎重に取り組んでいて、
いろんな期間でバックテストしているのに機械学習モデルになるとなぜか全くやってませんでした。)

また、トラッキングしてる指標が悪化したときに、タスクの難易度については考慮できてなかったので、
今後はそれも含めて業務にあたろうと思います。

ディープラーニングによるくずし字認識

人文学オープンデータ共同利用センター/カラーヌワット・タリンさん

ディープラーニングの話題に入る前に、くずし字の歴史や、その課題の意義や難しさについて説明していただき、
そこが非常に面白かったです。(資料がまだ公開されていないのが残念)

日本に漢字が入ってきてから、明治の小学校令があるまで1000年以上にわたってくずし字が使われてて、
現在、古典籍が300万点、古文書が1億点あるっていう基本的なところから初めて知りました。
現在、画像データに変換して保存が進められているそうですが、
画像だと検索もできないので、うまくアクセスできないという課題があるそうです。
ということでディープラーニングで文字データを抽出されています。

実例の画像を見ながら、その課題の難しさなどを説明されていましたが、どう考えても通常の手書き文字より難しい。
– 同じ文字なのに複数の書き方がある。(母字が異なるなど)
– 違う文字なのにとても似ているものがある。物によってはサイズが違うだけなど。
– 重なって書かれる文字がある。
– 別ページの文字が透けていたりもする。
– レイアウトが様々でどこから読み始めるのかも難しい。(色の濃い順に読むなど)
– ページ内に絵も入ってる。

ということで、一般的な文字認識の手順がつかえず、
画像から文字へ変換する End to Endの KuroNetというモデルを作られたそうです。

f1スコアは0.8くらいだそうですが、ほぼ完璧に判定出てきている文字もあれば、
データセットの中に1回しか出てこない漢字など、全く判定できないものもあるそうです。
もともと専門家でなければ読めないので、教師データを作るのにもコストが高く大変だった様子。

データセットは公開されているので近々挑戦してみたいです。
参考:日本古典籍くずし字データセット

AIチームのチームビルディングについて

エムスリー株式会社/西場正浩さん

最近、各所のミートアップでよく見かける西場さん。
じつは、今回はこの話を聞くために参加を申し込みました。
(AIや機械学習ではなく、BIがメインのアナリストチームという違いがありますが、
自分は今もチームビルディングに苦戦しているので。)

最初にエムスリーの機械学習チームがここ一年で知名度を上げられたという話をされていました。僕自身も、1年前は知らなかったと思います。

AIチームに配属と聞いて入社してみたが、入ってみたら自分しかいなかった、
というところから始まって、今のチームができががるまでの取り組みを話していただきました。

– “チームとは目的に向かって活動する集団”
なので、まずはそのチームの目的を定める必要があります。
目的の次に目標を定める。
– 株式会社である以上、お金を稼ぐことは重要で、お金を稼ぐチームであれば会社もそこに投資してくれるので人を増やせるし給料も上がる。

この辺りは非常に基本的なことなのですが、なかなか意識できてないことが多いですね。気をつけないと。

– 目標と目的が決まったら採用開始というのは良くない。
まずは現状の把握をする必要があり、目標や目的が同じであっても現状が違えば必要な人もスキルも全然違う。
たとえば、機械学習で成果を出すために必要なスキルも状況によって変わる。
課題を発見できる人
MLの問題に落とし込める人
モデル作れる人
モデルをデプロイできる人
機械学習基盤を作れる人
MLのプロジェクト全体をマネジメントできる人
MLのプロダクトをマネジメントできる人 など

– 人を集めるにはどうするか。 外部から採用する/内部から採用する
機械学習エンジニアになりたい人は社内にもいたりするという話でしたが、
確かにそれはそうだと思います。
職種を変えるための転職って、実は効率悪いと思うので社内での採用というも考えたいですね。

– 外部から人を集められてない理由をきちんと考える。

ここは4Pや、AISASなどのフレームワークを活用されたそうです。
AISASは初めて知りましたが、以下の頭文字のようです。
・A:Attention(認知・注意)
・I:Interest(興味)
・S:Search(検索)
・A:Action(購買)
・S:Share(情報共有)

4Pの説明の方では特に、
Productの
「誰と働くのか、あなたと働くことは魅力的なことなのか?」
という話が一番どきっとしました。

正直、事業内容や社内のデータの充実度や面白さ、会社の働きやすさ、他チームのメンバーの魅力は他社に引けを取らないと思っているのですが、マネージャーである自分に魅力があるかどうかというのが一番自信がない。

残りの3Pについては内容を紹介しておくと 
Price
給料、福利厚生などの対価は良いのか。
(みなし残業とか、年収のうちボーナスが占める割合が高くないかとか、
 人によっては”なし!”と判断される短所がないか)

Place
どこで採用活動するのか。

Promotion
ターゲット層にその求人情報が届いているのか。

それぞれとても重要だと思います。

– MLエンジニアの最低条件としては次の二つを挙げられていました。
1. 年間60本以上の論文を読んでいる。
2. そのうち6本以上を追試している。
(noteにも書かれています。)

自分のチームでも、こういう条件を設定するべきかの議論はあるのですが、やっぱり必要そうですね。
自分自身が未経験の状態で採用してもらったというのもあり、次の未経験者にもちゃんをチャンスを渡したい、っていう個人的な思いもがあるのですが、
その人のキャリアに責任を持てるか、という観点でいうと論文読めない人には機械学習を任せられないというのは理解できます。
(アナリストであれば、論文は読んでいなくてもちゃんと成果を上げてくれている人もいるのですが。)

– オンボーディングの完了基準は外部から認められる結果を出したこと。
チームに馴染んだなどの理由で完了としない。

これもとても重要だと思います。チームに馴染んだどころか、単純に期間で区切って終わりにするようなやり方ではとてもうまくいかないですし、逆に計画より短期間で活躍しだした人に過剰なフォローも不要だと実感してます。

– メンバーみんなをプロとして尊重する。
– モチベーションは本人に任せ、モチベーションコントロールなどはしない。
– 一方的な教育もROIが見合わなければしない。(見合うならする)
(この他、オフレコの話が少々)

正直、自分がメンバーのモチベーションマネージメントに四苦八苦しているので羨ましい気もしました。
しかし、まだ自分が自分のチームのメンバーをきちんとプロとして尊重してあげられてない事実もあり、接し方を改善していく必要はあります。

資料だけひとり歩きしてしまうと良くないということで今回の資料は非公開ですし、
実際メモを見てみると一見厳しいようにも見えます。
でも、会場で話を聞いていた限りでは、メンバーをきちんと尊重して、
良いチームを作り上げられているように感じました。
これまでも複数のミートアップで西場さんの発表を見ていますが、非常に尊敬できる方なので、メンバーのモチベーションコントロールはしてないのではなく、
必要な状況があまり発生してないのではないかとも感じました。

まとめ

久々に予定が合った(抽選は落選したのですがギリギリ前日に繰り上がった)ので参加できましたが、今回はどれも内容が濃くて面白い発表で本当にラッキーでした。
オフレコになったので記事中書きませんでしたが、
今まさに一番悩んでる内容についてもご意見を聞けたのも良かったです。

最後に次回の登壇者の予告もありましたが、
とても楽しみな方々だったので、可能な限り予定を調整して参加したいです。

機械学習のプロダクト適用におけるリアルを語る会に参加しました

先日、ABEJAさんのオフィスで開催された、機械学習のプロダクト適用におけるリアルを語る会に参加しました。

AI/MLシステム開発の難しさ

発表者はディー・エヌ・エーの鈴木翔太さん。

企画からリリースまでの各段階において大変だったことを話されていました。
自分も経験があることが多くて全面的に納得です。

企画段階では、チームで何を作るのかのゴールの認識合わせが重要。
精度何%くらいを目指すのかと言った話もしておく必要があります。
また、全てを機械学習でやろうとしないことも大切ですね。

組織については、ML/AI開発チームにもソフトウェアエンジニアを入れて連携しているという話以前に、
MLチーム自体を作れてることを羨ましいと思いました。
(自分の職場には機械学習専門チームはなく、アナリストタスクと掛け持ちなので。)
懇親会で伺った話によるとやはりkaggler枠などの影響もあり、リファラルで採用が進んでいるそうです。

データ収集やアノテーション、データ管理が大変なのはどこでも語られている通り。
インフラをコスパ良く作るのも大変です。

また、誰が本番用コードを書くのかの話題も取り上げられました。
データサイエンティストが自分で書くのか、エンジニアに依頼するのか。
どちらも一長一短あります。
データサイエンティストのコードが汚いのは世界共通なんだろうか。

品質担保の話も取り上げられていたのは珍しいと感じました。
ただ、自分としてもここは悩んだ覚えがあります。
推論を含むシステムがエラーなく動くことをテストするのはいいとして、
予測である以上は結果が外れのこともあるわけで、
ここのデータに対して予測を外すのが正解みたいなテストを書くのも変で、
何がベストなのかよくわからなくなります。
そして最後はリリース後の評価やコストの話。

Deep Learningでリアルタイムに マーケット予測をしてみた

発表者はAlpaca Japanの梅澤慶介さん。

自分自身が個人トレーダーでもあるので密かに楽しみにしていたマーケット予測の事例。
ただ、やはり苦労されていたのはチームで開発するにあたって発生するあれこれのようでした。
メンバーの開発環境を再現できないとか、渡されたnotebookが動かないとか。
うちもここのメンバーのローカル環境揃ってないので良くわかります。
(自分一人に限ってもローカルPCで動いてたコードが開発用に建ててもらったインスタンスで動かないことがある。)
それをコンテナなどの技術で解決していったそうです。
Notebook禁止は衝撃。

機械学習のプラットフォームを自前で構築したり、
コードを共有してライブラリ化したりと、チームでの開発が順調に進んでいるようです。
ModelPackageみたいなの、僕も作りたいですね。

懇親会でも機械学習以外の部分含めて色々と質問ができ、非常に有意義でした。

智を集約しツラみを乗り越えたリピート推定の開発現場

発表者はABEJAの中川裕太さん。

題材はいくつかのミートアップですでに伺っているABEJA Insight for Retailのリピーター推定の話でした。
ただ、これまでと少し違った視点でのつらみの話があり興味深かったです。

「無限のビジネス可能性の前に立ち尽くす」ってのは新しい視点ですね。
たしかに、これができればいろんなことができそうっていうワクワクはありますが、
なんでもできるはなんにもできないと同じ、っていうのはあると思います。
(自分もかなり身に覚えがある)
顧客が片付けたいジョブに集中することが大事です。

研究と開発の時間軸が違って大変という話は、以前も伺った通りで
自分も直面するところなので良くわかります。
また、作ってる側から新しい手法が発見されるというも辛いところ。

コストと精度のトレードオフもありますね。
ここは、小売業向けのビジネスとしてのシビアな側面もありそうです。
(金融や医療、公的機関や大企業などお金があるところ向けでも無縁ではないと思いますが。)

今回はそれぞれの解決策もあり参考になりました。

マイクロサービスのDAGにして共通部分を使い回すなど、
実際、やってみるとかなり大変なのですがよく実現されたと思います。
スケーリングなどによるコスト最適化も、
アイデアは単純ですがおそらく実現は結構難しかったのではないかと。
精度の最適化の方にまだまだ課題も残っているようなので、今後に期待です。

まとめ

つらみの共有的な話を聞くことが増えていますが、
他社の人たちもそれぞれ苦戦しながら課題に立ち向かわれているのを知ると励みになりますね。
(普段は下手すると自分だけが効率悪く苦労しているような気がしてくるので。)

若干人数少なめな回だったのもあって、
懇親会でも発表者の方含めてゆっくり話ができて非常に有意義な時間を過ごせました。

機械学習の活用における課題は、
データサイエンティストだけで解決できるものだけではないと思うので、
この辺の知見はきちんと職場で共有して他チームの協力を得て取り組んでいきたいです。

Data Driven Developer Meetup #5 に参加しました

先日、Data Driven Developer Meetup #5 に参加してきました。
#4にも参加しているので2回目です。

今回の会場はログリーさんのオフィス。職場から近かったので徒歩で行けて便利でした。

メインセッション

データドリブンな小売店舗経営を支えるプロダクト開発の裏側』 株式会社ABEJA 大田黒 (@xecus) さん

まずこの発表資料は ABEJA SIX 2019で使われたものだそうです。
ABEJA SIXは参加したかったのですが業務的に行けなかったので、ラッキーでした。

動画の顔認識や、店内の導線の可視化など技術力が凄まじく高いのはもちろんですが、
「リアル版のグーグルアナリティクス」といった非常にイメージをつかみやすい説明が印象的でした。
これはビジネス的に強そうです。
上のスライド資料だと動画が静止画になってしまいっていましたが、
店舗内入り口のカメラの動画で、性別と年齢が推定されているデモなどは驚きでした。

プロジェクト進行における問題のところは自分も似たような問題に直面したのでよくわかります。
ゴール設定の難しさも、不確実性の多さも、本当にウォーターフォールとは相性が悪いです。

まだ自分の職場では、「研究開発」と言えるほどモデルの開発に専念できる体制も作れておらず、
機械学習のプロジェクトはもっとごちゃごちゃしているのですが、
チームで進める土壌づくりは力を入れないといけないと思いました。

機械学習で動くシステムを実運用に組み込むということ』 株式会社ブレインパッド アナリティクスサービス部 吉田勇太 (@yutatatatata ) さん

これもあるあるのオンパレードで苦笑いする場面の多い発表でした。
画像とテキストという違いはありますが、目視でやっていたことを機械学習で行いたいというニーズは自分も経験しています。
その対象が不均衡データで、
PrecisionとRecallがトレードオフになる厄介さや、Recallが重要だからと言って、Precisionはどこまでも犠牲にしていいわけじゃない苦労など
経験してきたので非常によくわかりました。

また、良いモデルを作るだけではなく業務フローをしっかり考えないといけないこと、
それにあたって、他のメンバーの協力を得ることの重要性など自分の失敗経験もあるので本当に納得です。

このあと、LTはお酒も入って気楽な雰囲気で聞いていました。

LT

学習行動データを蓄積するLearnig Record Storeの開発事例』by @yukinagae さん

まだまだ取り組みが始まったばかりという印象が大きかったのですが、
「Learnig Record Store」というコンセプトをしっかり立てて進められているのが素晴らしいと思いました。
GCPUG覚えておきます。

データドリブンを提供するサービスBrand Officialのアーキテクチャについて』 by @YasutakaYamamoto

久々に Airflowではなくdigdagの方が登場しました。
まだdigdagは使ったことがないのですが一度くらいは調べておきたいですね。
embulkは使っているのですが、よく理解していないので調べなければ。

今回も非常に参考になること、励みになることが多く参加してよかったです。
運営の皆様、登壇者の皆様、ありがとうございました。

Data Pipeline Casual Talk に参加しました

2018年2月13日に、エムスリーさんのオフィスで開催された、Data Pipeline Casual Talkに参加してきました。
実はもともと抽選に漏れていて、補欠だったのですが、開催2時間前くらいに急に補欠から繰り上がり参加になったので慌てて会場に行きました。
一瞬、急すぎるからキャンセルしようかとも思ったのですが、結果的に参加できて非常に幸運でした。

発表一覧

以下感想です。例によって僕の主観が多々入ります。

AI・機械学習チームにおけるデータパイプライン構築

機械学習チームを立ち上げられた時に困ったという各課題については、
自分もまさに経験してきたもので本当に参考になりました。
ログ出力が適切でなかったり、classやtaskの設計が悪かったり、
モデルの再現性の問題やテストの効率の問題など。

Luigi というのを拡張して対応されているということで、
技術力の高さを感じました。
tensorflowやgensimのモデルを同じインタフェースでloadできる仕組みは便利そうですね。
物によって保存や読み込みの方法が違うのでいつも地味に不便な思いをしています。

自分のところではまだそもそも機械学習基盤と呼べるようなものを作れていないので、
luigiも検討対象に加えたいです。

丘サーファーへ「水」を届けるために-これまでとこれから-

発表を聞いていて、金融SEをやっていた時のことを思い出しました。
丘サーファーという表現も面白い。

今の僕の職場では個人情報マスク済みのデータに比較的自由にアクセスでき、
データへのアクセスという面では問題なく業務を進められていますので、やはり恵まれた環境なのでしょう。

ただ、Cloud Composer を活用されているのは参考にしたいです。
生Airflowを使っていて、保守に手が回っていないので。

データ基盤の3分類と進化的データモデリング

論理設計(データモデル)と物理設計(システム構成)を分けて考えられているのが参考になりました。
データパイプラインを設計する時に両端を先に考えて挟み込むように真ん中へ進むのも納得です。
確かに普段の業務でもうまく進んでいるときはこの順番で考えています。

担当者のロカールPCにあるExcelシートが実はデータ基盤の役割を果たしているかもしれない、と聞いて、
即座に具体的なエクセルファイルが思い当たり苦笑いしてしまいました。
各アンチパターンにも思い当たる節が多々あり、今後改善していきたいです。
データ基盤の要素を技術要素と対応させて分けるのもアンチパターンだというのも覚えておこう。

データ分析基盤を「育てる」ための技術

分析作業の主なフローのスライドでまさに自分たち直面している問題が取り上げられていて笑いました。
いろんなところからの依頼が増えてくるとSQLを各作業がどんどん増えて
それで疲弊してしまうのですよね。
良い基盤を作れば解決するというものではなく、
データ基盤を育てていくという考えが大事。

リブセンスのデータ分析基盤とAirflow

Airflowを使ったデータ基盤を構築されています。
僕らの環境とよく似ているので、これも身に覚えがある苦労話に苦笑いする場面が多くありました。
バージョンアップの問題などもまさに。
社員が誰でもSQLをかけるというのは素直にすごいと思います。
特に営業の方たちにまでその文化を広げるのはきっと大変だったのではないかと。
ユーザー数の差があるのはもちろんですが、
それを考慮しても活用具合でずいぶん遅れをとっている気がするので負けないようにしたい。

まとめ

データパイプラインやデータ基盤はその重要性を日々感じているのですが、
専任の担当者もいなくてなかなか手が回らず、いろんな課題意識がある分野でした。
機械学習やデータウェアハウス単体の話に比べて他社の事例もすくなく、
自分たちだけこんなに苦労してるんじゃないかと不安になることもあったので今回のカジュアルトークに参加してよかったです。
だいたいどこも同じような課題に直面されていて、それぞれ工夫して対応されていることがわかりました。
自分が漠然とこんな風にしたいと思っていたことが明文化されていたスライドも多くハッとする場面も多々ありました。
あと、Airflow使ってる会社ってこんなに多かったんですね。
逆に、トレジャーデータは一度も登場しなかった。
今回だけでなく、今後も開催されるそうなので楽しみにしています。

Data Driven Developer Meetup #4 に参加しました

2019/1/22 に 開催された、 Data Driven Developer Meetup #4 に参加しました。
セッションの内容や資料は上のリンク先の connpass のページにもありますが、一応ここにも書いておきます。

スポンサーセッション

  • 『機械学習を使ったサポート問い合わせ予測』 by freee 株式会社 Asaki Iwata 様 (@AsakiIwata)

メインセッション (20 min x 2)

LT (5 min x 2)

以下、発表中のまとめです。
個人の感想が多々入っていますし、ところどころ勘違いなどあるかもしれませんがご容赦ください。

『機械学習を使ったサポート問い合わせ予測』

感想として、単に機械学習で予想してみようというのではなく事前に目的のすり合わせや傾向の確認など、
ビジネス的に役立てるための準備をきちんとされているのを感じました。
例えば下記の点。
– そもそも問い合わせ数を予測することの目的はアルバイトを何人雇っておくべきかなどの人員計画にあること。
– 予測の許容誤差はビジネスサイドと事前に確認。
– 個人顧客と法人顧客で傾向が違い、今回は法人顧客を対象とした。
– 予測が高すぎた時と低すぎた時はそれぞれデメリットが異なる。(過剰な人件費の発生/サポートの品質低下による解約)

少し意外だったのは評価方法として絶対誤差を使われていたのと、
Gradient Boosting や XGBoost を使われていたこと。
自分だったら二乗誤差で評価し、モデルはLSTMなどのRNN系を前提に考えるかなと思いましたが、
それらも検証した上で、XGBoostなどを選ばれているようでした。
最終的に、評価指標が一番良かったモデルではなく、
評価は2番目だが、予測が上振れ傾向にあって顧客満足度を保てそうなモデルが採用されたということでした。
ビジネスサイドとよく連携して、機械学習を活用されているような印象を受けました。

『機械学習を⽤いた⽇経電⼦版Proのユーザ分析』

法人向けに、日経電子版Proというサービスがあるそうです。
そのサービスについて、無料トライアルの顧客が本契約してくれそうかどうかを機械学習でモデリングされたそうです。

日経新聞社にはデータ道場というデータドリブンを加速する教育制度があるそうです。
僕のチームではまだまだ個人個人の自己啓発や、メンバー間のナレッジ共有に頼りっきりなので、
このような制度を回せているは非常に羨ましいですね。

今回のモデルが予測する本契約率は売り上げ直結の重要指標で、
契約してくれる可能性が低い顧客に対して対策を打ったりするのに活用されるそうです。
内省されたというリアルタイムデータ処理基盤Atlraは結構羨ましい。

探索的データ分析として
最初に取得したデータの特徴や、欠損値の有無などを確認することの重要性を話されていました。
これは僕も常々重要だと思っていて、BIツールやモデルにデータを突っ込む前に必ずやるべきプロセスだと思っています。
(発表ではなく僕らの話ですが、Tableau等にデータを突っ込むと、大抵の場合は綺麗に可視化できてしまうので、
事前にしっかり確認しておかないと致命的な見落としが発生するものです。
なかなか、最初のデータの確認を定着させるのが難しいのですが、教育体制の差でしょうか。)
ビジネスでは(kaggleと違って)解決するべき問題を立てることが重要というのもその通り。
Leakageに注意することも大切ですね。自分も何度かやらかしています。
手法は再びGradient Boosting。
僕はこれまであまり使ってない方法なのですが、もっと試したくなりました。

『医療用語に注目した文書の類似度計算』

元々今回のイベントは、これを聞くために参加を決めました。
「文書の類似度」って難しいんですよね。
単語ならword2vecやfasttextなどが使えるのですが、
文章はtdidf化してcos類似度したりしてもどうも今ひとつな結果しか得られないし、
word2vecの(idfで重みづけた)線型結合等を試してもそこまで良くはならない。
Doc2vecにもがっかりしてきましたが、これは発表中でもディスられてました。

目的はサービスを横断してのキーワードからの記事のレコメンドだそうです。
問題の課題点に上がれらている3項目は似たような課題に直面した経験があるのでよくわかります。

まず今回参考になったのは、単純に自然言語処理的な手法だけでなく、
ユーザーのクリックなどをもとにしてアイテム間の類似度を協調フィルタリングで求めて使っていることです。
研究者が見るテキスト現場の医師が見るテキストが全然違うので、
テキストを一切考慮しない要素を加えているのだとか。
(お医者さんにとってオプシーボが肺がんの薬であることをは当然なので、
 オプシーボは肺がんの薬だとかいう説明が出てくることはなく、
 word2vecではこれらの単語が結びつかないなど。)

次にキーワードのマッチによる類似度。

テキストの分散表現はSCDV
これ、前々から存在は知っているのですがまだ実装して動かすってことをやってないです。
今回の発表聞いていて自分も早急にSCDVを試さなきゃと思いました。

これらの特徴量をつかって、XGBoostでモデルを作られたとのこと。

また、予測時には学習時と違ってクリックの情報は使わないそうです。
新しいアイテムをいち早く取り上げるためだそうで、これもなるほどと思いました。

このほか、fasttextの話もありました。日本語だとこれも結構上手く行くらしいので、
今後もっと試すようにしたいです。(いつもword2vecの方を使っているので。)

『Bokehではじめるデータビジュアライゼーション』

このLTからお酒も入り、気軽な感じで進みました。

Bokehというのは、インタラクティブビジュアライゼーションライブラリだそうです。
見てて、結構面白そうなライブラリだと思いました。

今の所、さっと作れるグラフなら matplotilibで可視化していますし、
ちょっと複雑なことをしたいときやインタラクティブなことをやりたいときは Tableauを使っているので
なかなか使う機会がなかったライブラリです。
でも、機械学習をWebアプリ風に設定変えて学習から可視化まででっきるのは便利そうです。
次、Tablauの代わりにこれを試してみようと思います。

『SlackへのKPI通知Botを作ったら いろいろ捗った話』

(GASは使いませんが)KPIのSlack通知はちょうど今うちの職場でもやろうとしていることです。
目的もほとんど同じなのですが、上手くいっているという話を聞けてとても励みになりました。
僕がどういうことを始めたいのか、どうやったらメンバーに伝わるか考えていたのですが、
とりあえずこの資料を共有しよう。

まとめ

元々の目的だったテーマ以外にも非常に勉強になったり励みになったりする発表が続き非常に有意義な時間でした。
主催者や登壇者のみなさん、会場を提供してくださいましたfreee株式会社さん、本当にありがとうございました。