機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -

37
機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 - 佐藤研究室 石畠正和 工大祭 2012

description

工大祭 12/10/6-7 の研究室公開で利用したスライド。 研究ではなくお遊びです。

Transcript of 機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -

Page 1: 機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -

機械学習でお小遣いを稼ぐ!

- 本推薦 Twitter bot の紹介 -

佐藤研究室

石畠正和

工大祭 2012

Page 2: 機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -

機械学習

• 目的

–人間が自然に行なっていることを機械にも学習させる

–人間ではできないようなことを機械に学習させる

• 有名な例

–スパムメールフィルタ

–手書き文字認識/顔認識

–情報推薦

12/10/6-7 工大祭

スパム?

1 or 7?

○○さんに メールです

Page 3: 機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -

情報推薦 • 目的

–対象に “有用な” 情報を推薦する

• 有名な例: 商品推薦システム

–対象に “適切な” 商品・サービスを推薦する

「この商品を買った人はこんな商品も買っています」

12/10/6-7 工大祭

自分も情報推薦で小遣いを稼ぎたい!

Page 4: 機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -

アフィリエイト (成功報酬型広告)

• インターネット上の新たな広告の形態 –通常の広告

• 広告を載せると広告料をもらえる

–アフィリエイト • 広告がクリックされたとき

• 広告から直接商品が購入されたとき

にのみ広告料をもらえる

• アフィリエイトの利用 – Amazon アソシエイト

–楽天 アフィリエイト

12/10/6-7 工大祭

Page 5: 機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -

情報推薦 + アフィリエイト

• 野望 1. ユーザの興味を機械学習で推定

2. ユーザに “適切な” 商品を紹介(アフィリエイト)

3. ユーザが実際に購入

4. お小遣い (広告料) Get !!

• 実際に作ろう! – 誰に?

– 何を?

– どこで?

– どうやって?

booklog ユーザに 本・漫画を Twitter 上で bot として クラスタリングを使って!

12/10/6-7 工大祭

Page 6: 機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -

booklog ユーザ向け 本推薦 Twitter bot の紹介

keywords

booklog, Twitter, bot

Page 7: 機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -

booklog [booklog.jp]

• ソーシャル本棚サービス – ユーザ数 30 万人弱

• 主な機能 – 蔵書管理

• 商品情報 • 評価 • レビュー

– 本棚のフォロー – 推薦機能はない

• Twitter と連携できる

12/10/6-7 工大祭

Page 8: 機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -

Twitter [twitter.com]

• マイクロブログサービス “つぶやき”

= 上限140文字の投稿

“タイムライン”

= フォローしているユーザの

つぶやきが表示される

「はじめまして!お世話になっております!!(ツイッターでは)」

12/10/6-7 工大祭

Page 9: 機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -

Twitter bot

• Twitter bot = 自動呟きプログラム – bot = robot

• bot の種類 – ニュース系 テレビ・新聞・雑誌

– 便利系 地震情報・天気予報・占い

– 名言系 有名人・著名人

– キャラクター系 アニメキャラ・映画キャラ

– 無意味系 ランダムツイート生成 etc

• 本推薦 Twitter bot を作る!

12/10/6-7 工大祭

Page 11: 機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -

Step 1. ユーザ発見

Main engine

Clustering engine

Tweet engine

Users

review

review #booklog

12/10/6-7 工大祭

Page 12: 機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -

Step 1. ユーザ発見

Main engine

Clustering engine

Tweet engine

review #booklog

Users

booklog id twitter id

API

12/10/6-7 工大祭

Page 13: 機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -

Step 2. 情報取得

Main engine

Clustering engine

Tweet engine

Users

蔵書情報

API

booklog/twitter id

12/10/6-7 工大祭

Page 14: 機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -

Step 3. おすすめ生成

Main engine

Clustering engine

Tweet engine

Users

蔵書情報

booklog/twitter id 蔵書情報

12/10/6-7 工大祭

Page 15: 機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -

Step 3. おすすめ生成

Main engine

Clustering engine

Tweet engine

Users

クラスタリング結果

booklog/twitter id 蔵書情報

12/10/6-7 工大祭

Page 16: 機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -

Step 3. おすすめ生成

Main engine

Clustering engine

Tweet engine

Users

Titles/URLs

API API

booklog/twitter id 蔵書情報 クラスタ

12/10/6-7 工大祭

Page 17: 機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -

Step 3. おすすめ生成

Main engine

Clustering engine

Tweet engine

Users

Tweets

booklog/twitter id 蔵書情報 クラスタ Title/URL 12/10/6-7 工大祭

Page 18: 機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -

Step 3. おすすめ生成

Main engine

Clustering engine

Tweet engine

Users

booklog/twitter id 蔵書情報 クラスタ Titles/URLs Tweets

API @xxx へのおすすめ #booklog

12/10/6-7 工大祭

Page 19: 機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -

具体的にはどうやっておすすめを計算するの?

推薦システムとは

Page 20: 機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -

推薦システム

• 推薦システム – 対象ユーザに(適切な)商品やサービスを提示

– information filtering の技術が利用される

1. Content-based filtering – 対象ユーザの要求内容を推定し、推薦を行う

– 「こいつAKBのCDばっかり買ってるな…」

– 「こいつ初音ミクのグッズばっかり買ってるな…」

2. Collaborative filtering (協調フィルタリング) – 対象ユーザと似た関心をもつユーザを参考に推薦を行う

– Amazon 「この商品を買った人はこんな商品も買っています」

12/10/6-7 工大祭

Page 21: 機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -

協調フィルタリング

• “似た人” を参考にする

– “似た人” = 同じような買い方をしている人

12/10/6-7 工大祭

けいおん よつばと みなみけ らきすた ゆるゆり ぱにぽに

A ? ◯ ◯ × ◯ ×

B × × ◯ ◯ × ?

C ◯ ? ◯ × ◯ ×

A-B = 1つ一致

A-C = 4つ一致

おすすめ すべきか?

C さんの意見を参考にして A に “けいおん” をおすすめ

Page 22: 機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -

協調フィルタリング

• “似た商品” を参考にしてもいいのでは?

– “似た商品” = 同じような買われ方をしている商品

12/10/6-7 工大祭

けいおん よつばと みなみけ らきすた ゆるゆり ぱにぽに

A ? ◯ ◯ × ◯ ×

B × × ◯ ◯ × ?

C ◯ ? ◯ × ◯ ×

“けいおん”-”ゆるゆり” = 2つ一致

おすすめ すべきか?

A の “ゆるゆり” への意見を参考に A に “けいおん” をおすすめ

Page 23: 機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -

協調フィルタリング

• 2つの視点 – “似た人” を参考にする

– “似た商品” を参考にする

• どういう 人/商品 が似ているの? – “似た人” = “似た商品” を買っている人

– “似た商品” = “似た人” に買われている商品

• 人/商品 を “同時に” 似たものグループに分割

→ Co-clustering (Biclustering)

12/10/6-7 工大祭

Deadlock!!

Page 24: 機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -

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)

商品

Page 25: 機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -

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 工大祭

Page 26: 機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -

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 工大祭

Page 27: 機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -

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

Page 28: 機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -

Stochastic Block Model

C1 C2 C3 C1 C2 C3

途中経過: z2={z12,…,z30

2} のサンプリング終了後

クラスタ数を事前に決める必要がある

12/10/6-7 工大祭

Page 29: 機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -

Infinite Relational Model

π1 π2

zi1=k zj

2=l

ηkl Aij

β

α α 潜在的に(可算)無限個のクラス!!

潜在的に 無限×無限 通りの組み合わせ

• SBMの拡張

–詳細は難しいので省略!

• クラスタ数を事前に決める必要はない

無限面のサイコロ!!

無限種類のコイン!

12/10/6-7 工大祭

どゆこと???

Page 30: 機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -

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 工大祭

Page 31: 機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -

実際に動かしてみる!

• 使用したデータ – 1137 users

– 6803 books

– relation = Good/not good/unknown

• 使用した確率モデル – Infinite Relational Model

• クラスタリング結果 – 26 user clusters

– 64 book clusters

12/10/6-7 工大祭

Page 32: 機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -

クラスタの例

######## 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) (ガンガンコミックス)

森見登美彦

米澤穂信

村上春樹

実用書系

作者が女性の 漫画?

Page 33: 機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -

本当にお小遣いは稼げたの?

Page 34: 機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -

広告のクリック数

12/10/6-7 工大祭

Clicks on bitly

Clicks on Amazon

Page 35: 機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -

つまり…

• 1ヶ月に 46,000 クリックされている

• 仮に 1 % の人が 500 円の本を買ったとする

• Amazon では売上の 3.5 % が報酬

12/10/6-7 工大祭

8050!! 46,000 * 0.01 * 500 * 0.035 =

Page 36: 機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -

売上

12/10/6-7 工大祭

• 実際の booklog_rec の売上

売上 = 30,522 円 報酬 = 673 円

世の中そんなに甘くない!!

Page 37: 機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 -

まとめ

• 色々な機械学習技術が現実に使われています

–情報フィルタ、情報推薦

• 自分も情報推薦を使ってお小遣い稼ぎたい

–推薦システム + アフィリエイト

• 稼ぎは雀の涙でした…

• もっと研究をがんばってお小遣いを稼ごう!

12/10/6-7 工大祭