「一番いいおすすめを頼む」 ~5分でわかるレコメンドエンジンの基礎~ (Gunma.web #3 2010/12/11)

「一番いいおすすめを頼む」
〜5分でわかるレコメンドエンジンの基礎〜

  Present by ぱろっと(@parrot_studio)
          for Gunma.web #3
             2010/12/11
Profile

Twitter : @parrot_studio
hatena/github : parrot_studio

           RDGC - Ruby(Random) Dungeon Game Core 0.2
                   http://sourceforge.jp/projects/rdgc/
                                    2010/11 Released!!
レコメンドの話で大丈夫か?


    You sure that’s story of “recommend”?
レコメンド機能
=Amazonのおすすめ
4コマ漫画と技術書でカオスな
   私のおすすめ
Amazon says:
お前と似た購買傾向のユーザは
     これも買ってるから
   お前も買えや( ゚Д゚)y─~~
でも、技術屋で4コマを買う
 「私と似たユーザ」は
そんなにいる(´・ω・)?

      ROをやってる技術屋より少ないような・・・
「似ている」の基準は?
一番いい説明を頼む


    I'll take the best explanation you have.
例:ラーメン屋の特徴調査
スープの濃さ:薄い1-10濃い
麺の太さ:細い1-10太い
※数字が大きい≠高スコア
どれが「似ている」?

    濃さ 太さ
 A店 7   2
 B店 3   5
 C店 7   6
グラフにプロットしてみる
どれが「似ている」?
8

7

6

5

4

3

2

1

0
    0   1   2   3       4       5   6   7

                A   B       C
似ている=角度が小さい




   ∠α < ∠β
「似ていること」は
ベクトルの角度から求められる
ところで・・・
「濃さ」「太さ」→2次元
 +「価格」→3次元
+「駅からの距離」→4次元
もはや想像不能
Σ(゚Д゚;≡;゚д゚)
公式で機械的に求めよう
   (`・ω・´) b
これは「公式」 うまく使いこなせよ


       This is Formula.
       I think now you'll have more luck.
求めたいもの
=ベクトルaとbの角度Θ
角度Θは面倒なので
 cosΘを求める
Θが小さいほどcosΘは1に近づく
=cosΘが1に近いほど似ている
公式:
cosΘ = a・b / |a||b|
a・b = a1b1+a2b2+…+anbn
|a| = sqrt(a1^2+a2^2+…+an^2)
ラーメン屋の例だと・・・
a1:A店の濃さの値
a2:A店の太さの値
         etc...
実際に計算してみよう
|A|^2
= 7^2+2^2 = 49+4 = 53
|A| = sqrt(53) = 7.2801
A・B
= 7*3+2*5 = 31
|B| = … = 5.8309
cos∠AB
= 31/(7.28 * 5.83)
= 0.7304
同じように計算すると・・・
cos∠BC = 0.9483
cos∠AC = 0.9088
cos∠AB = 0.7304
もしかして:
・BとCはよく似ている
・AとCもそれなりに似ている
・AとBはさほど似てない
グラフの通り(`・ω・´)
8

7

6

5

4

3

2

1

0
    0   1   2   3       4       5   6   7

                A   B       C
お前は常にレコメンドにとって
 最良のベクトルを思い、
  自由に選択していけ

     So choose factors of vector carefully.
     The recommend depends on it.
何をベクトルとするか?
例1:ユーザが購入した本
{プレゼン=>1, Ruby=>3, 4コマ=>10}
例2:記事に使われている
キーワードの出現回数
 {勉強会=>5, Ruby=>3,
   レコメンド=>8, 群馬=>2}
キーワードの出現傾向が似ている
=よく似た記事はこちら(´・ω・)っ
=記事の推薦システム
そうだな、次もこれを見ている奴に
    付き合ってもらう

        Well, next time
        we'll have to get help, again...
今回やらなかったこと:
レコメンドシステムの仕組み
・類似度から推薦するロジック
・計算を最適化するためのIndex構築
・IndexとNoSQL系ストレージの関係
・大規模データをどう分散処理させるか
etc...
また次の機会に(`・ω・´)ノ
ありがとうございました
  (´・ω・)っ旦~
1 of 44

Recommended

2011.7.3 札幌C++勉強会#2「C++のマクロはどこまで関数をいじれるのか」 by
2011.7.3 札幌C++勉強会#2「C++のマクロはどこまで関数をいじれるのか」2011.7.3 札幌C++勉強会#2「C++のマクロはどこまで関数をいじれるのか」
2011.7.3 札幌C++勉強会#2「C++のマクロはどこまで関数をいじれるのか」Hiro H.
1.5K views47 slides
Goto by
GotoGoto
Gotooupc
421 views6 slides
Okiraku! by
Okiraku!Okiraku!
Okiraku!Takahiro Sugiura
490 views57 slides
スペルミス修正プログラムを作ろう by
スペルミス修正プログラムを作ろうスペルミス修正プログラムを作ろう
スペルミス修正プログラムを作ろうNaoya Ito
4.5K views23 slides
今日から使える! みんなのクラスタリング超入門 by
今日から使える! みんなのクラスタリング超入門今日から使える! みんなのクラスタリング超入門
今日から使える! みんなのクラスタリング超入門toilet_lunch
170.3K views59 slides
PIXTAにおけるCloudSearchのコスト削減 by
PIXTAにおけるCloudSearchのコスト削減PIXTAにおけるCloudSearchのコスト削減
PIXTAにおけるCloudSearchのコスト削減PIXTA Inc.
3.4K views37 slides

More Related Content

Viewers also liked

ロジスティック回帰の考え方・使い方 - TokyoR #33 by
ロジスティック回帰の考え方・使い方 - TokyoR #33ロジスティック回帰の考え方・使い方 - TokyoR #33
ロジスティック回帰の考え方・使い方 - TokyoR #33horihorio
281.6K views40 slides
10 Things You Didn’t Know About Mobile Email from Litmus & HubSpot by
 10 Things You Didn’t Know About Mobile Email from Litmus & HubSpot 10 Things You Didn’t Know About Mobile Email from Litmus & HubSpot
10 Things You Didn’t Know About Mobile Email from Litmus & HubSpotHubSpot
10.4K views19 slides
25 Discovery Call Questions by
25 Discovery Call Questions25 Discovery Call Questions
25 Discovery Call QuestionsHubSpot
301K views38 slides
Modern Prospecting Techniques for Connecting with Prospects (from Sales Hacke... by
Modern Prospecting Techniques for Connecting with Prospects (from Sales Hacke...Modern Prospecting Techniques for Connecting with Prospects (from Sales Hacke...
Modern Prospecting Techniques for Connecting with Prospects (from Sales Hacke...HubSpot
11.4K views49 slides
Class 1: Email Marketing Certification course: Email Marketing and Your Business by
Class 1: Email Marketing Certification course: Email Marketing and Your BusinessClass 1: Email Marketing Certification course: Email Marketing and Your Business
Class 1: Email Marketing Certification course: Email Marketing and Your BusinessHubSpot
13.9K views50 slides
Behind the Scenes: Launching HubSpot Tokyo by
Behind the Scenes: Launching HubSpot TokyoBehind the Scenes: Launching HubSpot Tokyo
Behind the Scenes: Launching HubSpot TokyoHubSpot
29.5K views16 slides

Viewers also liked(14)

ロジスティック回帰の考え方・使い方 - TokyoR #33 by horihorio
ロジスティック回帰の考え方・使い方 - TokyoR #33ロジスティック回帰の考え方・使い方 - TokyoR #33
ロジスティック回帰の考え方・使い方 - TokyoR #33
horihorio281.6K views
10 Things You Didn’t Know About Mobile Email from Litmus & HubSpot by HubSpot
 10 Things You Didn’t Know About Mobile Email from Litmus & HubSpot 10 Things You Didn’t Know About Mobile Email from Litmus & HubSpot
10 Things You Didn’t Know About Mobile Email from Litmus & HubSpot
HubSpot10.4K views
25 Discovery Call Questions by HubSpot
25 Discovery Call Questions25 Discovery Call Questions
25 Discovery Call Questions
HubSpot301K views
Modern Prospecting Techniques for Connecting with Prospects (from Sales Hacke... by HubSpot
Modern Prospecting Techniques for Connecting with Prospects (from Sales Hacke...Modern Prospecting Techniques for Connecting with Prospects (from Sales Hacke...
Modern Prospecting Techniques for Connecting with Prospects (from Sales Hacke...
HubSpot11.4K views
Class 1: Email Marketing Certification course: Email Marketing and Your Business by HubSpot
Class 1: Email Marketing Certification course: Email Marketing and Your BusinessClass 1: Email Marketing Certification course: Email Marketing and Your Business
Class 1: Email Marketing Certification course: Email Marketing and Your Business
HubSpot13.9K views
Behind the Scenes: Launching HubSpot Tokyo by HubSpot
Behind the Scenes: Launching HubSpot TokyoBehind the Scenes: Launching HubSpot Tokyo
Behind the Scenes: Launching HubSpot Tokyo
HubSpot29.5K views
Why People Block Ads (And What It Means for Marketers and Advertisers) [New R... by HubSpot
Why People Block Ads (And What It Means for Marketers and Advertisers) [New R...Why People Block Ads (And What It Means for Marketers and Advertisers) [New R...
Why People Block Ads (And What It Means for Marketers and Advertisers) [New R...
HubSpot151.2K views
Design in Tech Report 2017 by John Maeda
Design in Tech Report 2017Design in Tech Report 2017
Design in Tech Report 2017
John Maeda1.1M views
【事前資料:NG版】非オタの彼女が俺の持ってる監視ツールに興味津々なんだが… by Masahito Zembutsu
【事前資料:NG版】非オタの彼女が俺の持ってる監視ツールに興味津々なんだが…【事前資料:NG版】非オタの彼女が俺の持ってる監視ツールに興味津々なんだが…
【事前資料:NG版】非オタの彼女が俺の持ってる監視ツールに興味津々なんだが…
Masahito Zembutsu3.3K views
プライベートDMP/レコメンドエンジン「Rtoaster」のご紹介と実践的活用方法 by Members_corp
プライベートDMP/レコメンドエンジン「Rtoaster」のご紹介と実践的活用方法プライベートDMP/レコメンドエンジン「Rtoaster」のご紹介と実践的活用方法
プライベートDMP/レコメンドエンジン「Rtoaster」のご紹介と実践的活用方法
Members_corp6.1K views
事業計画作成ワークショップ(公開用) by Kengo Ito
事業計画作成ワークショップ(公開用)事業計画作成ワークショップ(公開用)
事業計画作成ワークショップ(公開用)
Kengo Ito7.5K views
Ley Reestructuración de Deudas by Ela Zambrano
Ley Reestructuración de Deudas Ley Reestructuración de Deudas
Ley Reestructuración de Deudas
Ela Zambrano330 views

More from parrotstudio

"プロのプログラマ"を目指す初心者が最初に読むべきたった一冊の本 by
"プロのプログラマ"を目指す初心者が最初に読むべきたった一冊の本"プロのプログラマ"を目指す初心者が最初に読むべきたった一冊の本
"プロのプログラマ"を目指す初心者が最初に読むべきたった一冊の本parrotstudio
5.1K views43 slides
希望の関数と絶望の副作用 by
希望の関数と絶望の副作用希望の関数と絶望の副作用
希望の関数と絶望の副作用parrotstudio
2.2K views38 slides
「もうなにもこわくない」関数型言語 〜ふつうのプログラマが関数型言語を知るべき理由・reload〜 by
「もうなにもこわくない」関数型言語 〜ふつうのプログラマが関数型言語を知るべき理由・reload〜「もうなにもこわくない」関数型言語 〜ふつうのプログラマが関数型言語を知るべき理由・reload〜
「もうなにもこわくない」関数型言語 〜ふつうのプログラマが関数型言語を知るべき理由・reload〜parrotstudio
2.3K views50 slides
ぱろっと、Padrinoやめるってよ by
ぱろっと、Padrinoやめるってよぱろっと、Padrinoやめるってよ
ぱろっと、Padrinoやめるってよparrotstudio
2K views30 slides
エンジニアがTRPGをやるべき理由 〜隣り合わせの遊びと技術〜 (Gunma.web #12 2013/02/09) by
エンジニアがTRPGをやるべき理由 〜隣り合わせの遊びと技術〜  (Gunma.web #12 2013/02/09)  エンジニアがTRPGをやるべき理由 〜隣り合わせの遊びと技術〜  (Gunma.web #12 2013/02/09)
エンジニアがTRPGをやるべき理由 〜隣り合わせの遊びと技術〜 (Gunma.web #12 2013/02/09) parrotstudio
1.8K views31 slides
(´・ω・`)としたーは衰退しました (Gunma.web #11 2012/11/23) by
(´・ω・`)としたーは衰退しました  (Gunma.web #11 2012/11/23) (´・ω・`)としたーは衰退しました  (Gunma.web #11 2012/11/23)
(´・ω・`)としたーは衰退しました (Gunma.web #11 2012/11/23) parrotstudio
1.1K views41 slides

More from parrotstudio(15)

"プロのプログラマ"を目指す初心者が最初に読むべきたった一冊の本 by parrotstudio
"プロのプログラマ"を目指す初心者が最初に読むべきたった一冊の本"プロのプログラマ"を目指す初心者が最初に読むべきたった一冊の本
"プロのプログラマ"を目指す初心者が最初に読むべきたった一冊の本
parrotstudio5.1K views
希望の関数と絶望の副作用 by parrotstudio
希望の関数と絶望の副作用希望の関数と絶望の副作用
希望の関数と絶望の副作用
parrotstudio2.2K views
「もうなにもこわくない」関数型言語 〜ふつうのプログラマが関数型言語を知るべき理由・reload〜 by parrotstudio
「もうなにもこわくない」関数型言語 〜ふつうのプログラマが関数型言語を知るべき理由・reload〜「もうなにもこわくない」関数型言語 〜ふつうのプログラマが関数型言語を知るべき理由・reload〜
「もうなにもこわくない」関数型言語 〜ふつうのプログラマが関数型言語を知るべき理由・reload〜
parrotstudio2.3K views
ぱろっと、Padrinoやめるってよ by parrotstudio
ぱろっと、Padrinoやめるってよぱろっと、Padrinoやめるってよ
ぱろっと、Padrinoやめるってよ
parrotstudio2K views
エンジニアがTRPGをやるべき理由 〜隣り合わせの遊びと技術〜 (Gunma.web #12 2013/02/09) by parrotstudio
エンジニアがTRPGをやるべき理由 〜隣り合わせの遊びと技術〜  (Gunma.web #12 2013/02/09)  エンジニアがTRPGをやるべき理由 〜隣り合わせの遊びと技術〜  (Gunma.web #12 2013/02/09)
エンジニアがTRPGをやるべき理由 〜隣り合わせの遊びと技術〜 (Gunma.web #12 2013/02/09)
parrotstudio1.8K views
(´・ω・`)としたーは衰退しました (Gunma.web #11 2012/11/23) by parrotstudio
(´・ω・`)としたーは衰退しました  (Gunma.web #11 2012/11/23) (´・ω・`)としたーは衰退しました  (Gunma.web #11 2012/11/23)
(´・ω・`)としたーは衰退しました (Gunma.web #11 2012/11/23)
parrotstudio1.1K views
私に作る時間がないのはどう考えても仕事が悪い!? (Gunma.web #10 2012/09/08) by parrotstudio
私に作る時間がないのはどう考えても仕事が悪い!? (Gunma.web #10 2012/09/08) 私に作る時間がないのはどう考えても仕事が悪い!? (Gunma.web #10 2012/09/08)
私に作る時間がないのはどう考えても仕事が悪い!? (Gunma.web #10 2012/09/08)
parrotstudio949 views
ネタプログラミング言語クリエイターYouma (Gunma.web #8 2012/03/03) by parrotstudio
ネタプログラミング言語クリエイターYouma (Gunma.web #8 2012/03/03)ネタプログラミング言語クリエイターYouma (Gunma.web #8 2012/03/03)
ネタプログラミング言語クリエイターYouma (Gunma.web #8 2012/03/03)
parrotstudio2K views
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17) by parrotstudio
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
parrotstudio1.4K views
Signs;Gate - RESTfulなサイトの作り方 (Gunma.web #6 2011/09/03) by parrotstudio
Signs;Gate - RESTfulなサイトの作り方 (Gunma.web #6 2011/09/03) Signs;Gate - RESTfulなサイトの作り方 (Gunma.web #6 2011/09/03)
Signs;Gate - RESTfulなサイトの作り方 (Gunma.web #6 2011/09/03)
parrotstudio1.4K views
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14) by parrotstudio
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
parrotstudio15.3K views
思い通りにいかないのがWebなんて 割り切りたくないから (Gunma.web #4 2011/02/12) by parrotstudio
思い通りにいかないのがWebなんて 割り切りたくないから (Gunma.web #4 2011/02/12)思い通りにいかないのがWebなんて 割り切りたくないから (Gunma.web #4 2011/02/12)
思い通りにいかないのがWebなんて 割り切りたくないから (Gunma.web #4 2011/02/12)
parrotstudio824 views
俺の体がこんなにすっきりしているわけがない ~5分でわかる催眠プログラミング~ (Gunma.web #3 2010/12/11) by parrotstudio
俺の体がこんなにすっきりしているわけがない ~5分でわかる催眠プログラミング~ (Gunma.web #3 2010/12/11) 俺の体がこんなにすっきりしているわけがない ~5分でわかる催眠プログラミング~ (Gunma.web #3 2010/12/11)
俺の体がこんなにすっきりしているわけがない ~5分でわかる催眠プログラミング~ (Gunma.web #3 2010/12/11)
parrotstudio2.3K views
これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9) by parrotstudio
これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)
これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)
parrotstudio1.5K views
どきっ!三行で作るランダムダンジョン!?~WEBもあるよ!~ - 2010/8/21 群馬Web研究会(勉強会) by parrotstudio
どきっ!三行で作るランダムダンジョン!?~WEBもあるよ!~ - 2010/8/21 群馬Web研究会(勉強会)どきっ!三行で作るランダムダンジョン!?~WEBもあるよ!~ - 2010/8/21 群馬Web研究会(勉強会)
どきっ!三行で作るランダムダンジョン!?~WEBもあるよ!~ - 2010/8/21 群馬Web研究会(勉強会)
parrotstudio1.2K views

Recently uploaded

The Things Stack説明資料 by The Things Industries by
The Things Stack説明資料 by The Things IndustriesThe Things Stack説明資料 by The Things Industries
The Things Stack説明資料 by The Things IndustriesCRI Japan, Inc.
73 views29 slides
SNMPセキュリティ超入門 by
SNMPセキュリティ超入門SNMPセキュリティ超入門
SNMPセキュリティ超入門mkoda
420 views15 slides
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20... by
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...NTT DATA Technology & Innovation
132 views42 slides
光コラボは契約してはいけない by
光コラボは契約してはいけない光コラボは契約してはいけない
光コラボは契約してはいけないTakuya Matsunaga
24 views17 slides
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向 by
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Hitachi, Ltd. OSS Solution Center.
85 views26 slides
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料) by
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)NTT DATA Technology & Innovation
23 views38 slides

Recently uploaded(10)

The Things Stack説明資料 by The Things Industries by CRI Japan, Inc.
The Things Stack説明資料 by The Things IndustriesThe Things Stack説明資料 by The Things Industries
The Things Stack説明資料 by The Things Industries
CRI Japan, Inc.73 views
SNMPセキュリティ超入門 by mkoda
SNMPセキュリティ超入門SNMPセキュリティ超入門
SNMPセキュリティ超入門
mkoda420 views
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20... by NTT DATA Technology & Innovation
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
光コラボは契約してはいけない by Takuya Matsunaga
光コラボは契約してはいけない光コラボは契約してはいけない
光コラボは契約してはいけない
Takuya Matsunaga24 views
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料) by NTT DATA Technology & Innovation
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
SSH応用編_20231129.pdf by icebreaker4
SSH応用編_20231129.pdfSSH応用編_20231129.pdf
SSH応用編_20231129.pdf
icebreaker4366 views
Windows 11 information that can be used at the development site by Atomu Hidaka
Windows 11 information that can be used at the development siteWindows 11 information that can be used at the development site
Windows 11 information that can be used at the development site
Atomu Hidaka89 views

「一番いいおすすめを頼む」 ~5分でわかるレコメンドエンジンの基礎~ (Gunma.web #3 2010/12/11)