Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Machine Learning and Feedback
Search
Agata Naomichi
September 26, 2018
Programming
1
1.3k
Machine Learning and Feedback
Agata Naomichi
September 26, 2018
Tweet
Share
More Decks by Agata Naomichi
See All by Agata Naomichi
医療系スタートアップが経験した 認知負荷問題の症状分析と処方箋 チーム分割による認知負荷の軽減 / Cognitive Load Busters
agatan
2
400
専門性の高い領域をいかに開発し、 テストするか / How to test and develop complicated systems with Domain Experts!
agatan
1
660
Henry のサーバーサイドアーキテクチャ 狙いと課題 2022.08.25 / Server-Side Architecture at Henry, Inc.
agatan
2
4.2k
The Web Conference 2020 - Participation Report
agatan
1
640
○○2vec 再考
agatan
1
4.1k
Improving "People You May Know" on Directed Social Graph
agatan
4
2.4k
Recommendation systems on microservices - productivity & reproducibility
agatan
0
760
Mint: Language Level Support for SPAs
agatan
3
1.7k
Go as an aggregator in recommendation systems
agatan
2
1.2k
Other Decks in Programming
See All in Programming
月間4.5億回再生を超える大規模サービス TVer iOSアプリのリアーキテクチャ戦略 - iOSDC2024
techtver
PRO
1
620
Amebaチョイス立ち上げの裏側 ~依存システムとの闘い~
daichi_igarashi
0
220
令和トラベルにおけるLLM活用事例:社内ツール開発から得た学びと実践
ippo012
0
110
開発を加速する共有Swift Package実践
elmetal
PRO
0
320
The Future of Frontend i18n : Intl.MessageFormat
sajikix
1
2.4k
dRuby 入門者によるあなたの身近にあるdRuby 入門
makicamel
4
340
LangGraphでのHuman-in-the-Loopの実装
os1ma
3
810
エラーレスポンス設計から考える、0→1開発におけるGraphQLへの向き合い方
bicstone
4
700
座談会 「Strict ConcurrencyとSwift 6が開く新時代: 私たちはどう生きるか?」
shiz
4
8.3k
大公開!iOS開発の悩みトップ5 〜iOSDC Japan 2024〜
ryunakayama
0
180
マイグレーションコード自作して File-Based Routing に自動移行!! ~250 ページの歴史的経緯を添えて~
cut0
1
250
フロントエンドカンファレンス北海道2024 『小規模サイトでも使えるVite 〜HTMLコーディングをよりスマートに〜』長谷川広武(ハム)
h2ham
1
2.5k
Featured
See All Featured
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
230
17k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Raft: Consensus for Rubyists
vanstee
135
6.5k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
325
21k
Web development in the modern age
philhawksworth
204
10k
The Cost Of JavaScript in 2023
addyosmani
39
5.2k
Web Components: a chance to create the future
zenorocha
308
41k
Gamification - CAS2011
davidbonilla
79
4.9k
GraphQLとの向き合い方2022年版
quramy
43
13k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.4k
Making Projects Easy
brettharned
113
5.8k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
38
9.1k
Transcript
ユーザフィードバックと機械学習 Machine Learning Casual Talks #6
Naomichi Agata Software engineer at Wantedly, Inc. Server side +
Machine learning @ Wantedly People GitHub Twitter @agatan @agatan_
サービスにおける機械学習システムには ユーザフィードバックが重要
フィードバック • ユーザからのフィードバック ◦ レビューやお問い合わせだけではなく、 「ふつうにサービスを使うなかでの行動」から得られる ◦ e.g. 「検索結果をクリックした」「購入せずに戻った」「誤情報を訂正した」 •
ユーザへのフィードバック ◦ より良いサービスを提供する ◦ e.g. 「あなたへのおすすめ」「全体の精度が向上する」
何を持ってそのモデルを「良い」と判断するか 機械学習をサービスに活用するためには 1. モデル自体の精度(オフラインで測れる精度) 2. KPI / ユーザ体験への影響(オンラインでしか測れない精度) の 2
面から「良さ」を判断する必要がある ユーザ体験への影響は「ユーザからのフィードバック」でしか測れない
サービスの成長とモデルの成長 • サービスが大きくなるにつれてできることは増えていくはず ◦ e.g. パーソナライズ • フィードバックループを繰り返して改善していきたい 、というのは機械学習も一緒 良い機械学習によってサービスの成長を加速する
→ データが増える → 精度があがる and/or できることが増える → 成長を加速 → …
理想 良い体験を実現するほど、使ってもらえる ↑↓ 使ってもらうほど、改善がすすむ 使う 改善 より良い体験の提供
現実 • どの程度フィードバックを得られるかは、問題とサービスの性質に依存する ◦ たとえば、推薦はフィードバックを得やすい • 「サービスの拡大とともに使える情報が増える」ことは期待できない場合もある ◦ 学習データにするには壁がある ▪
より高度な annotation 作業が必要, ノイズが多い, … • 機械学習システムだけ成長に置いていかれるわけにはいかない
どんな対応ができるか
前提... • フィードバックを逃さないログ基盤などはとても重要 ◦ 「なにかがおかしい」を察知できないと改善の余地がない ◦ 継続的に評価できないと新しいことに挑戦できなくなる • フィードバックを受けやすい UX
設計も重要になってくる(?) ◦ 予測が間違っているときにそれを伝えられる ◦ 予測が正しかったときにそれを伝えられる ◦ 機械学習エンジニアも UX 設計に参加する必要がある
半教師あり学習として解く • 「少量の教師ありデータ + 大量の教師なしデータ」 • 教師なしでもできることを組み合わせたシステムにするのが一番うまくいった ◦ たとえば、word embedding
layer を教師なしデータで事前学習しておく
データの分布に注目する • annotate されていないデータでも、現実のデータの分布を反映している • 活用できていなかったデータも、細かく分析することで使えるようになる(こともある) • 分布さえわかればできることもある ◦ たとえば、bi-gram
の出現頻度を見ながら sequence 全体での尤度が最大になるように decode する ◦ たとえば、出現頻度の多いパターンにはアドホックにルールベースで対処する ▪ e.g. 高い頻度・確率で「m」が「nn」に訂正されている • より現実に近い data augmentation ができる ◦ データの分布から教師データを作る
ノイズを許容する • ノイズを許容してでも大きなデータで学習したほうが良い場合もある ◦ とはいえ単純につっこんでもうまくいかない(はず) • 地道に分析してノイズを取り除くのが(可能なら)一番よさそう • 教師データのノイズに耐性を持つようなモデルも提案されている
まとめ • サービスの成長にあわせてモデルも改善したい ◦ モデル改善 → サービス向上 → 使ってもらえる →
改善 → … のループが回せると幸せ ◦ 問題・領域によっては、モデルの改善に直接使えるデータは集まらない • どうやってモデルの改善を進めるか ◦ そもそも UX としてユーザフィードバックが得られる構造になっているか? ◦ 半教師あり的に扱う ◦ ひたすら分析 + パターンを見出して改善する