先日ブレインパッドさんのオフィスで開催された、白金鉱業 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が見合わなければしない。(見合うならする)
(この他、オフレコの話が少々)
正直、自分がメンバーのモチベーションマネージメントに四苦八苦しているので羨ましい気もしました。
しかし、まだ自分が自分のチームのメンバーをきちんとプロとして尊重してあげられてない事実もあり、接し方を改善していく必要はあります。
資料だけひとり歩きしてしまうと良くないということで今回の資料は非公開ですし、
実際メモを見てみると一見厳しいようにも見えます。
でも、会場で話を聞いていた限りでは、メンバーをきちんと尊重して、
良いチームを作り上げられているように感じました。
これまでも複数のミートアップで西場さんの発表を見ていますが、非常に尊敬できる方なので、メンバーのモチベーションコントロールはしてないのではなく、
必要な状況があまり発生してないのではないかとも感じました。
まとめ
久々に予定が合った(抽選は落選したのですがギリギリ前日に繰り上がった)ので参加できましたが、今回はどれも内容が濃くて面白い発表で本当にラッキーでした。
オフレコになったので記事中書きませんでしたが、
今まさに一番悩んでる内容についてもご意見を聞けたのも良かったです。
最後に次回の登壇者の予告もありましたが、
とても楽しみな方々だったので、可能な限り予定を調整して参加したいです。