Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
「一番いいおすすめを頼む」〜5分でわかるレコメンドエンジンの基礎〜  Present by ぱろっと(@parrot_studio)          for Gunma.web #3             2010/12/11
ProfileTwitter : @parrot_studiohatena/github : parrot_studio           RDGC - Ruby(Random) Dungeon Game Core 0.2          ...
レコメンドの話で大丈夫か?    You sure that’s story of “recommend”?
レコメンド機能=Amazonのおすすめ
4コマ漫画と技術書でカオスな   私のおすすめ
Amazon says:お前と似た購買傾向のユーザは     これも買ってるから   お前も買えや( ゚Д゚)y─~~
でも、技術屋で4コマを買う 「私と似たユーザ」はそんなにいる(´・ω・)?      ROをやってる技術屋より少ないような・・・
「似ている」の基準は?
一番いい説明を頼む    Ill take the best explanation you have.
例:ラーメン屋の特徴調査
スープの濃さ:薄い1-10濃い麺の太さ:細い1-10太い※数字が大きい≠高スコア
どれが「似ている」?    濃さ 太さ A店 7   2 B店 3   5 C店 7   6
グラフにプロットしてみる
どれが「似ている」?876543210    0   1   2   3       4       5   6   7                A   B       C
似ている=角度が小さい   ∠α < ∠β
「似ていること」はベクトルの角度から求められる
ところで・・・
「濃さ」「太さ」→2次元 +「価格」→3次元
+「駅からの距離」→4次元
もはや想像不能Σ(゚Д゚;≡;゚д゚)
公式で機械的に求めよう   (`・ω・´) b
これは「公式」 うまく使いこなせよ       This is Formula.       I think now youll 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.9483cos∠AC = 0.9088cos∠AB = 0.7304
もしかして:・BとCはよく似ている・AとCもそれなりに似ている・AとBはさほど似てない
グラフの通り(`・ω・´)876543210    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        well have to get help, again...
今回やらなかったこと:レコメンドシステムの仕組み
・類似度から推薦するロジック・計算を最適化するためのIndex構築・IndexとNoSQL系ストレージの関係・大規模データをどう分散処理させるかetc...
また次の機会に(`・ω・´)ノ
ありがとうございました  (´・ω・)っ旦~
Upcoming SlideShare
Loading in …5
×

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

7,226 views

Published on

2010/12/11におこなったLT資料
二本のうち、比較的真面目な方

Published in: Technology

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

  1. 1. 「一番いいおすすめを頼む」〜5分でわかるレコメンドエンジンの基礎〜 Present by ぱろっと(@parrot_studio) for Gunma.web #3 2010/12/11
  2. 2. ProfileTwitter : @parrot_studiohatena/github : parrot_studio RDGC - Ruby(Random) Dungeon Game Core 0.2 http://sourceforge.jp/projects/rdgc/ 2010/11 Released!!
  3. 3. レコメンドの話で大丈夫か? You sure that’s story of “recommend”?
  4. 4. レコメンド機能=Amazonのおすすめ
  5. 5. 4コマ漫画と技術書でカオスな 私のおすすめ
  6. 6. Amazon says:お前と似た購買傾向のユーザは これも買ってるから お前も買えや( ゚Д゚)y─~~
  7. 7. でも、技術屋で4コマを買う 「私と似たユーザ」はそんなにいる(´・ω・)? ROをやってる技術屋より少ないような・・・
  8. 8. 「似ている」の基準は?
  9. 9. 一番いい説明を頼む Ill take the best explanation you have.
  10. 10. 例:ラーメン屋の特徴調査
  11. 11. スープの濃さ:薄い1-10濃い麺の太さ:細い1-10太い※数字が大きい≠高スコア
  12. 12. どれが「似ている」? 濃さ 太さ A店 7 2 B店 3 5 C店 7 6
  13. 13. グラフにプロットしてみる
  14. 14. どれが「似ている」?876543210 0 1 2 3 4 5 6 7 A B C
  15. 15. 似ている=角度が小さい ∠α < ∠β
  16. 16. 「似ていること」はベクトルの角度から求められる
  17. 17. ところで・・・
  18. 18. 「濃さ」「太さ」→2次元 +「価格」→3次元
  19. 19. +「駅からの距離」→4次元
  20. 20. もはや想像不能Σ(゚Д゚;≡;゚д゚)
  21. 21. 公式で機械的に求めよう (`・ω・´) b
  22. 22. これは「公式」 うまく使いこなせよ This is Formula. I think now youll have more luck.
  23. 23. 求めたいもの=ベクトルaとbの角度Θ
  24. 24. 角度Θは面倒なので cosΘを求める
  25. 25. Θが小さいほどcosΘは1に近づく=cosΘが1に近いほど似ている
  26. 26. 公式:cosΘ = a・b / |a||b|a・b = a1b1+a2b2+…+anbn|a| = sqrt(a1^2+a2^2+…+an^2)
  27. 27. ラーメン屋の例だと・・・a1:A店の濃さの値a2:A店の太さの値 etc...
  28. 28. 実際に計算してみよう
  29. 29. |A|^2= 7^2+2^2 = 49+4 = 53|A| = sqrt(53) = 7.2801
  30. 30. A・B= 7*3+2*5 = 31|B| = … = 5.8309
  31. 31. cos∠AB= 31/(7.28 * 5.83)= 0.7304
  32. 32. 同じように計算すると・・・cos∠BC = 0.9483cos∠AC = 0.9088cos∠AB = 0.7304
  33. 33. もしかして:・BとCはよく似ている・AとCもそれなりに似ている・AとBはさほど似てない
  34. 34. グラフの通り(`・ω・´)876543210 0 1 2 3 4 5 6 7 A B C
  35. 35. お前は常にレコメンドにとって 最良のベクトルを思い、 自由に選択していけ So choose factors of vector carefully. The recommend depends on it.
  36. 36. 何をベクトルとするか?
  37. 37. 例1:ユーザが購入した本{プレゼン=>1, Ruby=>3, 4コマ=>10}
  38. 38. 例2:記事に使われているキーワードの出現回数 {勉強会=>5, Ruby=>3, レコメンド=>8, 群馬=>2}
  39. 39. キーワードの出現傾向が似ている=よく似た記事はこちら(´・ω・)っ=記事の推薦システム
  40. 40. そうだな、次もこれを見ている奴に 付き合ってもらう Well, next time well have to get help, again...
  41. 41. 今回やらなかったこと:レコメンドシステムの仕組み
  42. 42. ・類似度から推薦するロジック・計算を最適化するためのIndex構築・IndexとNoSQL系ストレージの関係・大規模データをどう分散処理させるかetc...
  43. 43. また次の機会に(`・ω・´)ノ
  44. 44. ありがとうございました (´・ω・)っ旦~

×