Submit Search
Upload
初心者機械学習:アーティスト推薦システム
•
Download as PPTX, PDF
•
0 likes
•
2,990 views
T
taichi nishimura
Follow
西区プログラムのスライドです。 大学生が流行りの機械学習を試してみました。
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 29
Download now
Recommended
01 koukai-20170310-muraoka-hat-presen-okp
01 koukai-20170310-muraoka-hat-presen-okp
Yumiko Hatanaka
伊能社中の一億総伊能化計画
伊能社中の一億総伊能化計画
Hiroaki Sengoku
Deeplearningと髪型レコメンドへの応用
Deeplearningと髪型レコメンドへの応用
taichi nishimura
音のチカラ -サウンドの重要性について-
音のチカラ -サウンドの重要性について-
Daisuke Mizuno
マルコフモデルを仮定した位置情報開示のためのアドバーザリアルプライバシ
マルコフモデルを仮定した位置情報開示のためのアドバーザリアルプライバシ
Junpei Kawamoto
ランキングを利用した協調フィルタリング手法の提案
ランキングを利用した協調フィルタリング手法の提案
洸人 高橋
SIG-ARG#04 劇場版BLOOD-C事例紹介 講演資料
SIG-ARG#04 劇場版BLOOD-C事例紹介 講演資料
SIG-ARG: @epi_x
elzup 自己紹介
elzup 自己紹介
洸人 高橋
Recommended
01 koukai-20170310-muraoka-hat-presen-okp
01 koukai-20170310-muraoka-hat-presen-okp
Yumiko Hatanaka
伊能社中の一億総伊能化計画
伊能社中の一億総伊能化計画
Hiroaki Sengoku
Deeplearningと髪型レコメンドへの応用
Deeplearningと髪型レコメンドへの応用
taichi nishimura
音のチカラ -サウンドの重要性について-
音のチカラ -サウンドの重要性について-
Daisuke Mizuno
マルコフモデルを仮定した位置情報開示のためのアドバーザリアルプライバシ
マルコフモデルを仮定した位置情報開示のためのアドバーザリアルプライバシ
Junpei Kawamoto
ランキングを利用した協調フィルタリング手法の提案
ランキングを利用した協調フィルタリング手法の提案
洸人 高橋
SIG-ARG#04 劇場版BLOOD-C事例紹介 講演資料
SIG-ARG#04 劇場版BLOOD-C事例紹介 講演資料
SIG-ARG: @epi_x
elzup 自己紹介
elzup 自己紹介
洸人 高橋
歌声分析のエンタテイメント応用
歌声分析のエンタテイメント応用
Akinori Ito
音楽で理解する情報科学のいろは
音楽で理解する情報科学のいろは
kthrlab
LSTM (Long short-term memory) 概要
LSTM (Long short-term memory) 概要
Kenji Urai
機械学習アルゴリズムの絵本
機械学習アルゴリズムの絵本
Hirokazu Nishio
20161112 第17回 全脳アーキテクチャ若手の会 勉強会 カジュアルトーク 「AI技術をサービスで活用するには?」 アディッシュ池谷
20161112 第17回 全脳アーキテクチャ若手の会 勉強会 カジュアルトーク 「AI技術をサービスで活用するには?」 アディッシュ池谷
Masao Ikeya
20160601画像電子学会
20160601画像電子学会
nlab_utokyo
カンバン駆動開発チュートリアル
カンバン駆動開発チュートリアル
洸人 高橋
機械学習フレームワーク横断、Chainer, Keras
機械学習フレームワーク横断、Chainer, Keras
Teppei Murakami
Chainerの使い方と自然言語処理への応用
Chainerの使い方と自然言語処理への応用
Yuya Unno
言語と知識の深層学習@認知科学会サマースクール
言語と知識の深層学習@認知科学会サマースクール
Yuya Unno
Machine Translation Introduction
Machine Translation Introduction
nlab_utokyo
人工知能(AI)の現況と、ビジネスへの活用
人工知能(AI)の現況と、ビジネスへの活用
Koichi Masukura
Gulp入門 - コーディングを10倍速くする
Gulp入門 - コーディングを10倍速くする
Hayashi Yuichi
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例
Recruit Technologies
DeNAの機械学習・深層学習活用した体験提供の挑戦
DeNAの機械学習・深層学習活用した体験提供の挑戦
Koichi Hamada
推薦システムを構築する手順書 with Azure Machine Learning
推薦システムを構築する手順書 with Azure Machine Learning
Masayuki Ota
Ctfのためのpython入門
Ctfのためのpython入門
shiracamus
マシンパーセプション研究におけるChainer活用事例
マシンパーセプション研究におけるChainer活用事例
nlab_utokyo
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & Tricks
SlideShare
Getting Started With SlideShare
Getting Started With SlideShare
SlideShare
More Related Content
Viewers also liked
歌声分析のエンタテイメント応用
歌声分析のエンタテイメント応用
Akinori Ito
音楽で理解する情報科学のいろは
音楽で理解する情報科学のいろは
kthrlab
LSTM (Long short-term memory) 概要
LSTM (Long short-term memory) 概要
Kenji Urai
機械学習アルゴリズムの絵本
機械学習アルゴリズムの絵本
Hirokazu Nishio
20161112 第17回 全脳アーキテクチャ若手の会 勉強会 カジュアルトーク 「AI技術をサービスで活用するには?」 アディッシュ池谷
20161112 第17回 全脳アーキテクチャ若手の会 勉強会 カジュアルトーク 「AI技術をサービスで活用するには?」 アディッシュ池谷
Masao Ikeya
20160601画像電子学会
20160601画像電子学会
nlab_utokyo
カンバン駆動開発チュートリアル
カンバン駆動開発チュートリアル
洸人 高橋
機械学習フレームワーク横断、Chainer, Keras
機械学習フレームワーク横断、Chainer, Keras
Teppei Murakami
Chainerの使い方と自然言語処理への応用
Chainerの使い方と自然言語処理への応用
Yuya Unno
言語と知識の深層学習@認知科学会サマースクール
言語と知識の深層学習@認知科学会サマースクール
Yuya Unno
Machine Translation Introduction
Machine Translation Introduction
nlab_utokyo
人工知能(AI)の現況と、ビジネスへの活用
人工知能(AI)の現況と、ビジネスへの活用
Koichi Masukura
Gulp入門 - コーディングを10倍速くする
Gulp入門 - コーディングを10倍速くする
Hayashi Yuichi
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例
Recruit Technologies
DeNAの機械学習・深層学習活用した体験提供の挑戦
DeNAの機械学習・深層学習活用した体験提供の挑戦
Koichi Hamada
推薦システムを構築する手順書 with Azure Machine Learning
推薦システムを構築する手順書 with Azure Machine Learning
Masayuki Ota
Ctfのためのpython入門
Ctfのためのpython入門
shiracamus
マシンパーセプション研究におけるChainer活用事例
マシンパーセプション研究におけるChainer活用事例
nlab_utokyo
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & Tricks
SlideShare
Getting Started With SlideShare
Getting Started With SlideShare
SlideShare
Viewers also liked
(20)
歌声分析のエンタテイメント応用
歌声分析のエンタテイメント応用
音楽で理解する情報科学のいろは
音楽で理解する情報科学のいろは
LSTM (Long short-term memory) 概要
LSTM (Long short-term memory) 概要
機械学習アルゴリズムの絵本
機械学習アルゴリズムの絵本
20161112 第17回 全脳アーキテクチャ若手の会 勉強会 カジュアルトーク 「AI技術をサービスで活用するには?」 アディッシュ池谷
20161112 第17回 全脳アーキテクチャ若手の会 勉強会 カジュアルトーク 「AI技術をサービスで活用するには?」 アディッシュ池谷
20160601画像電子学会
20160601画像電子学会
カンバン駆動開発チュートリアル
カンバン駆動開発チュートリアル
機械学習フレームワーク横断、Chainer, Keras
機械学習フレームワーク横断、Chainer, Keras
Chainerの使い方と自然言語処理への応用
Chainerの使い方と自然言語処理への応用
言語と知識の深層学習@認知科学会サマースクール
言語と知識の深層学習@認知科学会サマースクール
Machine Translation Introduction
Machine Translation Introduction
人工知能(AI)の現況と、ビジネスへの活用
人工知能(AI)の現況と、ビジネスへの活用
Gulp入門 - コーディングを10倍速くする
Gulp入門 - コーディングを10倍速くする
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例
DeNAの機械学習・深層学習活用した体験提供の挑戦
DeNAの機械学習・深層学習活用した体験提供の挑戦
推薦システムを構築する手順書 with Azure Machine Learning
推薦システムを構築する手順書 with Azure Machine Learning
Ctfのためのpython入門
Ctfのためのpython入門
マシンパーセプション研究におけるChainer活用事例
マシンパーセプション研究におけるChainer活用事例
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & Tricks
Getting Started With SlideShare
Getting Started With SlideShare
初心者機械学習:アーティスト推薦システム
1.
機械学習/ アーティスト推薦システム
2.
自己紹介 みそぎ 九州大学芸術工学部の二回生 Twitter(@misogil0116) 4月からWebプログラミングをし始めた。 現在はRailsのエンジニアとしてインターン中 機械学習に本格的に取り組んだのはこの夏 自動作曲などに興味が出始めた 趣味はギター,はてブ,音楽鑑賞
3.
Do you know
ART-SCHOOL?
4.
ART-SCHOOLは知らなくても..
5.
問題点 • バンドだけに絞ったとしても、wikipediaにのっているアーティ スト数で3000は超える…シンガーソングライターや他ソロアー ティスト、音楽グループを含めると膨大な数になる。 • そもそも、どうやって「そのバンドが好きならこちらのバンドを 好む」を再現する? 機械学習にたどり着く
6.
機械学習 既存のデータから、新しいデータに対しての予測をする 従来のプログラムと違い、データを学習することで、 予測モデルを変化させていく。 Amazonの「こちらの商品を買った人はこちらも..」などはこのシステムを 用いることで実現している。
7.
データはどうする? • 機械学習をするためには膨大なデータが必要。 • Amazonはそれを明示的/暗示的にとっている。 (参考:minneの三宅さんの記事) http://sssslide.com/speakerdeck.com/monochromegane/pepabo- log-infrastructure-bigfoot (サービスに寄り添うログ基盤) ユーザの好みを反映したものを作るためには、何がいいのだろう… Twitterの#NowPlayingのハッシュタグを取 得し、そこのツイートデータからユーザごと に聴いているアーティストをとればよい!
8.
アーティストを出すモデル(結論) Wikipediaの情報から、アーティストをおおきく10個のグループへクラスタリング …(1) ユーザが入力したアーティストと同じクラスタのアーティストを算出, Twitterのツイートから協調フィルタリングを使ってアーティストを出す. (2)
9.
Twitterデータだけじゃなくて? • ユーザのツイートを大体tweepyを使って2GBぐらい集めてみ て,ユーザが大体70万件の行,アーティストが3500(現在:バン ドのみ)であり、演算に時間がかかりすぎる。うえに精度が出 ない。 • そこで、先に数を減らすべく(一種の次元削減),アーティストを wikipediaの文書情報からクラスタリングをすることにした。 データ元は、DBpediaを利用。 Linked
Dataで簡単にデータを獲得可能。 http://ja.dbpedia.org/
10.
イメージ BUMP OF CHCIEKN RADWIMPS 西野カナ
嵐 Alice 1 ? ? ? User1 1 1 1 1 User2 1 0 1 0 User3 0 1 0 0 User4 1 0 1 0 User5 0 0 1 1 User6 0 1 1 0
11.
イメージ BUMP OF CHCIEKN RADWIMPS 西野カナ
嵐 Alice 1 ? ? ? User1 1 1 1 1 User2 1 0 1 0 User3 0 1 0 0 User4 1 0 1 0 User5 0 0 1 1 User6 0 1 1 0 今回はこのように, 1.Userのinputしたアーティストを少なくとも一件は聴いている 2.Userのinputしたアーティストと同じクラスタのアーティスト達 の2つでデータを絞り込むことによって,行列演算の精度を上げようと考えた。
12.
(1)K-meansでクラスタリング • 機械学習で行うクラスタリング手法。 • 最初にK個の点を決めておき,その点からベクトルのユーク リッド距離が短いものをクラスタへ,そのk個のクラスタの中で 重心を取り,そして同様の処理へ。点が動かなくなった時点で クラスタリングをおしまい。 言葉で言われてもわからないと思う ので。。。 重心って平均の形じゃん!(加重平均)
13.
(1)二次元空間での図解
14.
15.
16.
17.
18.
ソースコードは全て pythonによるもの。 Mecabを使って、文書を 24万次元ほどに分割し ている。 Importは省略しています。 機械学習のためのライブ ラリであるScikit-learnを 使ってさきほどのK- meansが簡単に行うこと ができる。
19.
(1)結果
20.
(2)Twitterデータから協調フィルタリング • 協調フィルタリングとは何? • おおざっぱにいうと、自分が好みそうなアイテムを,ピアユーザ (自分に似たユーザ)を探して推薦してくれるシステム •
AmazonやNetflixなどの大手企業でも使われている手法 ピアユーザをどうやってさがすの? メインで使われているのは、「ピアソンの相関係数」
21.
(2)協調フィルタリングの原理 アイテム1 アイテム2 アイテム3
アイテム4 アイテム5 アリス 5 3 4 4 ? User1 3 1 2 3 3 User2 4 3 4 3 5 User3 3 3 1 5 4 User4 1 5 5 2 1 私はアリスに対してアイテム5を推薦するべきかどうか? 1.ピアユーザの決定 前に出たピアソン相関係数から算出。 User1~4はそれぞれ,類似度が 0.85, 0.70, 0.00, -0.79
22.
(2)協調フィルタリングの原理2 2.アリスのアイテム5に対する評価の値を出す。 u’には、ピアユーザのUser1,User2を使って計算。 算出されたのは4.87という値で、これは5段階評価では高いと考え られるので、アリスにアイテム5は紹介されるべきと考えられる。
23.
(2)Tweetデータから協調フィルタリング(データ整 形) Json形式でtweepy からかえってくるの で、numpy(python の行列演算ライブラ リ)で扱える形に変 換していく。 ユーザごとに並べて 3000次元の列に変 換。 聞いていたら1がつ く形にして,何回も聞 いていたらそれに応 じてリッカード尺度 調整。
24.
(2)結果 失敗しているよ うに見えるが、 横にいくにつれ てなんらか1が ついている。 よこのナンバー はUserに一意 につけられたid である。 Pickleにするこ とによってデー タをバイナリに して軽量化して 実際は書き出し ています。
25.
次元削減を用いた協調フィルタリング • 実際にはデータが疎すぎるが故に,協調フィルタリングで有益な情 報を得ることができない。いわゆる次元の呪い。 • そんな大きいデータを高次元のデータの特徴をできるだけ保持した まま低次元のデータへ変換する,ということ。これがいわゆる次元削 減 •
配列の[0….1....2...0]の0というデータは,「評価値0」なのではなく, 「まだ聞いたことがない」という意味。そこに着目したのが MatrixFactorizationという次元削減手法
26.
Matrix Factorization 行列のデータをUserの行×Itemの列で,元々の行列のデータをよりよく反映 したと考えられる行列へ分解する。
27.
Matrix Factorization 具体的なパラメータの更新には以下を使えばうまく更新されることが知られ ている。 これによって、0という情報を保持しながら,次元の削減を行うことができるよ うになった。 値のあるところでのみ最適化を行うMatrixFactorizationが推薦システムに は効果的である。
28.
(2)次元削減を用いた協調フィルタリングの実装 行列の演算には, 最適化手法のう ちの,最急降下 法という手法を 用いて演算を 行っている。
29.
まとめ • しかし、まだまだ調整が必要。多く聞かれているアーティストへの局所解に偏る のをなんとかしたい。自分でなんらかの評価値を設けることが必要か。 • 1度も聞かれていないアーティストは協調フィルタリングが使えない…歌詞から 関連を探ろうと思う。 •
ミュージシャンを好む本質をこれから改良して探っていきたい。 そしてバンド活動,音楽熱に応用したい(欲望)/ バンディットアルゴリズムでライブに歌われる曲を予測…とか面白いかもしれな い。。。 ・機械学習もpythonもすごく楽しい。あるきっかけで音楽情報処理の仕事を受けさ せてもらえそうなので,深層学習に踏み入りたい。 ご静聴ありがとうございました。
Editor's Notes
Syrup16g,BUMP OF CHICKEN きのこ帝国
明示的には、レビュー評価 暗示的には、ログを解析することによる。
データもとがわかったところで、先にアーティストを如何にして出すか、の結論の紹介 ここから難しい話になる。
ここで後述するクラスタリングからBUMPとRADは同じ5番のグループになる。
最初は適当に色を割り当てている。
色ごとに重心をとっています
一番近い重心の色に変わっていく。
重心をそれぞれのクラスタでとりなおすと、ばつの部分が移動します。
再度重心から距離を計算し、近いところへ色を変更します…こういうながれをばつが移動しなくなるまでやる。
クラスタに偏りはあるものの、大体300~400程度のクラスタに分割することができた。
ユーザ1,ユーザ2が近いことを協調しておく。
Netfilxのコンペで採用された手法
Download now