機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -
-
Upload
masakazu-ishihata -
Category
Education
-
view
2.835 -
download
5
description
Transcript of 機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -
機械学習でお小遣いを稼ぐ!
- 本推薦 Twitter bot の紹介 -
佐藤研究室
石畠正和
工大祭 2012
機械学習
• 目的
–人間が自然に行なっていることを機械にも学習させる
–人間ではできないようなことを機械に学習させる
• 有名な例
–スパムメールフィルタ
–手書き文字認識/顔認識
–情報推薦
12/10/6-7 工大祭
スパム?
1 or 7?
○○さんに メールです
情報推薦 • 目的
–対象に “有用な” 情報を推薦する
• 有名な例: 商品推薦システム
–対象に “適切な” 商品・サービスを推薦する
「この商品を買った人はこんな商品も買っています」
12/10/6-7 工大祭
自分も情報推薦で小遣いを稼ぎたい!
アフィリエイト (成功報酬型広告)
• インターネット上の新たな広告の形態 –通常の広告
• 広告を載せると広告料をもらえる
–アフィリエイト • 広告がクリックされたとき
• 広告から直接商品が購入されたとき
にのみ広告料をもらえる
• アフィリエイトの利用 – Amazon アソシエイト
–楽天 アフィリエイト
12/10/6-7 工大祭
情報推薦 + アフィリエイト
• 野望 1. ユーザの興味を機械学習で推定
2. ユーザに “適切な” 商品を紹介(アフィリエイト)
3. ユーザが実際に購入
4. お小遣い (広告料) Get !!
• 実際に作ろう! – 誰に?
– 何を?
– どこで?
– どうやって?
booklog ユーザに 本・漫画を Twitter 上で bot として クラスタリングを使って!
12/10/6-7 工大祭
booklog ユーザ向け 本推薦 Twitter bot の紹介
keywords
booklog, Twitter, bot
booklog [booklog.jp]
• ソーシャル本棚サービス – ユーザ数 30 万人弱
• 主な機能 – 蔵書管理
• 商品情報 • 評価 • レビュー
– 本棚のフォロー – 推薦機能はない
• Twitter と連携できる
12/10/6-7 工大祭
Twitter [twitter.com]
• マイクロブログサービス “つぶやき”
= 上限140文字の投稿
“タイムライン”
= フォローしているユーザの
つぶやきが表示される
「はじめまして!お世話になっております!!(ツイッターでは)」
12/10/6-7 工大祭
Twitter bot
• Twitter bot = 自動呟きプログラム – bot = robot
• bot の種類 – ニュース系 テレビ・新聞・雑誌
– 便利系 地震情報・天気予報・占い
– 名言系 有名人・著名人
– キャラクター系 アニメキャラ・映画キャラ
– 無意味系 ランダムツイート生成 etc
• 本推薦 Twitter bot を作る!
12/10/6-7 工大祭
ブクログ推薦bot
1. Twitter 上で booklog ユーザを発見
2. 各ユーザの蔵書情報を取得
3. 蔵書情報をもとに個人毎におすすめを計算
4. ユーザにおすすめをツイート
12/10/6-7 工大祭
[Twitter] https://twitter.com/booklog_rec [Github] https://github.com/masakazu-ishihata/booklog_rec
Step 1. ユーザ発見
Main engine
Clustering engine
Tweet engine
Users
review
review #booklog
12/10/6-7 工大祭
Step 1. ユーザ発見
Main engine
Clustering engine
Tweet engine
review #booklog
Users
booklog id twitter id
API
12/10/6-7 工大祭
Step 2. 情報取得
Main engine
Clustering engine
Tweet engine
Users
蔵書情報
API
booklog/twitter id
12/10/6-7 工大祭
Step 3. おすすめ生成
Main engine
Clustering engine
Tweet engine
Users
蔵書情報
booklog/twitter id 蔵書情報
12/10/6-7 工大祭
Step 3. おすすめ生成
Main engine
Clustering engine
Tweet engine
Users
クラスタリング結果
booklog/twitter id 蔵書情報
12/10/6-7 工大祭
Step 3. おすすめ生成
Main engine
Clustering engine
Tweet engine
Users
Titles/URLs
API API
booklog/twitter id 蔵書情報 クラスタ
12/10/6-7 工大祭
Step 3. おすすめ生成
Main engine
Clustering engine
Tweet engine
Users
Tweets
booklog/twitter id 蔵書情報 クラスタ Title/URL 12/10/6-7 工大祭
Step 3. おすすめ生成
Main engine
Clustering engine
Tweet engine
Users
booklog/twitter id 蔵書情報 クラスタ Titles/URLs Tweets
API @xxx へのおすすめ #booklog
12/10/6-7 工大祭
具体的にはどうやっておすすめを計算するの?
推薦システムとは
推薦システム
• 推薦システム – 対象ユーザに(適切な)商品やサービスを提示
– information filtering の技術が利用される
1. Content-based filtering – 対象ユーザの要求内容を推定し、推薦を行う
– 「こいつAKBのCDばっかり買ってるな…」
– 「こいつ初音ミクのグッズばっかり買ってるな…」
2. Collaborative filtering (協調フィルタリング) – 対象ユーザと似た関心をもつユーザを参考に推薦を行う
– Amazon 「この商品を買った人はこんな商品も買っています」
12/10/6-7 工大祭
協調フィルタリング
• “似た人” を参考にする
– “似た人” = 同じような買い方をしている人
12/10/6-7 工大祭
けいおん よつばと みなみけ らきすた ゆるゆり ぱにぽに
A ? ◯ ◯ × ◯ ×
B × × ◯ ◯ × ?
C ◯ ? ◯ × ◯ ×
A-B = 1つ一致
A-C = 4つ一致
おすすめ すべきか?
C さんの意見を参考にして A に “けいおん” をおすすめ
協調フィルタリング
• “似た商品” を参考にしてもいいのでは?
– “似た商品” = 同じような買われ方をしている商品
12/10/6-7 工大祭
けいおん よつばと みなみけ らきすた ゆるゆり ぱにぽに
A ? ◯ ◯ × ◯ ×
B × × ◯ ◯ × ?
C ◯ ? ◯ × ◯ ×
“けいおん”-”ゆるゆり” = 2つ一致
おすすめ すべきか?
A の “ゆるゆり” への意見を参考に A に “けいおん” をおすすめ
協調フィルタリング
• 2つの視点 – “似た人” を参考にする
– “似た商品” を参考にする
• どういう 人/商品 が似ているの? – “似た人” = “似た商品” を買っている人
– “似た商品” = “似た人” に買われている商品
• 人/商品 を “同時に” 似たものグループに分割
→ Co-clustering (Biclustering)
12/10/6-7 工大祭
Deadlock!!
Co-clustering
C22 C21 C23
C11
C12
C13
購買履歴の行列を入れ替えることで ”いい感じ” にまとめる
A B C D …
1 2
3 4
…
12/10/6-7 工大祭
• 購買履歴を表す表 – 人 i が商品 j を買った→黒 買ってない→白
• 白黒つけるのために 確率モデル を用いる • Stochastic Block Model (SBM) • Infinite Relational Model (IRM)
人
商品
Stochastic Block Model • 購買履歴 A の生成過程
– Aij ~ Cat(ηkl) • Aij = 1 : 人 i が商品 j を買った(黒) • Aij = 0 : 人 i が商品 j を買ってない(白)
– ηkl ~ Dir(β) • クラス k の人がクラス l の商品を買うかを決めるコイン(表→買う、裏→買わない)
• k,l の相性が良い→表が出やすい
• k,l の相性が悪い→裏が出やすい
– zin ~ Cat(πn) • i のクラス (n=1→人、n=2→商品)
– πn ~ Dir(α) • クラスを決めるサイコロ
(3が出た→クラス C3)
• “いい感じ” = 周辺尤度 p(A, z1, z2 | α, β) が大きい
π1 π2
zi1=k zj
2=l
ηkl Aij
β
α α
12/10/6-7 工大祭
Stochastic Block Model
C1 C2 C3
z11=C2
p(z12 = C1 | z/{z1
2}, A) = 0.5
p(z12 = C2 | z/{z1
2}, A) = 0.1
p(z12 = C3 | z/{z1
2}, A) = 0.4
z12 = C2 C1
途中経過: z1 (行) の1回目のサンプリング終了後
12/10/6-7 工大祭
Stochastic Block Model
C1 C2 C3
p(zi1=C1 | z-{zi
1},A,α,β) = 0.5
p(zi1=C2 | z-{zi
1},A,α,β) = 0.1
p(zi1=C3 | z-{zi
1},A,α,β) = 0.4
zi1 = C2 C1
C1 C2 C3
途中経過: z12 のサンプリング終了後
12/10/6-7 工大祭
z11=C2 z1
1=C1
Stochastic Block Model
C1 C2 C3 C1 C2 C3
途中経過: z2={z12,…,z30
2} のサンプリング終了後
クラスタ数を事前に決める必要がある
12/10/6-7 工大祭
Infinite Relational Model
π1 π2
zi1=k zj
2=l
ηkl Aij
β
α α 潜在的に(可算)無限個のクラス!!
潜在的に 無限×無限 通りの組み合わせ
• SBMの拡張
–詳細は難しいので省略!
• クラスタ数を事前に決める必要はない
無限面のサイコロ!!
無限種類のコイン!
12/10/6-7 工大祭
どゆこと???
Infinite Relational Model
C1 C2 C3
z11=C2
p(z12 = C1 | z/{z1
2}, A) = 0.5
p(z12 = C2 | z/{z1
2}, A) = 0.1
p(z12 = C3 | z/{z1
2}, A) = 0.3
p(z12 = Cnew | z/{z1
2}, A) = 0.1
途中経過: z1 (行) の1回目のサンプリング終了後
(結果的に) SBM の CGS に Cnew という選択肢ができただけ!
12/10/6-7 工大祭
実際に動かしてみる!
• 使用したデータ – 1137 users
– 6803 books
– relation = Good/not good/unknown
• 使用した確率モデル – Infinite Relational Model
• クラスタリング結果 – 26 user clusters
– 64 book clusters
12/10/6-7 工大祭
クラスタの例
######## Class 5966 (4) ######## 四畳半神話大系 (角川文庫) 夜は短し歩けよ乙女 ペンギン・ハイウェイ 太陽の塔 (新潮文庫) ######## Class 2956 (5) ######## 氷菓 (角川文庫) 愚者のエンドロール (角川文庫) クドリャフカの順番 (角川文庫) 遠まわりする雛 (角川文庫) ボトルネック (新潮文庫) ######## Class 2108 (8) ######## ノルウェイの森 上 (講談社文庫) ノルウェイの森 下 (講談社文庫) 謎解きはディナーのあとで 海辺のカフカ (上) (新潮文庫) 海辺のカフカ (下) (新潮文庫) 1Q84 BOOK 1 1Q84 BOOK 2 1Q84 BOOK 3
12/10/6-7 工大祭
######## Class 5671 (12) ######## 武器としての決断思考 (星海社新書) 生物と無生物のあいだ (講談社現代新書) スティーブ・ジョブズ I フリー~〈無料〉からお金を生みだす新戦略 これからの「正義」の話をしよう――いまを生き延びるための哲学 マネジメント[エッセンシャル版] - 基本と原則 思考の整理学 (ちくま文庫) キュレーションの時代 「つながり」の情報革命が始まる (ちくま新書) 20歳のときに知っておきたかったこと スタンフォード大学集中講義 伝える力 (PHPビジネス新書) スティーブ・ジョブズ 驚異のプレゼン―人々を惹きつける18の法則 7つの習慣―成功には原則があった! ######## Class 5126 (79) ######## 森薫拾遺集 (ビームコミックス) 路地恋花 1 (アフタヌーンKC) 海月姫(1) (講談社コミックスキス) ましろのおと(1) (月刊マガジンコミックス) 主に泣いてます(1) (モーニングKC) 鬼灯の冷徹(1) (モーニング KC) 君に届け 1 (マーガレットコミックス (4061)) ハチミツとクローバー 1 (クイーンズコミックス―ヤングユー) 坂道のアポロン (1) (フラワーコミックス) 娚の一生 1 (フラワーコミックスアルファ) 姉の結婚 1 (フラワーコミックス) 花のズボラ飯(1) うさぎドロップ (1) (FC (380)) 百姓貴族 (1) (ウィングス・コミックス) 大奥 (第1巻) (JETS COMICS (4301)) 夏目友人帳 (1) (花とゆめCOMICS (2842)) 鋼の錬金術師 (1) (ガンガンコミックス)
森見登美彦
米澤穂信
村上春樹
実用書系
作者が女性の 漫画?
本当にお小遣いは稼げたの?
広告のクリック数
12/10/6-7 工大祭
Clicks on bitly
Clicks on Amazon
つまり…
• 1ヶ月に 46,000 クリックされている
• 仮に 1 % の人が 500 円の本を買ったとする
• Amazon では売上の 3.5 % が報酬
12/10/6-7 工大祭
8050!! 46,000 * 0.01 * 500 * 0.035 =
売上
12/10/6-7 工大祭
• 実際の booklog_rec の売上
売上 = 30,522 円 報酬 = 673 円
世の中そんなに甘くない!!
まとめ
• 色々な機械学習技術が現実に使われています
–情報フィルタ、情報推薦
• 自分も情報推薦を使ってお小遣い稼ぎたい
–推薦システム + アフィリエイト
• 稼ぎは雀の涙でした…
• もっと研究をがんばってお小遣いを稼ごう!
12/10/6-7 工大祭