2019-11-21-公開
2019-11-20 (水) にグランドニッコー東京 台場で開催された「LINE DEV DAY 2019」のDAY-1に参加してきた。ホテル、豪華だった!
満員電車に乗りたくなさすぎてkeynoteは諦めましたが、行ってきます。
— こここ🍀 (@kokokocococo555) November 20, 2019
LINE DEVELOPER DAY 2019 https://t.co/G6j2fcBy3F #linedevday
データサイエンス・機械学習関連のセッションを6つ、拝聴してきた。
- 深層学習と脳科学
- タイムライン投稿のレコメンドシステム
- コミュニケーションアプリ「LINE」の機能改善を支えるデータサイエンス
- LINEにおける深層学習を用いた音源分離技術の研究
- エムスリーにおけるAI・機械学習チームの立ち上げと機械学習プロダクト開発
- Building a smart recommender system across LINE services
どれも興味深く面白く聞かせていただき、学びの多い1日だった。
今の自分がやっていることとの関連ということで、特に以下の3セッションについての学びを残しておきたい。
また、「エムスリーにおけるAI・機械学習チームの立ち上げと機械学習プロダクト開発」を聞いて「がんばろう」と感じたこともメモしておく。
今後の自分の仕事や勉強のヒントになることがたくさんだった。
※当日の資料が後ほどアップされるそうなので、そちらを見ながら以下のメモを見ていただくのがよいかなと思います。
深層学習と脳科学 (12:00 - 12:40 / HALL-C)
理化学研究所 栄誉研究員・東京大学名誉教授の甘利俊一先生のセッション。
ビッグバンの話から入る。話が壮大だが、先生曰く「話は大げさな方が面白い笑」と。
終始朗らかで面白い語り口の先生だった。ただ、語りの熱量はすごかった。第一線で活躍し続ける先生のパワーを感じた。
「深層学習と脳科学」https://t.co/JvlgGIAjsF
— こここ🍀 (@kokokocococo555) November 20, 2019
甘利俊一先生
人間の脳とは?というところから考えると、ビッグバンから考えないといけなくなる笑
「大げさな話だが、話は大げさな方が面白いわけです笑」#linedevday
1956年以降の第一次AIブーム、1970年以降の第二次AIブームなどがあったわけだが、当時からすると「そんなことができるのか」ということができてきている、とのこと。
— こここ🍀 (@kokokocococo555) November 20, 2019
当時から活躍されていた甘利先生だからこその、実感のこもった話があり面白かった。#linedevday
第一次ブームでは「人間の知的機能を再現できるのでは?」という熱狂があり、チェスで人間に勝つ、小説を書く、などが目指された。現在でも行われ、そして達成しつつあるようなことが当時から取り組まれていたとのこと。
第二次ブームではAI分野においてはエキスパートシステムが、脳分野においては神経回路が注目された。
そして現在の第三次ブーム。「脳型の人工知能」という、AIと脳との融合が深層学習という形でブームに。ただ、これは初期のパーセプトロンのアイデアと同じものとのこと。
- 層状学習回路網
- multilayer perseptron
- パーセプトロン
- バックプロパゲーション
実際、甘利先生は1966年ごろ?すでに確率勾配降下法を考案・論文化していたらしい。当時は見向きもされなかったとのこと。1966年て…。すさまじいことを飄々と語られる…。
[深層学習の問題点1]
— こここ🍀 (@kokokocococo555) November 20, 2019
大量のデータから実験式を作っている
原理を発見しない。
実験式から原理への例)
実験式:日食の予言
理論:ケプラーの法則
原理:ニュートン力学
役に立つ実験式を作り出せるが・・・
人間はデータから「原理」を知りたい。#linedevday
この惑星、力学の例は分かりやすかった。今の深層学習は予言までできており、その先の理論や原理を見いだせる日が来るのだろうかと思いを馳せた。当時の人たちからしたら日蝕の予言の理論や原理を見出すなんて想像できなかったかもしれないので、この先深層学習の背後の理論や原理が見いだされてもおかしくはないかもしれない。
[深層学習の問題点2]
— こここ🍀 (@kokokocococo555) November 20, 2019
なぜ1000層も必要か?
人間の脳も層状だが、そんなには必要ない。
深層学習は層数を変えてうまくいくところを探すが、
勝てば官軍的な考え方。
人間は原理が知りたい。#linedevday
たしかに、脳でできていることが計算機でできないはずはないと感じられる。この点については、Spiking Neural Networks (SNNs) という文脈での研究が進められているのかも。
[学習の理論的課題1]
— こここ🍀 (@kokokocococo555) November 20, 2019
汎化誤差
過学習
パラメタを増やすことで今あるデータは説明できるが、
誤差まで説明してしまう。
※対策後述#linedevday
[学習の理論的課題2]
— こここ🍀 (@kokokocococo555) November 20, 2019
極小解と大域解
大規模な非線形の系は局所解があるからうまくいかない。
simulated annealing
quantum annealing
※対策後述#linedevday
[課題1, 2への対策]
— こここ🍀 (@kokokocococo555) November 20, 2019
汎化誤差への対策
2重降下
Belkin et al 2019
極小解への対策
最近では、パラメタを増やせば極小解は存在しないという見方も。
kawaguchi, 2019
→#linedevday
→
— こここ🍀 (@kokokocococo555) November 20, 2019
初期値ランダム回路
Gaussian kernel
でたらめに選んだパラメタのどれであっても近いところによい正解がある。
正解は雲のように広がっているから、という考え方。
いろんな理論が建設中。
今盛り上がってきている。
甘利先生も「統計神経力学」分野から研究・検討。#linedevday
過学習も極小解も、どちらも2019年に対策を論じる研究がなされているように、今盛り上がりを見せているものらしい。
「統計神経力学」というのは初めて耳にした分野。調べてみよう。
[人工知能は脳に何を学ぶのか:心]
— こここ🍀 (@kokokocococo555) November 20, 2019
Libetの実験
時計を止める実験。
脳が計算して答えを出した後(無意識)に、意識にのぼる。
では意識の必要性は?
意識の良さ: 意識にのぼった決定を吟味できる。
→脳は二重構造
一方、深層学習は二重構造になっていない#linedevday
Libetの実験、そして脳の構造から深層学習へ示唆されることとしての二重構造の必要性、どちらもとても興味深い。たぶん二重構造の深層学習の研究もなされているだろうし、探してみよう。
二重構造といえば、ダニエル・カーネマンの『ファスト&スロー』でも語られていると聞く(読んでない…)。System 1とSystem 2だったかな。

ファスト&スロー(上) あなたの意思はどのように決まるか? (ハヤカワ・ノンフィクション文庫)
- 作者: ダニエル・カーネマン,村井章子
- 出版社/メーカー: 早川書房
- 発売日: 2014/06/20
- メディア: 文庫
- この商品を含むブログ (32件) を見る

ファスト&スロー(下) あなたの意思はどのように決まるか? (ハヤカワ・ノンフィクション文庫)
- 作者: ダニエル・カーネマン,村井章子
- 出版社/メーカー: 早川書房
- 発売日: 2014/06/20
- メディア: 文庫
- この商品を含むブログ (19件) を見る
総じてとても面白いお話だった。現在の深層学習の課題解決、勉強になった。プロフェッショナルの講義は知るべき情報や勘所をまとめてお話くださるので、自学より理解が進むし、効率良い。自分は東大にいたころ、学部は違えどこんな贅沢な環境にいたんだなあと今頃になって気づく。大学で学び直したい…。
コミュニケーションアプリ「LINE」の機能改善を支えるデータサイエンス (15:30 - 16:10 / HALL-B)
データサイエンスチームの高口太朗氏によるセッション。
LINEアプリ(いつもチャットに使っているやつ)のグループ作成の機能改善事例を交えて、LINEにおけるデータサイエンスの実態について解説。
- 本日伝えたい4つのキーワード
- Users First
- Data Driven
- Diverse Team
- In-house Development
データサイエンスチームの組織構造
- 各チームが関わるプロダクトが具体的に説明された
実際のプロジェクトの進め方
- User Research
- Plan
- Development
- Test
- Feedback
- Plan......
- というサイクル
User Research
データサイエンティストがインタビュアーとして関わることも。
Plan & Development
- 立案された計画に基づき、プランナーと一緒に考える
- ログの定義、ログの内容をチェック
Test & Feedback
- A/Bテストが主
- 100個以上のものを網羅的にテスト
- 1つの施策の方向を決めるのではなく、ユーザーの求めるものを知る機会と位置づけ
LINEアプリならではのチャレンジ
- ユーザー数が多い、使い方もさまざま
- 単独のKPIが存在しない
- 無料のメッセンジャーアプリなので、それだけでは売上に結びつかない
- すでにユーザーを獲得している
- →LINEアプリが提供している価値をどうやって測るのかを常に考える
- →LINEアプリが提供する価値(Core Value)とは何かに立ち返る
- Closing the Distance
- Ease and Pleasant Communication With Close Friends
- 追求していく価値
- 適切に友人ネットワークが構築されていること・社会的な関係性を反映していること
- →グループ機能が重要
改善プロジェクトの追体験
- グループ作成の手順が分かりにくいのではないか?
- 手順の順番がわかりにくい
- アイコンとグループ名から決めるのは分かりにくい
- →まずは人→アイコンとグループ名 に変更
- ABテストで差が見られなかった
- なぜ差が見られなかったのかを検討していく
- あらかじめ、いくつかの切り口を作成
- 成功したユーザー?失敗したユーザー?
- 地域差?
- 時間的な依存関係?
- アイコンとグループ名までたどり着けなかったユーザーが多い
- 失敗したユーザーを木構造に分解
- 将来の改善箇所への示唆を得られる
- 失敗したユーザーを木構造に分解
- 次の施策
- 施策1: メンバー選択時、最近1対1でトークした友達リストを上部に表示
- すでに存在した画面
- →最低限のコストで施策を打つ
- 施策2: アイコン・グループ名・メンバー選択を1つの画面に表示
- 2*2の施策 → 6通りの比較を行う
- 多重比較の問題
- 偽陽性
- →施策数を絞り、比較数も減らした
- このような、ナイーブでない(安易に6通りにしない)テスト設計には、統計の知識とアプリの知識が必要
- 多重比較の問題
- 施策1: メンバー選択時、最近1対1でトークした友達リストを上部に表示
- またしてもグループ作成完了率に優いな差は見られなかった
- →かかる時間が短くなればそれが価値になる、という意見をアプリ側から
- 実際、時間は短縮された
- →かかる時間が短くなればそれが価値になる、という意見をアプリ側から
- 1画面の場合はネガティブな影響
- 1人のグループ作成は増えた
- 画面変更による試し
- ミス
- が原因と考えられる
- 2人以上は減った
- トーク作成は増えた
- グループ作成を諦めた?
- グループ作成完了ボタンを2回押したケースが増えた
- 必要な情報を入力していなかったケースが増えたということと考えられる
- トーク作成は増えた
- 1人のグループ作成は増えた
- Another Pain Point
- グループ作成ボタンがどこにあるか知らない?
- 3箇所に存在
- →グループ作成したいと考えたときに作れるのが良い
- トーク作成画面に追加したのはABテストの成果
- ある指標が大きく上昇した場合、別の指標を犠牲にしている場合がある
- ユーザの使いやすさへの貢献が無い場合もある
- トーク作成を食った?
- 検証→たしかにトーク作成は減ったが、グループまたはトーク作成数は増えた
- →OK
- 検証→たしかにトーク作成は減ったが、グループまたはトーク作成数は増えた
- 別導線を食った?
- 別導線に影響はなかった
- →OK
- 別導線に影響はなかった
- トーク作成を食った?
- グループ作成ボタンがどこにあるか知らない?
- 次の目標は、作ったグループを使い続けてもらう、アクティブなグループを増やす
Data Science Tools
プロジェクトの流れに沿って内製ツールの紹介
- サンプルサイズ計算・ユーザー選定
- OASIS
- サンプルサイズ計算など、集計が可能
- さまざまな言語を実行可能
- ノートブック一つで作業と共有が完了する
- LIBRA
- ユーザーの選定を自動化する
- OASIS
- ABテストの進行をモニタリングするダッシュボード
- LIBRA REPORT
- QueryをGitHubに投げる
- R Shiny
- LIBRA REPORTとは別のニーズ
- LIBRA REPORT
- テスト結果レポーティングツール
- Conflr
- Rパッケージ
- R Markdownで書く
- 結果をWikiとして共有できる
- チームメンバーが開発し、OSSで公開されている
- Conflr
感想
事例の話を聞くと一本道でうまく進んでいったように聞こえるが、実際には試行錯誤の末の成果と思われる。適切な仮説を立て、どうすれば検証できるかを考え抜く。そのプロセスを自分も辿れるだろうか、と振り返る良い機会になったし、直面した際にはその姿勢と具体的な実践を参考にさせていただこうと思った。
LINEにおける深層学習を用いた音源分離技術の研究 (16:20 - 17:00 / HALL-F)
LINE Research Labs Senior Researcherの戸上 真人氏によるセッション。
音源分離技術のことは全然知らなかったが、かなり面白いセッションだった。出るのをやめなくて本当によかった。
何より、音源分離を実現するためのモデル構築が秀逸で、以下の2点がポイントと感じた。
- 最終予測物を教師にするために途中の処理もDNNに組み込む
- 損失関数の設計
最終予測物を教師にするために途中の処理もDNNに組み込む
音源の推定にDNNを使うだけでなく、本来推定したいものを正解にして真の音源分離データとのlossを計算する(音源分離処理もDNNに加えてしまう)(スライド参照)。
各層は微分可能なため、こんなモデルの組み方をしてもバックプロパゲーションが最初まで伝わりきる。
これは音源分離に限らず、他の課題でも活かせる考え方。
損失関数の設計
DNNでは真の値をどうしても推定できないサンプルもあるため、差が二乗される「(c - c_hat)**2」lossではその推定できないサンプルの影響が強く出過ぎる。
→推定値の分散をlossに組み込む。
教師なしDNN
- 統計モデルから推定した出力を教師にする
- →統計モデルの出力のエラーがランダムなため、DNNが学習せずに済む
- +教師データとしているものもばらけるため、そちらの分散もロスに加えて確率分布同士のロスを使用する
- Kullback–Leibler divergence
感想
今自分がやっている機械学習でも、DNNで第一段階の予測をしてモデルに組み込むか、モデル全体をDNNにしてしまうかという判断が発生したことがあるため、自分ごととして拝聴でき、とても参考になった。
エムスリーにおけるAI・機械学習チームの立ち上げと機械学習プロダクト開発 (17:20 - 18:00 / HALL-E)
エムスリー株式会社 エンジニアリンググループ グループリーダー/AI・機械学習チーム チームリーダー 機械学習エンジニア 西場正浩氏によるセッション。
チーム立ち上げとマネジメント上での失敗、そこから学んだことと次にどうするかなど、実体験に基づくお話でとても興味深かった。
自分はマネジメントされる側なので、どんなプレイヤーになるべきかを考えながらお聞きしていた。
- プロダクトコードまで触れるエンジニアじゃないと独り立ちできなくて周りのサポートが必要になる
- 自分が関わるプロダクトに関連する論文くらいきっちりサーベイしようよ
というお話が心に残ったので、ひとまずの目標として以下のことを実践しようと思う。
- 技術やプロダクトなど、関連する論文のサーベイをちゃんと行う
- 引き出しが増える
- のちのちの財産になるはず
まとめ
データサイエンス・機械学習に力を入れているLINEのイベントだけあって、充実したとても実りある1日になった。
やはり人の話・講義を聞くのも大切。外に出よう。
企画・スタッフの皆様、登壇者の皆様、誠にありがとうございました。
おまけ
お昼ご飯が無料配布された。夜の懇親会も無料!お昼の今半のすき焼き弁当、おいしかった。
お昼ご飯無料配布とか太っ腹✨
— こここ🍀 (@kokokocococo555) November 20, 2019
今半のすき焼き弁当、おいしかったー。#linedevday pic.twitter.com/AS8Cn96kr5