【機械学習】AzureMLで合唱音楽レコメンドシステムTwitter Librarian作ってみた
Microsoft Azure Machine Learning(Azure ML)を使って、
- 合唱音源の新着情報 (twitter@s2terminal) の被リツイート情報
- 合唱音源の新着情報.com のツイート毎のデータベース内の情報
以上を組み合わせて、RTを評点としてAzure Match Box Recommender モジュールに突っ込むことで、おすすめのツイートを取得するシステムTwitter Librarianを作りました。
現在はサービスとして公開はしておりません。 ローカルで調整中の段階ですが、 約3,000件のリツイート情報、約800件のツイート投稿データ、約1,500件のツイート詳細データ(タグ情報)を用いることで、指定したTwitterユーザに対するおすすめツイートを取得できるようになっています。
作曲者や演奏者情報がツイート詳細データとして入力されて学習に用いられるので、好きな作曲家や合唱団の傾向が反映されるのではないかと思います。
APIを叩くソースコード
Azure ML上でWeb APIにデプロイすると C#、Python、R言語の3種類のクライアント用サンプルコードを提供してもらえます。 しかしRubyは無かったので自前で書きました。
その他の技術的な詳細は多分そのうち書きます。
課題
RTが多いツイートのレコメンドに偏ってしまう
普段2,3RTしかされないアカウントの中に極稀に70RTとかの投稿があるので、誰に対してもそういう特定のツイートばかりレコメンドされてしまいます。言われてみればそうなのですが、人によって様々な結果が返ってこないと面白くありません。
知らない曲を発掘してくれるようなシステムでないとあまり意味がありません。 RT数が少ないツイートに対して高い評点を付けるよう調整することで対策を予定しています。
データを増やしたい
現状TwitterのRT情報しか取れていません。 いいね(お気に入り)も取りたいのですが、Twitter APIが存在しません。
Facebookのお気に入り/シェア情報も、数が増えてきたら付け加えようと思います。
料金が難解
上記によると、たとえばスタジオ実験時間で時間割り102円?とあります。 実験時間が何を指しているのか不明ですが万が一実験しっぱなしだったとして1日2,400円??1ヶ月で7万5千円???となると恐ろしいです。iPadが買えます。
しばらく運用してみないとよく分かりません。 課金アラートを厳重に設定して、あとは様子を見てみます。
参考文献
- Using Train Matchbox Recommender for Data Without Ratings
- クラウドではじめる機械学習 Azure MLでらくらく体験 : 脇森浩志, 杉山雅和, 羽生貴史 : 本 : Amazon.co.jp
追記
喋りました↓
www.slideshare.net