SlideShare a Scribd company logo
1 of 23
Download to read offline
機械学習を活用したサービスに
おける工夫紹介	
第一回SIL勉強会 自然言語処理編	
はてな id:syou6162	
1
自己紹介	
•  id:syou6162(本名:	吉田康久)	
•  前職:	自然言語処理や機械学習の研究職	
•  2年前にはてなにアプリケーションエンジニア
として転職	
2
Mackerel:	サーバーの異常検知	
3	
•  ルールを書く必要なし	
•  約20次元を考慮	
•  どのメトリックがおかしいか
根拠も提示	
参考:	h:ps://www.yasuhisay.info/entry/mackerel_meetup_12_anomaly_detecDon
MACHINE	LEARNING	Meetup	KANSAI	
4	h:ps://mlm-kansai.connpass.com/
はてなにおける	
機械学習の取り組み	
id:syou6162	
MACHINE	LEARNING	Meetup	
KANSAI#1	
5	
•  再現性や属人性、機械学習で
難しいところをはてながどう組
織で取り組んでいるか紹介	
参考:	h:ps://www.slideshare.net/syou6162/ss-93425042
デブサミ2018関西	
6	
•  機械学習の第一歩をどう踏み出すか	
•  機械学習におけるアプリケーションエンジニアの強み	
参考:	h:ps://www.yasuhisay.info/entry/2018/10/01/090000
ML	News	
•  機械学習関連の最近のエントリを紹介する君	
–  h:ps://www.machine-learning.news	
–  これ自身も機械学習/自然言語処理を使ってる	
–  趣味で運用している	
•  作ったモチベーション		
–  気になった機械学習技術をいきなりプロダクションに
入れるのは大変	
–  自分で遊べる砂場が欲しい	
•  あくまで趣味なので手間をあまりかけたくない	
–  今日は運用での工夫について話します	
7
こんなサイト	
8
アジェンダ	
•  能動学習による効率的なアノテーション	
•  精度の継続的なトラッキングを簡単に	
•  多様性を持たせた簡単な推薦方法	
•  パイプラインジャングルと戦う	
9
アダルト	
まとめサイト	
深層学習	
異常検知	
分離平面	
Python	クローラー	
CoreML	
iPhone	
アプリ おすすめ	
能動学習による効率的なアノテーション	
機械学習	Python	
アフィリエイトサイト	
10
分離平面	
能動学習による効率的なアノテーション	
この辺ばかりアノテーションしていても	
-  精度は上がらない	
-  精神は病むので、つらい	
-  しかし、ランダムに選ぶとこの辺がたくさん…	
11	
アダルト	
まとめサイト	
Python	クローラー	iPhone	
アプリ おすすめ	
アフィリエイトサイト	
深層学習	
異常検知	
CoreML	
機械学習	Python
分離平面	
能動学習による効率的なアノテーション	
分離平面に近い(=分類器があまり自信がない)
事例から優先的にアノテーション	
12	
アダルト	
まとめサイト	
Python	クローラー	iPhone	
アプリ おすすめ	
アフィリエイトサイト	
深層学習	
異常検知	
CoreML	
機械学習	Python
•  同じ400件をアノテーションするならば、より精度
が高い分類器を作れる400件のほうがよい	
h:p://www.yasuhisay.info/
entry/2017/05/18/080000	
	
h:ps://github.com/syou6162/go-
acDve-learning	
能動学習による効率的なアノテーション	
13
継続的な精度トラッキングの必要性	
•  機械学習プロダクトは何かとテストがしにくい	
– 実際にサービスに出してみて確認するしかないこ
とも多い	
– 例1:	気づかないうちに精度が劣化していく	
– 例2:	突然壊れる	
•  継続的な確認は何かと忘れられがち	
– 趣味サービスだと工数は自分の余暇時間しかな
いのでとにかく楽をしたい	
14
精度の継続的なモニタリング	
•  コマンドラインツール(mkr)や各種言
語のライブラリから投稿可能	
•  各メトリックに対して閾値を設定して
閾値を割ったらslackに通知	
15
精度の可視化	
•  任意の時点にアノテーションを追加	
•  Gitのコミットハッシュ値やPull	Requestへ
のリンクを貼っておくと便利	
•  mackerel.io	
16
壊れたことにすぐ気づける	
17	
•  バグがあるコードをdeploy、判定器が常
に負例を返すようになってしまった	
•  精度が閾値を下回ったらアラートがきた	
•  どのcommitでおかしくなったかアノテー
ションで分かるため、速攻修正できた	
😇
バッチの実行時間の監視なども	
18	
h:ps://www.yasuhisay.info/entry/2019/01/07/123000	
•  数分で終わっていたはずのバッチが
いつの間にか数時間かかっていた	
•  バッチの処理時間もMackerelで監視
推薦リストの構築(1)	
•  スコアが高いものはarXivの論文ばかり…	
•  データ基盤の話や面白事例のエントリも読み
たい!	推薦されたリストに多様性が欲しい!	
•  文書要約も似たような問題設定	
– 文書全体の話題をカバーしつつ重要なところを
ピックアップ	
– ナイーブにやると2^Nの組合せがある	
19
推薦リストの構築(2)	
•  目的関数が劣モジュラと呼ばれる形式だと貪欲
法で簡単に解ける	
–  目的関数:	td-idfから構成される簡単な関数	
–  賢い人が「最悪ケースでもこれ以下にはならない」と
理論保証を与えてくれている	
•  Golangで約100行	
–  h:ps://github.com/syou6162/go-acDve-learning-
web/blob/master/lib/apply/apply.go	
–  h:ps://www.yasuhisay.info/entry/
2017/05/27/213200	
20
パイプラインジャングル	
•  機械学習アプリではパイプラインジャングル
になりがち	
•  昔はJenkinsで以下を調整していた	
– 分類対象候補データのクローリング	
– 前処理	
– 学習	
– 予測	
– 推薦リストの構築	
– Slackへの通知	
問題点	
•  cronの時間調整アホらしい	
•  前段の処理で失敗したら後段の
処理は走らないで欲しい	
•  どこでこけたか調査が面倒	
21
解法:	AWS	StepFuncDons	
推薦対象候補の
クローリング	
学習/予測および
推薦リストの構築	
利点	
•  個々のパーツの自由度
が高い(Lambda/ECS	
task/AWS	Batch	Job)	
•  どこでこけたか一目瞭然	
•  こけたらexponenDal	
backoffで再実行	
•  管理サーバー必要なし	
•  設定がJSONで書ける	
22	h:ps://www.yasuhisay.info/entry/machine_learning_workflow_with_step_funcDons
まとめ	
•  能動学習による効率的なアノテーション	
•  精度の継続的なトラッキングを簡単に	
•  多様性を持たせた簡単な推薦方法	
•  パイプラインジャングルと戦う	
23	
•  機械学習を使ったサービスの立ち上げ/運用について興味
ある方、懇親会でお話しましょう	
•  理論方面に興味があるという方、他社さんと一緒に論文読
み会(自然言語処理や情報検索/推薦)をやっているので懇
親会でお話しましょう

More Related Content

Similar to 機械学習を活用したサービスにおける工夫紹介

はてなにおける機械学習の取り組み
はてなにおける機械学習の取り組みはてなにおける機械学習の取り組み
はてなにおける機械学習の取り組みsyou6162
 
今日から始める機械学習〜はてなの事例〜
今日から始める機械学習〜はてなの事例〜今日から始める機械学習〜はてなの事例〜
今日から始める機械学習〜はてなの事例〜syou6162
 
はてなにおける機械学習の取り組み
はてなにおける機械学習の取り組みはてなにおける機械学習の取り組み
はてなにおける機械学習の取り組みsyou6162
 
Kinesis→Redshift連携を、KCLからFirehoseに切り替えたお話
Kinesis→Redshift連携を、KCLからFirehoseに切り替えたお話Kinesis→Redshift連携を、KCLからFirehoseに切り替えたお話
Kinesis→Redshift連携を、KCLからFirehoseに切り替えたお話Hajime Sano
 
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テストDevice Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト健一 辰濱
 
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。Akihiro Kuwano
 
Real-time personalized recommendation using embedding
Real-time personalized recommendation using embeddingReal-time personalized recommendation using embedding
Real-time personalized recommendation using embeddingRecruit Lifestyle Co., Ltd.
 
LINE Developer Meetup in Tokyo #39 Presentation (modified)
LINE Developer Meetup in Tokyo #39 Presentation (modified)LINE Developer Meetup in Tokyo #39 Presentation (modified)
LINE Developer Meetup in Tokyo #39 Presentation (modified)Yasuharu Nishi
 
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについてMasahito Zembutsu
 
ソフトハウスの品質保証のウソホント
ソフトハウスの品質保証のウソホントソフトハウスの品質保証のウソホント
ソフトハウスの品質保証のウソホントYasuharu Nishi
 
開催の辞
開催の辞開催の辞
開催の辞MLSE
 
Machine Learning Nagoya 20161015
Machine Learning Nagoya 20161015Machine Learning Nagoya 20161015
Machine Learning Nagoya 20161015陽平 山口
 
1時間で分かるSTA (Software Test Automation) #stac2014
1時間で分かるSTA (Software Test Automation) #stac20141時間で分かるSTA (Software Test Automation) #stac2014
1時間で分かるSTA (Software Test Automation) #stac2014Kazuhiro Suzuki
 
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けてHironori Washizaki
 
Pythonで検索エンジン2
Pythonで検索エンジン2Pythonで検索エンジン2
Pythonで検索エンジン2Yasukazu Kawasaki
 
Mashup Awards は 新しい技術を試す 絶好の機会です
Mashup Awards は新しい技術を試す絶好の機会ですMashup Awards は新しい技術を試す絶好の機会です
Mashup Awards は 新しい技術を試す 絶好の機会ですNobuhiro Nakajima
 
ソフトウェアパターン概論およびパターンを活用したアーキテクチャ設計
ソフトウェアパターン概論およびパターンを活用したアーキテクチャ設計ソフトウェアパターン概論およびパターンを活用したアーキテクチャ設計
ソフトウェアパターン概論およびパターンを活用したアーキテクチャ設計Hironori Washizaki
 
1028 TECH & BRIDGE MEETING
1028 TECH & BRIDGE MEETING1028 TECH & BRIDGE MEETING
1028 TECH & BRIDGE MEETING健司 亀本
 

Similar to 機械学習を活用したサービスにおける工夫紹介 (20)

はてなにおける機械学習の取り組み
はてなにおける機械学習の取り組みはてなにおける機械学習の取り組み
はてなにおける機械学習の取り組み
 
今日から始める機械学習〜はてなの事例〜
今日から始める機械学習〜はてなの事例〜今日から始める機械学習〜はてなの事例〜
今日から始める機械学習〜はてなの事例〜
 
はてなにおける機械学習の取り組み
はてなにおける機械学習の取り組みはてなにおける機械学習の取り組み
はてなにおける機械学習の取り組み
 
Kinesis→Redshift連携を、KCLからFirehoseに切り替えたお話
Kinesis→Redshift連携を、KCLからFirehoseに切り替えたお話Kinesis→Redshift連携を、KCLからFirehoseに切り替えたお話
Kinesis→Redshift連携を、KCLからFirehoseに切り替えたお話
 
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テストDevice Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト
 
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
 
Real-time personalized recommendation using embedding
Real-time personalized recommendation using embeddingReal-time personalized recommendation using embedding
Real-time personalized recommendation using embedding
 
LINE Developer Meetup in Tokyo #39 Presentation (modified)
LINE Developer Meetup in Tokyo #39 Presentation (modified)LINE Developer Meetup in Tokyo #39 Presentation (modified)
LINE Developer Meetup in Tokyo #39 Presentation (modified)
 
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて
 
JAWS FESTA 20191102
JAWS FESTA 20191102JAWS FESTA 20191102
JAWS FESTA 20191102
 
ソフトハウスの品質保証のウソホント
ソフトハウスの品質保証のウソホントソフトハウスの品質保証のウソホント
ソフトハウスの品質保証のウソホント
 
開催の辞
開催の辞開催の辞
開催の辞
 
Machine Learning Nagoya 20161015
Machine Learning Nagoya 20161015Machine Learning Nagoya 20161015
Machine Learning Nagoya 20161015
 
1時間で分かるSTA (Software Test Automation) #stac2014
1時間で分かるSTA (Software Test Automation) #stac20141時間で分かるSTA (Software Test Automation) #stac2014
1時間で分かるSTA (Software Test Automation) #stac2014
 
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
 
Pythonで検索エンジン2
Pythonで検索エンジン2Pythonで検索エンジン2
Pythonで検索エンジン2
 
Mashup Awards は 新しい技術を試す 絶好の機会です
Mashup Awards は新しい技術を試す絶好の機会ですMashup Awards は新しい技術を試す絶好の機会です
Mashup Awards は 新しい技術を試す 絶好の機会です
 
Mercari ML Meetup
Mercari ML MeetupMercari ML Meetup
Mercari ML Meetup
 
ソフトウェアパターン概論およびパターンを活用したアーキテクチャ設計
ソフトウェアパターン概論およびパターンを活用したアーキテクチャ設計ソフトウェアパターン概論およびパターンを活用したアーキテクチャ設計
ソフトウェアパターン概論およびパターンを活用したアーキテクチャ設計
 
1028 TECH & BRIDGE MEETING
1028 TECH & BRIDGE MEETING1028 TECH & BRIDGE MEETING
1028 TECH & BRIDGE MEETING
 

More from syou6162

自分の目的に合った統計量と そのバラ付きを計算しよう ~NPSを例に~(統計学勉強会)
自分の目的に合った統計量と そのバラ付きを計算しよう ~NPSを例に~(統計学勉強会)自分の目的に合った統計量と そのバラ付きを計算しよう ~NPSを例に~(統計学勉強会)
自分の目的に合った統計量と そのバラ付きを計算しよう ~NPSを例に~(統計学勉強会)syou6162
 
オープンセミナー岡山 これから始めるデータ活用
オープンセミナー岡山 これから始めるデータ活用オープンセミナー岡山 これから始めるデータ活用
オープンセミナー岡山 これから始めるデータ活用syou6162
 
正確な意思決定を阻む 問題・障害との向き合い方
正確な意思決定を阻む 問題・障害との向き合い方正確な意思決定を阻む 問題・障害との向き合い方
正確な意思決定を阻む 問題・障害との向き合い方syou6162
 
カスタマーサクセスのためのデータ整備人の活動記録
カスタマーサクセスのためのデータ整備人の活動記録カスタマーサクセスのためのデータ整備人の活動記録
カスタマーサクセスのためのデータ整備人の活動記録syou6162
 
Mackerel Anomaly Detection at PyCon mini Osaka
Mackerel Anomaly Detection at PyCon mini OsakaMackerel Anomaly Detection at PyCon mini Osaka
Mackerel Anomaly Detection at PyCon mini Osakasyou6162
 
異常検知ナイト LT登壇資料 はてな id:syou6162
異常検知ナイト LT登壇資料 はてな id:syou6162異常検知ナイト LT登壇資料 はてな id:syou6162
異常検知ナイト LT登壇資料 はてな id:syou6162syou6162
 
Duolingo.pptx
Duolingo.pptxDuolingo.pptx
Duolingo.pptxsyou6162
 
今日からできる構造学習(主に構造化パーセプトロンについて)
今日からできる構造学習(主に構造化パーセプトロンについて)今日からできる構造学習(主に構造化パーセプトロンについて)
今日からできる構造学習(主に構造化パーセプトロンについて)syou6162
 
Kernel20110619
Kernel20110619Kernel20110619
Kernel20110619syou6162
 
Optimization In R
Optimization In ROptimization In R
Optimization In Rsyou6162
 
Syou6162 Dbcls
Syou6162 DbclsSyou6162 Dbcls
Syou6162 Dbclssyou6162
 
半教師あり学習
半教師あり学習半教師あり学習
半教師あり学習syou6162
 
R User Group 2009 Yoshida
R User Group 2009 YoshidaR User Group 2009 Yoshida
R User Group 2009 Yoshidasyou6162
 
Short Essay
Short EssayShort Essay
Short Essaysyou6162
 
Algorithm Design
Algorithm DesignAlgorithm Design
Algorithm Designsyou6162
 
Tsukuba Memo Off
Tsukuba Memo OffTsukuba Memo Off
Tsukuba Memo Offsyou6162
 
1000speakers
1000speakers1000speakers
1000speakerssyou6162
 
第一回卒研発表会
第一回卒研発表会第一回卒研発表会
第一回卒研発表会syou6162
 

More from syou6162 (20)

自分の目的に合った統計量と そのバラ付きを計算しよう ~NPSを例に~(統計学勉強会)
自分の目的に合った統計量と そのバラ付きを計算しよう ~NPSを例に~(統計学勉強会)自分の目的に合った統計量と そのバラ付きを計算しよう ~NPSを例に~(統計学勉強会)
自分の目的に合った統計量と そのバラ付きを計算しよう ~NPSを例に~(統計学勉強会)
 
オープンセミナー岡山 これから始めるデータ活用
オープンセミナー岡山 これから始めるデータ活用オープンセミナー岡山 これから始めるデータ活用
オープンセミナー岡山 これから始めるデータ活用
 
正確な意思決定を阻む 問題・障害との向き合い方
正確な意思決定を阻む 問題・障害との向き合い方正確な意思決定を阻む 問題・障害との向き合い方
正確な意思決定を阻む 問題・障害との向き合い方
 
カスタマーサクセスのためのデータ整備人の活動記録
カスタマーサクセスのためのデータ整備人の活動記録カスタマーサクセスのためのデータ整備人の活動記録
カスタマーサクセスのためのデータ整備人の活動記録
 
Mackerel Anomaly Detection at PyCon mini Osaka
Mackerel Anomaly Detection at PyCon mini OsakaMackerel Anomaly Detection at PyCon mini Osaka
Mackerel Anomaly Detection at PyCon mini Osaka
 
異常検知ナイト LT登壇資料 はてな id:syou6162
異常検知ナイト LT登壇資料 はてな id:syou6162異常検知ナイト LT登壇資料 はてな id:syou6162
異常検知ナイト LT登壇資料 はてな id:syou6162
 
Duolingo.pptx
Duolingo.pptxDuolingo.pptx
Duolingo.pptx
 
今日からできる構造学習(主に構造化パーセプトロンについて)
今日からできる構造学習(主に構造化パーセプトロンについて)今日からできる構造学習(主に構造化パーセプトロンについて)
今日からできる構造学習(主に構造化パーセプトロンについて)
 
Kernel20110619
Kernel20110619Kernel20110619
Kernel20110619
 
Optimization In R
Optimization In ROptimization In R
Optimization In R
 
Syou6162 Dbcls
Syou6162 DbclsSyou6162 Dbcls
Syou6162 Dbcls
 
半教師あり学習
半教師あり学習半教師あり学習
半教師あり学習
 
R User Group 2009 Yoshida
R User Group 2009 YoshidaR User Group 2009 Yoshida
R User Group 2009 Yoshida
 
Tsukuba
TsukubaTsukuba
Tsukuba
 
Short Essay
Short EssayShort Essay
Short Essay
 
Prml
PrmlPrml
Prml
 
Algorithm Design
Algorithm DesignAlgorithm Design
Algorithm Design
 
Tsukuba Memo Off
Tsukuba Memo OffTsukuba Memo Off
Tsukuba Memo Off
 
1000speakers
1000speakers1000speakers
1000speakers
 
第一回卒研発表会
第一回卒研発表会第一回卒研発表会
第一回卒研発表会
 

機械学習を活用したサービスにおける工夫紹介