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.

協調フィルタリングを利用した推薦システム構築

19,427 views

Published on

Ventures Salon vol.6 で発表した資料です。
https://www.facebook.com/events/736789056438293
発表用&学習用の資料になっています。

Published in: Data & Analytics

協調フィルタリングを利用した推薦システム構築

  1. 1. 協調フィルタリングを利用した 推薦システム構築 2 日本マイクロソフト テクニカルエバンジェリスト 大田 昌幸 : @masota0517 江田 周平 : @shumach5
  2. 2. 自己紹介 大田 昌幸 江田 周平 3 早稲田大学大学院にて ネットワークセキュリティを専攻 大量のパケットデータを解析し IPアドレスを偽装したパケットを 判別する手法を研究 大量のデータから特徴を見つ けるのが好き マイクロソフト入社後 サポートエンジニアを経て テクニカルエバンジェリスト データ解析系案件対応増加中 大阪大学大学院にて 計画数理工学を専攻 Smart Warehouse 等で稼働す る数百台の搬送ロボットの経 路の最適化する手法を研究。 マイクロソフト入社後 サポートエンジニアとして、主 に Office のデータ解析系の ツールをサポート。
  3. 3. 本セッションの目的 • 機械学習の概要理解 • 推薦システムの基本的な仕組みの理解 • 実装方針の把握 • 自習教材の把握 4
  4. 4. アジェンダ 1. データ解析分野の全体像の把握 2. 機械学習の概要 • 機械学習概要 • 事例紹介 3. 推薦システムの基本的な仕組みの紹介 5
  5. 5. 1. データ解析分野の全体像の把握 6
  6. 6. データ活用領域 Hindsight (見える化) データ活用度 種類 規模 Insight (気づき) Foresight (予測) 単独システムのデータ 複数システムのデータ 社外データとの連携 ② 手軽に始めるクラウドベースの機械学習 • 豊富なアルゴリズムを用いて機械学習を試せる環境を時間単位で手軽に利用可能 • 構築したモデルを他のシステムと連携(API 公開)により直ぐに利用可能 API公開 Azure Machine Learning ① Excel ベースの強力な BI 使い慣れた Excel ベースの UI のため、どの ユーザー部門でも容易に活用ができ、レポー ト表示・項目変更もユーザー主導で Power BI ③-2 データ種類・場所に依存しない Hybrid なデータ結合・共有 • 社内のオンプレ・クラウド環境の構造・非構造データや、 外部のデータを容易に結合できる ETL 機能 • クラウドベースのデータ共有環境(SharePoint OL) Azure Data Factory SQL Server Integration Service ③-1 パフォーマンスを最適化するアーキテクチャ • 最新のインメモリ技術等によるパフォーマンスの最大化 • 大量データの収集(Data Lake)から適切な形での保管 (Data Warehouse)、容易な取り出し(Data Mart) までを容易に実現できる基盤 Data Lake Data Warehouse Data Mart
  7. 7. 2. 機械学習の概要 8
  8. 8. 機械学習とは何か アルゴリズムとして明示的に解法が与えられないタスクに対して、 そのタスクを遂行するための「進化するモデル」を、 学習データから構築すること タスク : 対象とする問題 モデル : 人間の知的活動をパターン化したもの 学習データ : コンピューターが学習するために使用する実験データ <出展 : フリーソフトで始める機械学習入門> 9
  9. 9. 機械学習の要素 (学習時) データ 学習用データ/評価用データを 分割する (例: 60% : 40%) モデルの訓練 (学習アルゴリズムの訓練) モデル 学習データを使用して、 最適な結果を出すモデルを作成する データの正規化 (不要・不正なデータの削除) アウトプット/評価 実世界のデータ 10
  10. 10. 機械学習の要素 (使用時) データ 学習用データ/評価用データを 分割する (例: 60% : 40%) モデルの訓練 (学習アルゴリズムの訓練) モデル データの正規化 (不要・不正なデータの削除) アウトプット/評価 実世界のデータ 11
  11. 11. 用語集 今後学習を進めるうえで理解しておくと便利な用語解説 まず下記のような数式のことを、あるデータ群の性質を表す ”モデル” と呼びます y = ax1 + ax2 + ax3 … y の部分を目的変数・結果変数などと呼びます x の部分を予測変数・説明変数・特徴などと呼びます 複数の x を入力し、y の値が最適な値となるように 適切な a を決定していくことをモデルの訓練(調整)と呼びます 12
  12. 12. 機械学習の分類 (手法別) 機械学習 教師あり学習 (正解データがある場合) 中間的手法 教師なし学習 (正解データがない場合) 識別 (カテゴリ分類) 回帰 (数値推測) モデル推定 (クラスタリング) パターン マイニング データが正解つき/なしの組み合わせ 手法が正解つき/なしの組み合わせ 購買パターン発見音声/文字認識 文章のP/N 判定 売り上げ予測 顧客の分類 ハンズオンの内容 13
  13. 13. 14 行動履歴を機械学習で分析し最適なコンテンツ表示 これまで難解だった機械学習を簡 単かつ短期間で導入できることを 証明(2 週間で構築) Web サイトの表示を改善し、 新しいエクスペリエンスを提供 蓄積データを機械学習によっ て分析し最適な講座情報を 発見 ビッグデータ(行動履歴)を クラウドに蓄積 Web サイト 閲覧者 ②蓄積 Azure Machine Learning Web サイトでの行動履歴 (講座閲覧履歴)を保存 ③分析①収集 ④反映 Azure SQL DBWeb サイト 閲覧履歴に基づいた講座の リコメンデーションを表示
  14. 14. 15 Excel ベースの顧客分析基盤を幅広い部門へ開放 使い慣れた Excel ベースの UI で 店長やエリアマネージャー、販売部、 商品部等幅広い部門に開放 大量の明細レベルでも快適に 検索・分析可能な基盤を構 築 顧客購買行動を明細レベル で分析し、適切なタイミングで オファー・メッセージを送付 ネットとリアルの区別なく、購 入履歴やチェックイン、検索、 SNS・口コミを集約・分析 ログ収集 レコメン (クラウド) 実店舗 ネットストア モバイル端末 IDとして利用 オウンドメディア 閲覧ログ 商品閲覧 購入 チェックイン データ 商品マスタ 店舗マスタ 顧客マスタ 在庫データ MDシステム 販売データ マイルデータ ポイントデータ DWH (データ格納場所) ネットストア モバイル端末 メール Marketing Automation Engine (将来実装) 口コミ、 ご要望 データソース 蓄積・統合 分析・企画 アプローチ先 マイルサービス 管理システム アドホック分析 定型レポーティング (Power BI) 機械学習 (Azure Machine Learning) オファー (割引など) レコメン SQL Server
  15. 15. 3.推薦システムの基本的な仕組みの紹介 16
  16. 16. 推薦システムのビジネスメリット • 売り上げを増やすための新たな接点を創出する • 同時購入を促すためのアイテム推薦 • ユーザーの興味を想起するニッチな商品の推薦 • ユーザー離脱を防ぐ • ゲームで負け続けているユーザーに特別なアイテムをプレゼントし離脱防止 17 ビジネスの機会創出を自動化できる
  17. 17. 推薦システムの全体像 18 • 大きく4 種類の推薦システムが存在する レコメンド方式 ルールベース コンテンツベース 協調フィルタリング ベイジアンネットワーク 分析情報 過去の実績 マーケティングデータ アイテム間の関係性 ユーザーの購買履歴 コンテンツ属性 行動履歴 ロジック 独自ルールに基づき 推薦。 コンテンツ属性を事前 に分析・分類し、関連 性を元に推薦。 購買履歴を自動的に 解析し、ユーザーの嗜 好に応じたアイテムを 推薦。 ユーザーが行動モデ ルを作成し、確率を計 算した上で、推薦。 メリット 運営者、経営者の意 思を反映しやすい コンテンツ属性を決定 する際に推薦するもの を調整できる。 運営者の手間が少な い。 セレンティビティあり。 目的に応じて、精度の 高い推薦ができる。 デメリット ユーザーの意思が反 映されにくい。 運営者の手間大 セレンティビティなし。 運営者の手間大。 ユーザーの購買履歴 を一定数収集する必 要がある。 計算結果を得られるた めに時間がかかる。
  18. 18. レコメンド方式 ルールベース コンテンツベース 協調フィルタリング ベイジアンネットワーク 分析情報 過去の実績 マーケティングデータ アイテム間の関係性 ユーザーの購買履歴 コンテンツ属性 行動履歴 ロジック 独自ルールに基づき 推薦。 コンテンツ属性を事前 に分析・分類し、関連 性を元に推薦。 購買履歴を自動的に 解析し、ユーザーの嗜 好に応じたアイテムを 推薦。 ユーザーが行動モデ ルを作成し、確率を計 算した上で、推薦。 メリット 運営者、経営者の意 思を反映しやすい コンテンツ属性を決定 する際に推薦するもの を調整できる。 運営者の手間が少な い。 セレンティビティあり。 目的に応じて、精度の 高い推薦ができる。 デメリット ユーザーの意思が反 映されにくい。 運営者の手間大 セレンティビティなし。 運営者の手間大。 ユーザーの購買履歴 を一定数収集する必 要がある。 計算結果を得られるた めに時間がかかる。 推薦システムの全体像 19 • 大きく4 種類の推薦システムが存在する
  19. 19. 推薦システムの全体像 20  協調フィルタリングの代表的な判別属性は 2 種類 協調フィルタリングの判別属性 1. ユーザーベース ユーザーの行動履歴を元にユーザー毎の嗜好の類似値を解析し、 他のユーザーが購入した他のアイテムを推薦する。 2. アイテムベース ユーザーの行動履歴を元にアイテム間の類似値を解析し関連性の高いアイテムを推薦。 参考資料 • http://www.slideshare.net/takahirokubo7792?utm_campaign=profiletracking&utm_med ium=sssite&utm_source=ssslideview • http://japan.zdnet.com/article/20373064/ • http://japan.zdnet.com/article/20374062/
  20. 20. ユーザーベースの協調フィルタリング 21
  21. 21. ユーザーベースの協調フィルタリング 推薦のために必要な処理 工夫できるポイント 1.ユーザーどうしの類似性スコアを算出する 1.1 何をもって類似しているとするか定義する 1.2 定義に合わせてデータを準備する 1.3 定義に合わせて算出手法を選定し実装する 1.4 実際に類似性スコアを算出する • 1.1 類似性の定義 : ビジネス状況・仮説に合わせて定義 • 同じ商品を購入している • 同じ商品を高く(低く)評価している..etc • 1.3 類似性スコアの算出方法 : いくつかの手法を比較し、 自社にとって望む結果を算出する算出方法を採用する • クロス集計 • ユークリッド距離 • ピアソン相関係数..etc 2.類似性スコアで重みをつけて推薦をする 重みをつける : 似ているユーザーの影響度を大きくする 2.1 類似性スコアで重みづけの演算をする 2.2 正規化する 2.3 適切にソーティングして結果を表示 (スコア高い順) • 2.1 サービスに合わせたゆらぎの挿入 • キャンペーン中は特定商品を優先して推薦する • 意外性が出るように類似性の低いユーザーのスコア も使用する 22 ユーザーどうしの類似性を元に他のユーザーへの推薦を行う
  22. 22. 1.ユーザーどうしの類似性スコアを算出する 1.1 類似性の定義:同じ商品への評価が高い(低い)と類似性が高い 1.2 データの準備:ユーザーから各アイテムへの評価をリスト化 23 システムに合わせた類似性を定義しデータを用意する ユニコーン ガンダム This is it 砂金 5.0 3.0 江田 2.0 5.0 南野 1.0 4.0 大田 5.0 2.0
  23. 23. 江田 南野 大田 砂金 0 1 2 3 4 5 6 0 1 2 3 4 5 6 ユニコーンガンダム This is it 1.ユーザーどうしの類似性スコアを算出する いくつかの方法があるが、例として理解しやすいユークリッド距離を使用 24 1.3 算出方法を選定 1 3 2 大田 (2,5) と 砂金(3,5) の距離 : 1 大田 (2,5) と 江田 (5,2) の距離 : 2 − 5 2 + (5 − 2)2= 9 + 9 = 18 = 3 2 2次元のユークリッド距離は上記のとおり単純な三角比計算 多次元の場合にも同じで、下記のような数式で計算 𝑝1 − 𝑞1 2 + 𝑝2 − 𝑞2 2 + ⋯ + (𝑝 𝑛 + 𝑞 𝑛)2 = 𝑖=1 𝑛 (𝑝𝑖−𝑞𝑖)2
  24. 24. 1.ユーザーどうしの類似性スコアを算出する • 類似している人物ほどユークリッド距離の値が小さくなる • 類似している人物ほど高いスコアにしたいのため逆数を取る 類似性が最大の人はユークリッド距離が0なので、1 を足す 𝑆𝑐𝑜𝑟𝑒 = 1 (1 + ユークリッド距離) なお、Score は 0 から 1 までの値を返します 0 は全く類似しておらず、1は類似性が高いことを表します 25 1.3 算出方法を選定
  25. 25. 1.ユーザーどうしの類似性スコアを算出する 26 • 1.4 実際に類似性スコアを算出する 大田との類似性スコア 砂金 0.5 江田 0.071 南野 0.055 大田に推薦する場合には、 大田との類似性スコアを算出する
  26. 26. 2.類似性スコアで重みをつけて推薦をする 27 2.1 類似性スコアで重みづけ演算をする 類似性 Z ガンダム Z ガンダム (重みづけ) ワンピース ワンピース (重みづけ) 砂金 0.5 江田 0.071 南野 0.055 合計 類似性の合計 スコア 大田が見たことのないアイテムを計算対象とする (見たことのあるものを推薦対象とすることはないため)
  27. 27. 2.類似性スコアで重みをつけて推薦をする 28 2.1 類似性スコアで重みづけ演算をする 類似性 Z ガンダム Z ガンダム (重みづけ) ワンピース ワンピース (重みづけ) 砂金 0.5 5.0 - 江田 0.071 1.0 5.0 南野 0.055 2.0 4.0 合計 類似性の合計 スコア 各アイテムへのユーザーの評価を読み込む ユーザーから評価されていないアイテムもある
  28. 28. 2.類似性スコアで重みをつけて推薦をする 29 2.1 類似性スコアで重みづけの演算をする 類似性 Z ガンダム Z ガンダム (重みづけ) ワンピース ワンピース (重みづけ) 砂金 0.5 5.0 2.5 - 江田 0.071 1.0 5.0 南野 0.055 2.0 4.0 合計 類似性の合計 スコア 重みづけした値を計算する
  29. 29. 2.類似性スコアで重みをつけて推薦をする 30 2.1 類似性スコアで重みづけ演算をする 類似性 Z ガンダム Z ガンダム (重みづけ) ワンピース ワンピース (重みづけ) 砂金 0.5 5.0 2.5 - - 江田 0.071 1.0 0.071 5.0 0.355 南野 0.055 2.0 0.11 4.0 0.44 合計 類似性の合計 スコア その他の値も重みづけして算出
  30. 30. 2.類似性スコアで重みをつけて推薦をする 31 2.1 類似性スコアで重みづけ演算をする 類似性 Z ガンダム Z ガンダム (重みづけ) ワンピース ワンピース (重みづけ) 砂金 0.5 5.0 2.5 - - 江田 0.071 1.0 0.071 5.0 0.355 南野 0.055 2.0 0.11 4.0 0.44 合計 2.681 類似性の合計 スコア 合計値を算出
  31. 31. 2.類似性スコアで重みをつけて推薦をする 32 2.1 類似性スコアで重みづけ演算をする 類似性 Z ガンダム Z ガンダム (重みづけ) ワンピース ワンピース (重みづけ) 砂金 0.5 5.0 2.5 - - 江田 0.071 1.0 0.071 5.0 0.355 南野 0.055 2.0 0.11 4.0 0.44 合計 2.681 0.795 類似性の合計 スコア その他の合計値も算出
  32. 32. 2.類似性スコアで重みをつけて推薦をする 33 2.2 正規化する 類似性 Z ガンダム Z ガンダム (重みづけ) ワンピース ワンピース (重みづけ) 砂金 0.5 5.0 2.5 - - 江田 0.071 1.0 0.071 5.0 0.355 南野 0.055 2.0 0.11 4.0 0.44 合計 2.681 0.795 類似性の合計 スコア 多くの人に評価されるアイテムの点数が高くなる これを正すための正規化が必要 合計点数を、評価者の類似度の合計で割ります
  33. 33. 2.類似性スコアで重みをつけて推薦をする 34 2.2 正規化する 類似性 Z ガンダム Z ガンダム (重みづけ) ワンピース ワンピース (重みづけ) 砂金 0.5 5.0 2.5 - - 江田 0.071 1.0 0.071 5.0 0.355 南野 0.055 2.0 0.11 4.0 0.44 合計 2.681 0.795 類似性の合計 0.626 0.126 スコア 評価者の類似性スコアの合計を出す 0.5 + 0.071 + 0.055 = 0.626 評価者の類似性スコアの合計を出す 0.071+0.055 = 0.126
  34. 34. 2.類似性スコアで重みをつけて推薦をする 35 2.2 正規化する 類似性 Z ガンダム Z ガンダム (重みづけ) ワンピース ワンピース (重みづけ) 砂金 0.5 5.0 2.5 - - 江田 0.071 1.0 0.071 5.0 0.355 南野 0.055 2.0 0.11 4.0 0.44 合計 2.681 0.795 類似性の合計 0.626 0.126 スコア 4.282 6.3 正規化 2.681/0.626 = 4.282 正規化 0.795/0.126 = 6.30
  35. 35. 2.類似性スコアで重みをつけて推薦をする 36 2.3 適切にソーティングして結果を表示 (スコア高い順) 類似性 Z ガンダム Z ガンダム (重みづけ) ワンピース ワンピース (重みづけ) 砂金 0.5 5.0 2.5 - - 江田 0.071 1.0 0.071 5.0 0.355 南野 0.055 2.0 0.11 4.0 0.44 合計 2.681 0.795 類似性の合計 0.626 0.126 スコア 4.282 6.3 スコアの高い順に作品を紹介 1. ワンピース (6.3) 2. Z ガンダム (4.2) 今回は大田の好きなガンダムシリーズは最上位で推薦されなかった この「良し悪し」を決めるのはサービス提供者で下記の調整も可能 意外性を求めるのであれば、計算時に類似性低い人を多めに混ぜる 堅実に行きたいのであれば、計算時に類似性高い人を多めに混ぜる
  36. 36. アイテムベースの協調フィルタリング 37
  37. 37. アイテムベースの協調フィルタリング 推薦のために必要な処理 工夫できるポイント 1.アイテムどうしの類似性を算出する 1.1 何をもって類似しているとするか定義する 1.2 定義に合わせてデータを準備する 1.3 定義に合わせて算出手法を選定し実装する 1.4 実際に類似性スコアを算出する • 1.1 類似性の定義 : ビジネス状況・仮説に合わせて定義 • いつも組み合わせて購入されている • 評価のされ方の傾向が似ている • 1.3 類似性スコアの算出方法 : いくつかの手法を比較し、 自社にとって望む結果を算出する算出方法を採用する • クロス集計 • ユークリッド距離 • ピアソン相関係数..etc 2.類似性スコアで重みをつけて推薦をする 重みをつける : 似ているユーザーの影響度を大きくする 2.1 類似性スコアで重みづけの演算をする 2.2 正規化する 2.3 適切にソーティングして結果を表示 (スコア高い順) • 2.1 サービスに合わせたゆらぎの挿入 • キャンペーン中は特定商品を優先して推薦する • 人気商品に偏らないように、表示前に癖のある ソーティングをする 38 アイテムどうしの類似性を元にユーザーへの推薦を行う
  38. 38. 1.アイテムどうしの類似性を算出する 1.1 類似性の定義:評価のされ方が似ていると類似性が高い 1.2 データの準備:ユーザーから各アイテムへの評価をリスト化 39 システムに合わせた類似性を定義しデータを用意する 大田 江田 Zガンダム 5.0 2.0 マクロス 5.0 1.0 ブリーチ 4.0 3.0 ・・・ ・・・ ・・・ ワンピース 4.0 4.0 This is it 2.0 5.0 Top of UK 2.0 4.0
  39. 39. Zガンダム マクロス ブリーチ ワンピース This is it Top of UK 0 1 2 3 4 5 6 0 1 2 3 4 5 6 江田 大田 例として理解しやすいユークリッド距離を使用 1.アイテムどうしの類似性を算出する 40 1.3 算出方法を選定 1 Zガンダム(5,2) とマクロス(5,1) の距離 : 1 アイテムベースと同じく下記のような数式で計算します = 𝑖=1 𝑛 (𝑝𝑖−𝑞𝑖)2 また、逆数をとってスコアを出します 𝑆𝑐𝑜𝑟𝑒 = 1 (1 + ユークリッド距離) 評価のされ方が似ている
  40. 40. 1.アイテムどうしの類似性を算出する 41 • 1.4 実際に類似性スコアを算出する Z ガンダム マクロス ・・・ Top of UK Zガンダム - 0.182 0.012 マクロス 0.182 - 0.122 ・・・ This is it 0.020 0.148 0.179 Top of UK 0.012 0.122 - 複数のユーザー、アイテムから算出した仮の値を表にしています
  41. 41. 2.類似性スコアで重みをつけて推薦をする 42 2.1 類似性スコアで重みづけ演算をする 森川さんの 評価 Zガンダム 4.5 ブリーチ 4.0 This is it 1.0 合計 スコア 今回は森川さんへの推薦をする まず、森川さんのこれまで評価したアイテムと その評価を読み込む
  42. 42. 2.類似性スコアで重みをつけて推薦をする 43 2.1 類似性スコアで重みづけ演算をする 森川さんの 評価 マクロス の類似性 マクロス (重みづけ) ワンピース の類似性 ワンピース (重みづけ) Zガンダム 4.5 0.182 0.222 ブリーチ 4.0 0.103 0.091 This is it 1.0 0.148 0.4 合計 スコア 森川さんの見たことのないアイテムと 評価済みアイテムとの類似性スコアを読み込む 類似性スコアはあらかじめ計算しておくことで、 森川さんというユーザーに依存せず、 全てのユーザーで活用できる
  43. 43. 2.類似性スコアで重みをつけて推薦をする 44 2.1 類似性スコアで重みづけ演算をする 森川さんの 評価 マクロス の類似性 マクロス (重みづけ) ワンピース の類似性 ワンピース (重みづけ) Zガンダム 4.5 0.182 0.818 0.222 0.999 ブリーチ 4.0 0.103 0.412 0.091 0.363 This is it 1.0 0.148 0.148 0.4 0.4 合計 1.378 1.764 スコア 重みづけの計算を行い、合計を算出する
  44. 44. 2.類似性スコアで重みをつけて推薦をする 45 2.1 類似性スコアで重みづけの演算をする 森川さんの 評価 マクロス の類似性 マクロス (重みづけ) ワンピース の類似性 ワンピース (重みづけ) Zガンダム 4.5 0.182 0.818 0.222 0.999 ブリーチ 4.0 0.103 0.412 0.091 0.363 This is it 1.0 0.148 0.148 0.4 0.4 合計 0.433 1.378 0.713 1.764 スコア 正規化のため類似性の合計を算出する
  45. 45. 2.類似性スコアで重みをつけて推薦をする 46 2.2 正規化する 森川さんの 評価 マクロス の類似性 マクロス (重みづけ) ワンピース の類似性 ワンピース (重みづけ) Zガンダム 4.5 0.182 0.818 0.222 0.999 ブリーチ 4.0 0.103 0.412 0.091 0.363 This is it 1.0 0.148 0.148 0.4 0.4 合計 0.433 1.378 0.713 1.764 スコア 3.183 2.473 正規化 1.378/0.433 = 3.183 正規化 1.764/0.713 = 2.473
  46. 46. 2.類似性スコアで重みをつけて推薦をする 47 2.2 正規化する 森川さんの 評価 マクロス の類似性 マクロス (重みづけ) ワンピース の類似性 ワンピース (重みづけ) Zガンダム 4.5 0.182 0.818 0.222 0.999 ブリーチ 4.0 0.103 0.412 0.091 0.363 This is it 1.0 0.148 0.148 0.4 0.4 合計 0.433 1.378 0.713 1.764 スコア 3.183 2.473 正規化 1.378/0.433 = 3.183 正規化 1.764/0.713 = 2.473
  47. 47. 2.類似性スコアで重みをつけて推薦をする 48 2.3 適切にソーティングして結果を表示 (スコア高い順) 森川さんの 評価 マクロス の類似性 マクロス (重みづけ) ワンピース の類似性 ワンピース (重みづけ) Zガンダム 4.5 0.182 0.818 0.222 0.999 ブリーチ 4.0 0.103 0.412 0.091 0.363 This is it 1.0 0.148 0.148 0.4 0.4 合計 0.433 1.378 0.713 1.764 スコア 3.183 2.473 スコアの高い順に作品を紹介 1. マクロス (3.183) 2. ワンピース (2.473)
  48. 48. ユーザーベース vs アイテムベース • ユーザーベースの協調フィルタリングが向いているシナリオ • メモリに収まるサイズで変更が頻繁に行われるデータセットが対象 • ユーザーの趣向が独自の値を持っている • リンクを共有するサイト • 音楽を推薦するサイト • 巨大なデータが対象の場合はアイテムベースの協調フィルタリング の方が良い結果を生み出す • アイテムが多いと「ユーザー同士」の類似度を出すことが難しいため • アイテム同士の類似度は事前に計算可能なので、運用環境での推薦が高速なため • アイテム同士の類似度は変化しづらいので再計算が少なくて済むため 49
  49. 49. 推薦システムの構築方針 方針 独自実装 ツールを使った実装 方法 (例) Python, R を使った独自実装 Azure Machine Learning (Azure ML) を使った実装 シナリオ 統計・機械学習のプロを雇い独自実装(内製) データ解析会社への外注 ツールのサポートを受けながら独自実装(半内製) データ解析会社への外注 メリット • 自社製品に合わせたカスタマイズが可能 • 学習材料(書籍・サンプルコード)が豊富 • 豊富なライブラリ • NumPy, SciPy • 豊富な開発環境 • PyCharm, Visual Studio, Canopy • 独自のモデルの研究・開発が不要 • Microsoft Research の高度な研究成果を活用可能 • 定期的にモデルが追加され、コストをかけずに 機械学習を活用した新しい製品を開発できる • データの操作/可視化が容易 • Python, R の独自プログラムを挿入可能 • Web API としての公開が可能 デメリット • 学習コストが非常に高い • 高度な統計ヘの理解 • 実装言語・ライブラリの使用方法の学習 • 必要なすべてのフローの実装が必要 • データの加工・可視化 • 提供されているモデルの内部を理解することは難解 • データの表示はあらかじめ提供される方式で表示 50 推薦システムの構築方針は2つあります
  50. 50. 独自実装 ~ Pythonでの実装方法 ~ 51
  51. 51. Pythonの特徴 • 簡潔で可読性が高い • 拡張性が高い • 豊富な数学・科学系ライブラリ • データの取得、パース、計算、描画用のライブラリ • マルチプラットフォーム • Windows, Linux, Mac • マルチパラダイム • オブジェクト指向、手続き型、関数型 • 機械学習勉強用のサンプルコードが多い 52 エクセレントな高水準言語
  52. 52. Pythonの導入 • 公式Webサイトから最新版インストーラーを入手 • https://www.python.org/downloads/ • 2.x系、3.x系の2種類が存在 • 基本的には 3.x 系が推奨されています(2015年4月現在) • 2.x系のみに対応したライブラリを使用する際には2.x系を選択する • 詳しくは下記URLをご参照ください https://wiki.python.org/moin/Python2orPython3 53 Python 3.x のインストールを推奨
  53. 53. Pythonの学習 • 下記URLで学習開始 • http://www.codecademy.com/ • ブラウザで全て完結 • 学習・解説 • コーディング • 答え合わせ • 無料で十分に学習可能 54 書籍購入前にcode academyでの学習がオススメ
  54. 54. Pythonの開発環境(IDE) 55 優れた開発環境の紹介 PyCharm • Jet BRAINS社製のIDE。開発元が同じIntelliJ などと使用感が似ている • プロジェクト管理、コード補完、対話型ウィンドウなど十分な機能が搭載されている • Community Editionを無料で使用可能(https://www.jetbrains.com/pycharm/download/) Visual Studio + Visual Studio tools for Python • Microsoft社製のIDE+オープンソースのプラグイン(https://pytools.codeplex.com/) • Visual Studio のパワフルな機能でPython開発を強力にサポート • Community Editionを無料で使用可能 Canopy • ENTHOUGH社製のIDE • NumPy等の科学系パッケージを同時にインストールしてくれるため、解析用環境を容易に構築可能 • EXPRESS Editionを無料で使用可能(https://store.enthought.com/downloads/)
  55. 55. サンプルコードの紹介 Oreillyサイトからサンプルのダウンロードが可能 http://shop.oreilly.com/product/9780596529321.do 56 サンプルコードで具体的な実装方法を学ぼう! ここからダウンロード Zipファイル解凍後、chapter2/recommendations.py をエディタやIDEで開いて実装方法を学びましょう #python 2.7.x 系での実行がオススメ 実行方法・解説は本を購入してご確認ください 日本語名 : 集合知プログラミング http://www.oreilly.co.jp/books/9784873113647/
  56. 56. Azure Machine Learning での実装方法 57
  57. 57. Bing maps launches 家までの最適 なルートは? Microsoft Research formed Kinect launches その動作はど ういう意味? Azure Machine Learning launches 次に起こるの は何? Hotmail launches ジャンクメー ルはどれ? Bing search launches どの検索結果 が最も関連性 があるか? Skype Translator launches その人は何と 言っている? Microsoft と Machine Learning John Platt, Distinguished scientist at Microsoft Research 1991 201420091997 201420102008 Machine learning = 経験(過去データ+人の入力)により賢くなるコンピューティングシステム “Machine learning is pervasive throughout Microsoft products.” 機械学習はマイクロソフトの製品・サービスで広く使われています 58
  58. 58. Azure MLの紹介 • Microsoft Azure 上にホスト されており環境構築が不要 • Microsoft Research の開発 した高度なモデルを無償で利 用可能 • Python, R で開発した独自プ ログラムで拡張可能 • Web API として公開可能 59 GUI ベースの機械学習ソリューション
  59. 59. Training Data Web Service Azure Machine Learning Microsoft Azure Webシステム Azure Blob ストレージ Hive Azure SQL Database Azure テーブル 業務システム HDInsight ( Hadoop ) 他システム Power View 等の データ分析・可視化 ツール Azure Blob ストレージ Azure SQL Database Batch Execution Service Request-Response Service 評価モデル作成 (Training) 60
  60. 60. 手順書 61 Azure Machine Learning による 推薦システムの構築手順書 http://bit.ly/azuremlR
  61. 61. 本セッションで学んだこと • 機械学習の概要の理解 • 推薦システムの基本的な仕組みの理解 • 具体的な実装方法の把握 • 自習教材の把握 登壇依頼などお気軽にどうぞ~ by@masota0517, @shumach5 62
  62. 62. 参考資料 • 「集合知プログラミング」Toby Segaran 著 • 「データサイエンス講義」 Rachel Schutt, Cathy O’Neil 著 63 本資料作成のための参照した参考資料
  63. 63. オススメの学習資料 • 統計系基礎 • 「Head First Statistics」Dawn Griffiths 著 • 解析系基礎 • 「Head First データ解析」Michael Milton 著 • 解析用データの収集 • 「入門ソーシャルデータ」Matthew A. Russell 著 • 機械学習プログラミング • 「実践機械学習システム」 Willi Richert, Luis Pedro Coelho 著 • Q&A • Cross Validated : http://stats.stackexchange.com/ 64 今後の自習時に役立つ学習資料
  64. 64. 65

×