【オンライン】ゆるふわマシンラーニング vol.4 - connpass https://enebular.connpass.com/event/178062/
俺のゆるふわマシーンラーニングとは昨今、Google AutoMLやAzureML、AWS Sagemakerなど、クラウド上のMLサービスが一般的になりつつあります。 そういったクラウドMLサービスをゆるふわに学べる・共有できる勉強会です。
View Slide
俺の質問はTwitterで受付中!● 質問やコメントはTwitterで!YouTubeではないので注意● ハッシュタグ は #yurufuwaml
俺の本日の流れ19:30〜19:35 オープニング19:35〜20:50 LT(1名15分程度)* 5名20:50〜21:00 パネルディスカッション21:00〜21:10 アンケート&今後のご案内
俺の発表者一覧1. 俺のNETFLIX〜今度こそクラウドでレコメンド実装する〜(hidefさん)2. Web Speech APIとGoogle Cloud Speech to Textを比較した話(仮)(masakazu_kawazuさん)3. ラズパイは俺の嫁!GoogleAutoMLで作る音声アシスタント(ringoさん)4. 映像を掛け合わせて新しい映像を生み出したい!(notitle420さん)5. enebular x Teachable Machine x LINE Bot (仮)(がおまるさん)
俺のLT登壇者の皆さまへ● 【REC】に近い場所に移動してLT!● スライドはステージ側に大きく投影!● 上記の準備含めて15分だとちょうどいいかも● 音声ONで他の登壇者のLTにリアクションしてくれると嬉しみが深い
俺の2020-07-02 Thu ゆるふわマシーンラーニング#4@hidefkn
俺の自己紹介• Twitter @hidefkn• Facebook hidefkn▼おすすめのネトフリ視聴コンテンツ『かぐや様は告らせたい』いまいちって言っちゃったけど、きちんと見始めたら普通にハマった『梨泰院クラス』もいいけど、『人間レッスン』韓流ナメてた。ただし長いので、仕事をサボる覚悟が必要()7
俺の2020 ?シーズンシーズン1-1を再生他のエピソード類似する作品音声および字幕マイリストに追加俺のマッチ度: 96%ゆるふわマシーンラーニングの登壇することになった!しかし、登壇テーマが決まらない。この機会に、ネットフリックスに使われている機械学習の技術をゆるふわに学んでいくが悪戦苦闘!出演: 深野嗣ゆるふわな機械学習、ティーン向け、パワポだけ無駄にこだわる8
俺のネトフリをつくるという壮大な趣味• 映画視聴評価のオープンデータを使ってレコメンドシステムをつくる• クラウドMLを使う• ゆるく開発する9
俺のGoogle Recommendations AI(β)を使いこなせなくてオワコンしたSeason1までの『俺のNETFLIX』10
俺のGoogleに別れを告げて、AWSに向き合った話1. Amazon Personalize とは2. Amazon Personalize を使ってレコメンドを作ってみた3. Amazon Personalize で推薦結果を取得してみたSeason2のあらすじ11
ゆるふわマシーンラーニング #42020-07-02 Thu俺のNETFLIXに使われている機械学習技術(再掲)
俺のNETFLIXには、推薦システムに機械学習が使われているあなたの視聴履歴とコンテンツ評価のデータをもとに、機械が「あなたにイチオシ !」の作品を推薦(推奨)するシステム13推薦システム
俺の推薦のアウトプットはマッチ度と呼ばれる “確率”で出力されるあなたの視聴履歴とコンテンツ評価のデータをもとに、機械が「あなたにイチオシ !」の作品を推薦(推奨)するシステム14
俺の推薦システムは一生かけても見きれない映画作品を絞込んでくれるFilm Exhibition Yearbook |2018 から抜粋15• 年間1,200件の映画作品が公開されている• 一方、日本人は年間1.4回しか映画を鑑賞しない• もしも、作品を全部鑑賞するのであれば、1日に3.3作品以上見る必要がある• 1作品2時間だと仮定すると、6時間以上も必要!• 絶対ムリ! 映画を全部見るのは絶対ムリ!• 「あなたにイチオシ!」とオススメしてくれる推薦システムは…• わざわざ、自分に合った作品を探さなくて済む!• つまり、ユーザーの貴重な時間を無駄にしない神テクノロジー!
ゆるふわマシーンラーニング #42020-07-02 Thu俺のAmazon Personalize とは
俺のAmazon Personalizeとは17引用: Amazon Personalize
俺のAmazon Personalizeとは18機械学習の経験がほとんどない開発者がパーソナライゼーションとレコメンデーションを作れるフルマネージドサービスつまり、非常にゆるくMLできる
俺のAmazon Personalize の仕組み19引用: Amazon Personalize
俺のSTEP1 S3か専用のAPIを使ってデータを取り込む20引用: Amazon Personalizeデータ準備
俺のSTEP2 いい感じにモデル構築してくれる(AutoML)21引用: Amazon Personalizeモデル構築
俺のSTEP3 モデルをAPIにして自分のサービスに組み込める22引用: Amazon PersonalizeAPI
俺のゆるく試す分には、無料でいけると思う23引用: Amazon Personalize● 期間 初回利用から2ヶ月間● データ処理およびストレージ 毎月最大 20GB● トレーニング 毎月最大 100 トレーニング時間● レコメンデーション 最大 50 TPS 時間 即時推薦/月
ゆるふわマシーンラーニング #42020-07-02 Thu俺のAmazon Personalize でレコメンドシステムを作ってみた
俺のもちろん AWSに登録する25
俺のAmazon Personalize を使う方法は3つある1. Amazon Personalize 専用コンソールから使う2. AWS CLI から使う3. AWS SDK から使う今回は、専用コンソール(1)でやってみた26
俺の権限のセットアップ27• S3バケットにアップロードしたデータを使って、学習をおこなう• そのためS3やPersonalizeへのアクセスを許可する設定作業が必要• クラウドいじったことある人なら難しくないけど、初学者ならちょっとだけハマるかも
俺のPersonalize用のロールをつくる28
俺のこの3つの許可があればおk29
俺のデータの準備30非常にゆるくMLできるサービスの罠そのままインポートできるレベルの高品質データじゃないとマジで使い始められない
俺の俺のNETFLIXに使用するデータセットは、 MovieLensと呼ばれる映画に関するオープンデータ31• MovieLensは米国ミネソタ大学の研究室GroupLensによって提供されているオープンデータセット• 天才NETFLIXデータサイエンティストの機械学習を学ぶために、 天才たちが提供するデータセットを使うhttps://movielens.org/
俺の今回は2018年9月9日に更新された 1MBの一番軽いデータセットを使うことにした32ml-latest-small.zipratings.csvmovies.csvtags.csvlinks.csv• 600人のユーザーが• 9,000本の映画作品の中から• 視聴した作品を評価したデータ• 作品に対してハッシュタグもつけている• 評価件数は100,000件ふ〜ん(?)
俺の評価ってこうやって保存しているのが雰囲気でわかってきたratings.csv33このファイルだけで• 誰が(userId)• いつ(timestamp)• どんな映画作品(movieId)を• どのように評価(rating)したのかがわかる!
俺の何をレコメンドするの?を考えるユーザーが高評価しそうな作品をレコメンドしたい↓● 高評価って具体的にいくつよ?● 学習しすぎたら請求額やばいよ?● 評価された時期どうするの?● データが規則正しすぎたら学習に支障でるよ?34
俺のゆるくMLするので、ご容赦くださいユーザーが高評価しそうな作品をレコメンドしたい↓● 高評価って具体的にいくつよ? 食べログパクる(rating<3.6〜● 学習しすぎたら請求額やばいよ? 10,000行未満● 評価された時期どうするの? 今回は考慮しない● データが規則正しすぎたら学習に支障でるよ? シャッフルする35
俺のGogoleColabで前処理した(まずシャッフル)36• DeepLearningの学習でもよくつかう、PythonのMLライブラリのScikit-learnから• shuffleメソッドを拝借
俺の3.6より大きい評価のデータだけを残す37
俺の10,000行までに抑えておく38
俺のboto3(AWS SDK for python)使えるけど、csv出力した39
俺のよしなにS3に加工済みデータをうp40
俺の前準備完了ここからやっとPersonalize
俺のAmazon Personalizeにもどる42
俺のデータセットグループをつくる•43
俺のスキーマを設定する44• ここで少しハマったので、データ準備のときに列名変換を事前に行った• データ型は問題なかった
俺のさっきつくったロールとS3バケットを紐付ける45• 事前に作らなくてもここまでいける• でも結局ここで作る羽目になる
俺の正しくデータセットグループを作れた46
俺のモデル構築にうつる(ソリューションと呼んでる)47
俺のモデルの種類を選ぶ• 事前に複数種類選べる• なぜかレシピと呼ばれている• 今回は、HRNN(階層的再帰型ニューラルネットワーク )を選択。• ユーザーが選ぶであろう作品IDを推論するイメージ48
俺の手動調整もできるけど、今回はおまかせモード• 作ってみて微調整したいなって思ったときに、再学習させることができるのは便利49
俺のあつ森やってる間に、モデルできてた50
ゆるふわマシーンラーニング #42020-07-02 Thu俺のAmazon Personalize で推薦結果を取得してみる
俺のキャンペーンを作成する• 学習済みモデルでテストをしたり• 作ったモデルを何かしらにアウトプットするプロセス52
俺のさっき作った学習済みモデルを選ぶ• キャンペーン名• ソリューション(モデルのこと)53
俺のキャンペーンできた54
俺の予測したいユーザーIDを入力して、レコメンド開始!55
俺のmovieIdがどんな映画作品を指しているのかも、わかってきたmovies.csv56
俺の作品IDとスコアが返される(スコア低すぎる気がしてるがご容赦ください)57Shawshank Redemption, The (1994)Pulp Fiction (1994)Picture Perfect (1997)Picture Perfect (1997)• 318 ドラマ,クライムフィクション• 296 コメディ, クライム• 593 ロマンス, コメディクライム、コメディ系的なのを薦めるって感じだと思われるIDで返されるので、検証はしづらい
ゆるふわマシーンラーニング #42020-07-02 Thu俺の使ってみて思ったこと
俺のやってみて思ったこと59• シーズン1の借りを返した• 権限周りの設定に少しハマった• レシピ(Recipe)がめちゃくちゃ便利• 学習からモデル構築まで3時間もかからなかった• 検証環境は別で作ったほうが良いと思った• Google(GC)よりAmazon(AWS)派になったかも• なお実務ではMS(Azure)の模様
俺のSeason2 完