Successfully reported this slideshow.

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

13

Share

1 of 44
1 of 44

More Related Content

More from parrotstudio

Related Books

Free with a 14 day trial from Scribd

See all

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

  1. 1. 「一番いいおすすめを頼む」 〜5分でわかるレコメンドエンジンの基礎〜 Present by ぱろっと(@parrot_studio) for Gunma.web #3 2010/12/11
  2. 2. Profile Twitter : @parrot_studio hatena/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. 一番いい説明を頼む I'll 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. どれが「似ている」? 8 7 6 5 4 3 2 1 0 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 you'll 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.9483 cos∠AC = 0.9088 cos∠AB = 0.7304
  33. 33. もしかして: ・BとCはよく似ている ・AとCもそれなりに似ている ・AとBはさほど似てない
  34. 34. グラフの通り(`・ω・´) 8 7 6 5 4 3 2 1 0 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 we'll have to get help, again...
  41. 41. 今回やらなかったこと: レコメンドシステムの仕組み
  42. 42. ・類似度から推薦するロジック ・計算を最適化するためのIndex構築 ・IndexとNoSQL系ストレージの関係 ・大規模データをどう分散処理させるか etc...
  43. 43. また次の機会に(`・ω・´)ノ
  44. 44. ありがとうございました (´・ω・)っ旦~

×