SlideShare une entreprise Scribd logo
1  sur  13
Télécharger pour lire hors ligne
Microsoft Global Azure Boot Camp 2016 in Japan
suzuki.sh (@s2terminal)
かんたん 機械学習 はじめの1歩
Azure Machine Learning で Tweet を レコメンド
Self Introduction
鈴木就斗 (suzuki.sh)
 名古屋のWebエンジニア
 合唱音楽の鑑賞が趣味
 NinjaSlayer、Splatoon、そしてMicrosoft Azureがすき
 twitter: @suzukiterminal
 facebook: @sh.suzuki.921
 GitHub: @s2terminal
Azureを使っているところ
 はてなブックマークしたURLをPocketに入れるAPI
 http://s2terminal.hatenablog.com/entry/2015/07/05/165010
 Azure API Apps (去年のセッションに触発されて作りました)
 Webサービス「合唱音源の新着情報」を運営
 http://合唱音源の新着情報.com
 Azure Virtual Machine + Azure SQL Database
 Twitter @s2terminal
Twitter投稿データ
合唱音源の新着情報
Azure VM上のアプリケーション(Ruby on Rails)で
登録情報をTwitterに半自動投稿
投稿に含まれる作曲者、曲名などの情報を
詳細データとしてタグ付け管理している
Twitter投稿データ
 Twitter 800 件分の投稿データ
 1,500 件の詳細データ (演奏者、作曲者名などのタグ情報)
 3,000 回のリツイート(RT)データ
 投稿とRTデータを組み合わせて、RTを評価点としてレコメンドしたい
→ Azure Machine Learning
MatchBox Recommendation を使ってみた
Matchbox Recommendationで用いる3つのデータ
 item-features
 ツイートの詳細データ(作曲者名、曲名、投稿日など)に該当
 user-features
 Twitterユーザデータに該当(今回は無し)
 user-item-rating
 誰がどのツイートをRTしたか?の評価データ
これらを使うことで、どんなuserが、どんなitemに評価をするか推測できる
データソースにはCSV等いくつかの形式が使用可能
Azure Machine Learningワークスペースを作成
 DataSouceをアップロード
 ML Studio上でDataSource、Train
Matchbox Recommendation、Score
Matchboxを配置
 Score Matchbox Recommendationの
「Recommended item selection」を
「From Rated Items」→「From All
Items」に変更
 Project Columnsを配置し、user-item-
ratingの評価用出力をuser-idのみに絞る
※ ここまで数式もプログラムも一切なし。かんたん!
結果
Item1 に 「 186 」 がずらり
なにかと思ってDBを見てみると…
https://twitter.com/s2terminal/status/550310731636158464
最もたくさんRTされた投稿だった
普段は数RTしかされない中で
1個だけ 70 RTを超えているので
誰が考えてもそりゃそうなる。
機械とか関係ない。テクノロジーの欠片もない。
結果はあまり面白くないものの
無事にレコメンドすることができた
WebAPI化
 PREPARE WEB SERVICEから、
Web Service Input/Outputを設定
 C#、Python、Rの3種類で
サンプルコードが提供される。
 今回はRuby on Railsで記述
 https://gist.github.com/s2terminal/4a
6d11d90803778e00027d6830e614e7
#file-request_azure_ml-rb
 ※プログラム書いたのはここだけ!
 APIを叩くWebサービスを作り
Azure VMにdeployして完成
課題
 取得できるTweetに偏りがある
 どのユーザに対しても、単にたくさんRTされたツイートばかり表示される
 ユーザによってさまざまな結果が出てほしい
 データを増やしたい
 Twitterのお気に入りデータを取得したいが、良いAPIが無い
 https://twittercommunity.com/t/list-of-people-who-favorited-a-particular-tweet/11083
 (料金が正直よくわからない…)
 https://azure.microsoft.com/ja-jp/pricing/details/machine-learning/
 「スタジオ実験時間」「実稼働」に該当するのはどの時間?
 無料プランはどこで選択するの?
まとめ
Azure MLでかんたんに機械学習を始めることができる
 プログラムが必要なのは、WebAPI化時のクライアント側の開発
 数学も(最初は)必要ない
 クラウドサービスなので、スケーラブルな計算リソースや
WebベースのGUIツール等が最初から提供される
 豊富なサンプルデータが用意されており、すぐに実験できる
Why don‘t you use Azure Machine Learning?
参考文献
 クラウドではじめる機械学習 Azure MLでらくらく体験
 http://www.amazon.co.jp/dp/4897979927
 Webブラウザーだけで学ぶ機械学習の「お作法」
 http://www.atmarkit.co.jp/ait/articles/1412/01/news104.html
 Using Train Matchbox Recommender for Data Without Ratings
 http://www.resolvinghere.com/sm/using-train-matchbox-recommender-for-data-
without-ratings.shtml
 「Training dataset of user-item-rating triples contains invalid data. . ( Error 0018 )」のエ
ラーにはまったとき助けられました

Contenu connexe

En vedette

人類とデプロイの歴史(ネタなのでご容赦)
人類とデプロイの歴史(ネタなのでご容赦)人類とデプロイの歴史(ネタなのでご容赦)
人類とデプロイの歴史(ネタなのでご容赦)Keiichi Hashimoto
 
Servcie Fabric and Cloud Design Pattern
Servcie Fabric and Cloud Design PatternServcie Fabric and Cloud Design Pattern
Servcie Fabric and Cloud Design PatternTakekazu Omi
 
Tuning maniax 2014 2nd stage Windows Server 2012 R2編
Tuning maniax 2014 2nd stage Windows Server 2012 R2編Tuning maniax 2014 2nd stage Windows Server 2012 R2編
Tuning maniax 2014 2nd stage Windows Server 2012 R2編Kazumi Hirose
 
インフラ専任エンジニアが一人もいないSmartNewsにおけるクラウド活用法
インフラ専任エンジニアが一人もいないSmartNewsにおけるクラウド活用法インフラ専任エンジニアが一人もいないSmartNewsにおけるクラウド活用法
インフラ専任エンジニアが一人もいないSmartNewsにおけるクラウド活用法SmartNews, Inc.
 
アパレル業界の販売予測をフーリエ解析を用いてやってみました
アパレル業界の販売予測をフーリエ解析を用いてやってみましたアパレル業界の販売予測をフーリエ解析を用いてやってみました
アパレル業界の販売予測をフーリエ解析を用いてやってみましたTakahiro Yoshizawa
 
Express Route で遊んでみた
Express Route で遊んでみたExpress Route で遊んでみた
Express Route で遊んでみたひさし
 
20160416 Azure Data Lakeのはまりどころ
20160416 Azure Data Lakeのはまりどころ20160416 Azure Data Lakeのはまりどころ
20160416 Azure Data Lakeのはまりどころ一希 大田
 
Amazonでのレコメンド生成における深層学習とAWS利用について
Amazonでのレコメンド生成における深層学習とAWS利用についてAmazonでのレコメンド生成における深層学習とAWS利用について
Amazonでのレコメンド生成における深層学習とAWS利用についてAmazon Web Services Japan
 
ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装infinite_loop
 
協調フィルタリングを利用した推薦システム構築
協調フィルタリングを利用した推薦システム構築協調フィルタリングを利用した推薦システム構築
協調フィルタリングを利用した推薦システム構築Masayuki Ota
 
KPTの基本と、その活用法
KPTの基本と、その活用法KPTの基本と、その活用法
KPTの基本と、その活用法ESM SEC
 
バンディットアルゴリズム入門と実践
バンディットアルゴリズム入門と実践バンディットアルゴリズム入門と実践
バンディットアルゴリズム入門と実践智之 村上
 
機会学習ハッカソン:ランダムフォレスト
機会学習ハッカソン:ランダムフォレスト機会学習ハッカソン:ランダムフォレスト
機会学習ハッカソン:ランダムフォレストTeppei Baba
 
今日から使える! みんなのクラスタリング超入門
今日から使える! みんなのクラスタリング超入門今日から使える! みんなのクラスタリング超入門
今日から使える! みんなのクラスタリング超入門toilet_lunch
 
ロジスティック回帰の考え方・使い方 - TokyoR #33
ロジスティック回帰の考え方・使い方 - TokyoR #33ロジスティック回帰の考え方・使い方 - TokyoR #33
ロジスティック回帰の考え方・使い方 - TokyoR #33horihorio
 
SmartNews Ads System - AWS Summit Tokyo 2015
SmartNews Ads System - AWS Summit Tokyo 2015SmartNews Ads System - AWS Summit Tokyo 2015
SmartNews Ads System - AWS Summit Tokyo 2015SmartNews, Inc.
 
Building a Recommendation Engine - An example of a product recommendation engine
Building a Recommendation Engine - An example of a product recommendation engineBuilding a Recommendation Engine - An example of a product recommendation engine
Building a Recommendation Engine - An example of a product recommendation engineNYC Predictive Analytics
 
Recommender system algorithm and architecture
Recommender system algorithm and architectureRecommender system algorithm and architecture
Recommender system algorithm and architectureLiang Xiang
 

En vedette (20)

人類とデプロイの歴史(ネタなのでご容赦)
人類とデプロイの歴史(ネタなのでご容赦)人類とデプロイの歴史(ネタなのでご容赦)
人類とデプロイの歴史(ネタなのでご容赦)
 
Servcie Fabric and Cloud Design Pattern
Servcie Fabric and Cloud Design PatternServcie Fabric and Cloud Design Pattern
Servcie Fabric and Cloud Design Pattern
 
Tuning maniax 2014 2nd stage Windows Server 2012 R2編
Tuning maniax 2014 2nd stage Windows Server 2012 R2編Tuning maniax 2014 2nd stage Windows Server 2012 R2編
Tuning maniax 2014 2nd stage Windows Server 2012 R2編
 
インフラ専任エンジニアが一人もいないSmartNewsにおけるクラウド活用法
インフラ専任エンジニアが一人もいないSmartNewsにおけるクラウド活用法インフラ専任エンジニアが一人もいないSmartNewsにおけるクラウド活用法
インフラ専任エンジニアが一人もいないSmartNewsにおけるクラウド活用法
 
アパレル業界の販売予測をフーリエ解析を用いてやってみました
アパレル業界の販売予測をフーリエ解析を用いてやってみましたアパレル業界の販売予測をフーリエ解析を用いてやってみました
アパレル業界の販売予測をフーリエ解析を用いてやってみました
 
Express Route で遊んでみた
Express Route で遊んでみたExpress Route で遊んでみた
Express Route で遊んでみた
 
20160416 Azure Data Lakeのはまりどころ
20160416 Azure Data Lakeのはまりどころ20160416 Azure Data Lakeのはまりどころ
20160416 Azure Data Lakeのはまりどころ
 
Amazonでのレコメンド生成における深層学習とAWS利用について
Amazonでのレコメンド生成における深層学習とAWS利用についてAmazonでのレコメンド生成における深層学習とAWS利用について
Amazonでのレコメンド生成における深層学習とAWS利用について
 
ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装
 
協調フィルタリングを利用した推薦システム構築
協調フィルタリングを利用した推薦システム構築協調フィルタリングを利用した推薦システム構築
協調フィルタリングを利用した推薦システム構築
 
KPTの基本と、その活用法
KPTの基本と、その活用法KPTの基本と、その活用法
KPTの基本と、その活用法
 
バンディットアルゴリズム入門と実践
バンディットアルゴリズム入門と実践バンディットアルゴリズム入門と実践
バンディットアルゴリズム入門と実践
 
決定木学習
決定木学習決定木学習
決定木学習
 
機会学習ハッカソン:ランダムフォレスト
機会学習ハッカソン:ランダムフォレスト機会学習ハッカソン:ランダムフォレスト
機会学習ハッカソン:ランダムフォレスト
 
今日から使える! みんなのクラスタリング超入門
今日から使える! みんなのクラスタリング超入門今日から使える! みんなのクラスタリング超入門
今日から使える! みんなのクラスタリング超入門
 
ロジスティック回帰の考え方・使い方 - TokyoR #33
ロジスティック回帰の考え方・使い方 - TokyoR #33ロジスティック回帰の考え方・使い方 - TokyoR #33
ロジスティック回帰の考え方・使い方 - TokyoR #33
 
一般向けのDeep Learning
一般向けのDeep Learning一般向けのDeep Learning
一般向けのDeep Learning
 
SmartNews Ads System - AWS Summit Tokyo 2015
SmartNews Ads System - AWS Summit Tokyo 2015SmartNews Ads System - AWS Summit Tokyo 2015
SmartNews Ads System - AWS Summit Tokyo 2015
 
Building a Recommendation Engine - An example of a product recommendation engine
Building a Recommendation Engine - An example of a product recommendation engineBuilding a Recommendation Engine - An example of a product recommendation engine
Building a Recommendation Engine - An example of a product recommendation engine
 
Recommender system algorithm and architecture
Recommender system algorithm and architectureRecommender system algorithm and architecture
Recommender system algorithm and architecture
 

Plus de Shuto Suzuki

段階的なシステムリプレースを実現するデータ同期技術
段階的なシステムリプレースを実現するデータ同期技術段階的なシステムリプレースを実現するデータ同期技術
段階的なシステムリプレースを実現するデータ同期技術Shuto Suzuki
 
TypeScriptでCLIアプリケーション開発
TypeScriptでCLIアプリケーション開発TypeScriptでCLIアプリケーション開発
TypeScriptでCLIアプリケーション開発Shuto Suzuki
 
1年でモダンなフロントエンドに追いついた話 2019-08-22 Mix Leap Joint #26
1年でモダンなフロントエンドに追いついた話  2019-08-22 Mix Leap Joint #261年でモダンなフロントエンドに追いついた話  2019-08-22 Mix Leap Joint #26
1年でモダンなフロントエンドに追いついた話 2019-08-22 Mix Leap Joint #26Shuto Suzuki
 
20190706 BCU30 事業を変えるシステムリプレース
20190706 BCU30 事業を変えるシステムリプレース20190706 BCU30 事業を変えるシステムリプレース
20190706 BCU30 事業を変えるシステムリプレースShuto Suzuki
 
Cognitive Complexity でコードの複雑さを定量的に計測しよう
Cognitive Complexity でコードの複雑さを定量的に計測しようCognitive Complexity でコードの複雑さを定量的に計測しよう
Cognitive Complexity でコードの複雑さを定量的に計測しようShuto Suzuki
 
MySQLオンラインマイグレーションツールgh-ostで深夜メンテナンスを無くした話
MySQLオンラインマイグレーションツールgh-ostで深夜メンテナンスを無くした話MySQLオンラインマイグレーションツールgh-ostで深夜メンテナンスを無くした話
MySQLオンラインマイグレーションツールgh-ostで深夜メンテナンスを無くした話Shuto Suzuki
 
Monaco Editor on Cloud
Monaco Editor on CloudMonaco Editor on Cloud
Monaco Editor on CloudShuto Suzuki
 
Microsoft Azureで 女子力を生成する
Microsoft Azureで 女子力を生成するMicrosoft Azureで 女子力を生成する
Microsoft Azureで 女子力を生成するShuto Suzuki
 

Plus de Shuto Suzuki (8)

段階的なシステムリプレースを実現するデータ同期技術
段階的なシステムリプレースを実現するデータ同期技術段階的なシステムリプレースを実現するデータ同期技術
段階的なシステムリプレースを実現するデータ同期技術
 
TypeScriptでCLIアプリケーション開発
TypeScriptでCLIアプリケーション開発TypeScriptでCLIアプリケーション開発
TypeScriptでCLIアプリケーション開発
 
1年でモダンなフロントエンドに追いついた話 2019-08-22 Mix Leap Joint #26
1年でモダンなフロントエンドに追いついた話  2019-08-22 Mix Leap Joint #261年でモダンなフロントエンドに追いついた話  2019-08-22 Mix Leap Joint #26
1年でモダンなフロントエンドに追いついた話 2019-08-22 Mix Leap Joint #26
 
20190706 BCU30 事業を変えるシステムリプレース
20190706 BCU30 事業を変えるシステムリプレース20190706 BCU30 事業を変えるシステムリプレース
20190706 BCU30 事業を変えるシステムリプレース
 
Cognitive Complexity でコードの複雑さを定量的に計測しよう
Cognitive Complexity でコードの複雑さを定量的に計測しようCognitive Complexity でコードの複雑さを定量的に計測しよう
Cognitive Complexity でコードの複雑さを定量的に計測しよう
 
MySQLオンラインマイグレーションツールgh-ostで深夜メンテナンスを無くした話
MySQLオンラインマイグレーションツールgh-ostで深夜メンテナンスを無くした話MySQLオンラインマイグレーションツールgh-ostで深夜メンテナンスを無くした話
MySQLオンラインマイグレーションツールgh-ostで深夜メンテナンスを無くした話
 
Monaco Editor on Cloud
Monaco Editor on CloudMonaco Editor on Cloud
Monaco Editor on Cloud
 
Microsoft Azureで 女子力を生成する
Microsoft Azureで 女子力を生成するMicrosoft Azureで 女子力を生成する
Microsoft Azureで 女子力を生成する
 

Dernier

PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 

Dernier (7)

PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 

かんたん機械学習はじめの1歩AzureMachineLearningでTweetをレコメンド