かばやん's だいありー

かばやん's だいありー

学んだことをゆるゆるアウトプットしていきたいです。

Machine Learning Casual Talks #8 に参加してきました

はじめに

2019/01/28(月)に行われた、Machine Learning Casual Talks #8 に参加してきました。
mlct.connpass.com

YouTube配信されていて、以下から見ることができます!
youtu.be

当日の様子は、Twitterハッシュタグ#MLCTでもわかります。

本当に毎回人気のイベントで、今回も一般参加枠や初回参加枠は、枠に対して申込みがかなり多かったため、今回はブログ枠で申し込みました。
開催場所は、株式会社メルカリでした。
MLCTに参加したのも、株式会社メルカリのオフィスにお邪魔したのも、今回が2回目でした。
大きいスクリーンが何個かあってどの席にいても見やすいし、社員じゃなくても無料でソフドリを購入できる自販機があるし、全体的にオフィスきれいで最高です。

エムスリー株式会社の西場 正浩(@m_nishiba)さんから、ノベルティでUSB typeCオスUSB typeAメスのコネクタをいただきました!ちょうど今使っているのが壊れて買い直そうと思っていたタイミングだったのもあり、神ノベルティだと思いました。大切に使わせていただきます。

f:id:kabayan55:20190130104504j:plain:w300


冒頭

Machine Learning Casual Talks を始めた理由 Aki Ariga(@chezou) さん

『仕事ではじめる機械学習』の著者
books.rakuten.co.jp

カジュアルとは

カジュアルトークを開くと、その手の人がカジュアルに自分の好きなことばっかり話すからガチな話しかない


MLCTの狙い

  • 論文にはあまり出ない、実務で得たノウハウの共有をする
  • 機械学習の自動テスト、KPI等、わりとアルゴリズム以外の話が多い

本編

エムスリーにおける機械学習活用事例と開発の効率化 西場 正浩(@m_nishiba)さん

資料

資料の末尾に、パネルディスカッション用のsli.doの質問に対する回答も載せてくださっています。


私のメモ
各発表に対して「私のメモ」という項目で書きますが、概要ではありません。文字通りメモです。

  • ずっと使ってもらうためにはプロマネ大事、これからは機械学習×プロダクトマネジメントが大事になってくる
  • アルゴリズムOSS化すると公開できるレベルのものを作るようになる
  • 既存のサービスじゃないと、そもそもサービスに価値がないんじゃないかって話になってアルゴリズムのせいなのかどうなのかわらかない
  • 期待収益計算できると工数見積もしやすい
  • アルゴリズムで改善できることがわかっているもの
    • e.g. ニュースは地域きくって言われてる → ルールベースで出身地域のとか出して聞いたら機械学習でもいけそうだよね
  • 勤め先の昇給の仕組みや水準を理解する
  • 出世したいなら上司を出世させるのも重要
  • 技術貢献、ビジネス貢献、組織貢献

所感
少人数で回しているのが本当にすごいです!
機械学習領域でマネジメントできる人が需要あるのは本当に感じます。
キャリアの話も聞けて良かったです!
私自身は給与体系は把握はしているけれど、そこに対してきちんと戦略を立てられているとは言えない状態なので、意識していきたいと感じました。

BEDOREにおける対話エンジンの開発と運用 Nasuka Sumino(@naohachi89)さん

資料

私のメモ

  • SaaS型対話エンジン
  • 全ての企業の応答を1プロダクトで管理
  • 検索も作っている!動画解析とかも

所感

1プロダクトで管理するの、すごく大変そうだなと思いながら聞いていました。
実際大変そうで工夫をいろいろしていらっしゃるのがわかりました。
全然BtoB事情わからないのですが、クライアント側がいじるイメージがなかったので、クライアント側がダッシュボードで設定できるようにしているのが、すごいなと思いました。

LT

bfloat16について OEC (@roishi2j2) さん

資料
docs.google.com

所感
bfloat16自体が初耳でした!
会場全体でも知っていた人はほとんどいなかったようでした。
GPUが扱える、サイズが小さい、精度は十分とのことで、良い事づくしなのかなと思いました。
cloud.google.com

強化学習を可視化する chainerrl-visualizerを動かしてみた @mogamin さん

資料

私のメモ
強化学習の良いところ

  • 正答データがない問題でもできる

強化学習のつらいところ

  • 報酬設計が難しい
    • いつ報酬を与える?いつ罰を与える?
  • マルチワーカーが苦手
  • GPUをフルに使えない、CPUパワーに依存する
  • シミュレーターの開発コストが高い
    • 実際の環境、状態をもうらするシミュレータ必要
    • マルコフ決定過程をちゃんと成立させて作る
    • 状態が変わらなければ意味がない。報酬減らしたり枝刈りとか
  • 方策設計はどうあるべきか
    • いつまでも神の手を待ってると終わらない
    • アルゴリズム部、Deep Q-Network部の試行錯誤


Chainerrl-Visualizer
github.com

  • どこを見ているかが可視化できる
  • 何が取るべきactionか出している
  • 可視化ないと強化学習難しいよね
  • こういうツールいいよね

所感
LT聞いて良さそうだと思いました。そもそもChainerを普段使っていないのですが、使う機会があったら使ってみたいです。

分散深層学習のチューニングや辛い話 Shunsuke Kawai(@vaaaaanquish)さん

資料

私のメモ

  • マルチモーダルCNN
  • チャットbotも作っていた
  • * LGBMとかよりずっと良かった
  • ECの違反検知、最後は人が見てBANするけど、限界あるからそれをサポートするMLモデルは精度重要
  • 偽物の出品は少なくてImbalance data
    • ファッションは多いけど電子部品はなかったりとかそういうの
  • 「ユーザが違反 → オペレーターがBAN」の度にモデルを再学習
  • pretrain使ってるからoverfitする
    • 実際のデータでCV作ってValidationとって評価
  • 大きなデータでばらつきあるやつでやるにあたって、Chainerだと Dataset, iterators、PyTorch だとData loader, Samplerといったクラスの設計がすごく大事
  • 正例と負例を最初は5:5で実際の割合にあわせていく
  • 機械学習の観点でマッピングできるできないを考えて均等にサンプリングする
  • entity embeddings
    • embedding layerをはさむと商品の位置関係を考慮できる

arxiv.org

  • 偽物判定は数値的な大きさはあんまり関係ない
  • ヤフオク! は1円出品がある!大多数が低価格か1円
  • 内部でマイナスで表している場合もある
  • 次の画像で使うpハッシュを使う
    • 画像同士のphashを計算し同一画像をなるべく学習しないように

分散深層学習は機械学習モデリングとソフトウェアエンジニアリングの総合格闘技

chainermn.readthedocs.io

github.com

所感
ばんくしさんがヤフオク!の異常物品検知に携わっていることは知っていましたが、具体的な話を聞けて良かったです。
欲を言えば、LTじゃなくて本編の長さでききたかったです!

パネルディスカッション

パネルディスカッションは、司会の @hurutoriya さん、登壇者の @m_nishibaさんと @naohachi89 さんの3名に、sli.doでした質問に答えていただく形式でした。
app2.sli.do

聞きながら取ったメモほぼそのままなので、たぶん抜けている箇所はあるので、正確に知りたい方はYouTube配信の方をご覧になることをおすすめします。

プロジェクトの取捨選択や推進をできるレベルの人材ってどれくらいいますか?
@m_nishibaさん

  • チームに5人しかいないので今のところ自分だけ
  • サービス理解、ビジネス理解、ビジネスサイドと同じ土俵で話せる人

@naohachi89 さん


  • PMは明確なロールを持っている人がいる
  • AEからPMになった人はいまのところいないけど、わりと新しい会社なのでこれからキャリアパスが整備されるかも?

@hurutoriya さん


  • プロダクトマネージャーやエンジニア出身じゃない人がプロジェクト回せるのか?結構難しい
  • プロジェクトを回せる人材はまだまだ希少、新しいキャリアパスとしては面白いのかなー


Q. 西場さんに質問です。AIチームの目標が売上○億円にするのめっちゃ良いですが、売上の定義ってどうしてますか?レコメンドを導入したとして、そのレコメンドからのコンバージョンは100%AIチームの売上になるんでしょうか?

@m_nishibaさん

  • KPIダブルカウントでOKとしている。改善幅はレコメンドの成果

Q. マルチクラス難しそうだけどPros and consは?
@naohachi89 さん


  • 公開したくないやつはダッシュボードから設定

  • 公開非公開の設定みていろいろする

  • 1000クラスだと1000model、クライアント100だったら×100
 → その数作るよりは1 modelの方がいいかなあ


Q. 特徴量を自分で作ってロジスティック回帰を使う、NNのモデルを使う、アンサンブルをするなどで、精度と複雑さや時間とのトレードオフがあると思いますが、この辺実務ではどのように対応されていますか?

@m_nishibaさん

  • そこまでできてないが、計算時間は意識している

  • 医療画像、画像診断はスピード求められない

@naohachi89 さん

  • トレードオフは意識している
  • めちゃくちゃ精度よくても学習速度かかるとコストがかかる

  • 学習にかかる時間、推論にかかる時間、メモリ使用量


- 正解率高くてもボツにしたモデルもある
@hurutoriya さん


  • オフライン時とオンライン時のテスト基準

  • 推論時間と学習時間

  • 推論短くしたいとか運用のシンプルさとか…….

Q. サービスのインフラは何を使っていますか?(AWS, GCP, オンプレ...) ミニマムにスタートアップするとしたらどのインフラを選びますか?

@m_nishibaさん

  • AWS詳しい人が多かったからAWS使ってるけどGCPみている
  • オンプレは考えていない


@naohachi89 さん


@hurutoriya さん

  • GPU使いすぎて高いのでオンプレに移行したほうが安いんじゃね?ってなってるので、規模による
  • GCP好き

Q. 医療とITでビジネスインパクトが一番大きいのはカルテの共有と診断の(やや)自動化とのことかと思います。M3ではクラウドカルテのサービスがあるようですが、どれだけ使われていて、分析がなされているのでしょうか?

@m_nishibaさん

  • 人数少ないけど分析したい!

  • フリーテキストなのでかなりむずい、癖がある
  • 構造化すら難しい


Q. 運用の際、モデルの精度の許容範囲はどのように決めていますか?

@m_nishibaさん

  • サービスのビジネスオーナーが決める
  • ある程度悪くても受け入れてもらえるけど、ABテストやアンケートはする

@naohachi89 さん

  • モデル、どのくらい改善幅があるか?
  • 許容範囲という概念がない
  • 3ヶ月とか6ヶ月とか決めてやるのは許容範囲は大事になってくる

  • ベースラインを設定する、クライアントのビジネス要件を握ってする


@hurutoriya さん

  • どの打ち手がいいか、どのKPIがいいかみんなで考える
  • 一人で決めるのはつらい
  • プロフェッショナルからフィードバックをもらう

  • どういう問題を解くのか、大きいKPIだと難しい

  • Precision, recall

  • PoCをはやく回す


Q. 自分の会社でも利益を目標にしているのですが、機械学習ディープラーニング以外を使っていなくても自チームの調査で課題を見つけて他のソリューションで解決した場合も実績に加算していますか?
@m_nishibaさん

  • 加算していない 
  • でも楽しい、できたらめっちゃ気持ちい
  • 360度評価であの提案良かったみたいなコメントがあると考慮される

@naohachi89 さん

@hurutoriya さん

  • 機械学習じゃないものを提案することもある 
  • 評価に入ることもある


Q. 採用活動に関連して,ML関連の技術を持っている人材は不足していると言われていますが,未経験or経験が浅い人材でも採用して自社で鍛える上げることもありますか?
@m_nishibaさん

  • 入社したとき未経験だった 
  • 未経験でも取らないことはないけどポテンシャルや実績がほしい
  • 数学、コンピュータサイエンス、ちゃんと勉強はしててね

@naohachi89 さん

  • 全くの未経験はとったことないけど、学習欲あればとるかも
  • なりたい人は未経験でもkaggleとかやるよね

@hurutoriya さん

  • 自分ではじめやすい時代

Q. すべてのMLフレームワークに精通していますか?
@m_nishibaさん、@naohachi89 さん 「「していません」」


Q. エムスリーのMLチーム、MLエンジニア以外にデータエンジニアとアプリエンジニアがいるそうですが、データエンジニアとアプリエンジニアに常に仕事がある状況になっていますか?個人的にそういうチーム構成を考えているけど、MLエンジニア以外の常時的な仕事を生み出すことが難しそう。
@m_nishibaさん

  • 大丈夫、会社できて20年
  • DBぐちゃぐちゃ、そこで大活躍、基盤も作ってもらう
  • アプリケーションエンジニアは他のチームと兼任だったり

@naohachi89 さん

  • クライアント企業は大企業が多い 
  • 壁が多いからドライブしにくい?

@hurutoriya さん

  • APIあるけどクライアントエンジニアいないからリリースできないとかありそう
  • 機械学習APIできたけどクライアントエンジニアいないとかある
  • 小規模チームだとアイドルタイム多そう
  • 多いとスピード上がりそう

Q. MLは大きいところを狙いたいので老舗大企業と組みたい vs 老舗大企業は組織間の壁が厚く辛い のジレンマに陥ることってありますか(私は陥っています)
@m_nishiba さん

  • 感じない 
  • LINEヘルスケアとやってるが、いいとこ取りができている
  • グループ会社は若いとこある、組んでる
  • 学生が作ったベンチャーに仕事依頼したりもあった

@naohachi89 さん

  • 企業による
  • プロジェクトによる
  • 受注という文脈?


Q. ばんくしさんへ、スマホ機械学習の状態を監視や操作をするために使った技術を知りたいです!
@vaaaaanquish さん

  • ヤフーだと社内システムが整っている
  • 社内の自製チャットツールのAPIたたき放題でそこに全てのログを流す

@hurutoriyaさん 

  • 体制ないと真似できないですねー

本イベントの、他の参加者のブログ記事

upura.hatenablog.com
watarumon.hatenablog.com