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

Post on 16-Jul-2015

5.416 Views

Category:

Data & Analytics

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

2

日本マイクロソフトテクニカルエバンジェリスト大田 昌幸 : @masota0517 江田 周平 : @shumach5

自己紹介

大田 昌幸 江田 周平

3

早稲田大学大学院にてネットワークセキュリティを専攻

大量のパケットデータを解析しIPアドレスを偽装したパケットを判別する手法を研究

大量のデータから特徴を見つけるのが好き

マイクロソフト入社後サポートエンジニアを経てテクニカルエバンジェリストデータ解析系案件対応増加中

大阪大学大学院にて計画数理工学を専攻

Smart Warehouse等で稼働す

る数百台の搬送ロボットの経路の最適化する手法を研究。

マイクロソフト入社後

サポートエンジニアとして、主に Officeのデータ解析系のツールをサポート。

本セッションの目的

•機械学習の概要理解

•推薦システムの基本的な仕組みの理解

•実装方針の把握

•自習教材の把握

4

アジェンダ

1. データ解析分野の全体像の把握

2. 機械学習の概要

• 機械学習概要

• 事例紹介

3. 推薦システムの基本的な仕組みの紹介

5

1. データ解析分野の全体像の把握

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

WarehouseDataMart

2. 機械学習の概要

8

機械学習とは何か

アルゴリズムとして明示的に解法が与えられないタスクに対して、

そのタスクを遂行するための「進化するモデル」を、

学習データから構築すること

タスク : 対象とする問題

モデル : 人間の知的活動をパターン化したもの

学習データ : コンピューターが学習するために使用する実験データ

<出展 : フリーソフトで始める機械学習入門>

9

機械学習の要素 (学習時)データ

学習用データ/評価用データを分割する (例: 60% : 40%)

モデルの訓練(学習アルゴリズムの訓練)

モデル

学習データを使用して、最適な結果を出すモデルを作成する

データの正規化(不要・不正なデータの削除)

アウトプット/評価

実世界のデータ

10

機械学習の要素 (使用時)データ

学習用データ/評価用データを分割する (例: 60% : 40%)

モデルの訓練(学習アルゴリズムの訓練)

モデル

データの正規化(不要・不正なデータの削除)

アウトプット/評価

実世界のデータ

11

用語集今後学習を進めるうえで理解しておくと便利な用語解説

まず下記のような数式のことを、あるデータ群の性質を表す”モデル” と呼びます

y = ax1 + ax2 + ax3 …

y の部分を目的変数・結果変数などと呼びます

x の部分を予測変数・説明変数・特徴などと呼びます

複数の x を入力し、y の値が最適な値となるように適切な a を決定していくことをモデルの訓練(調整)と呼びます

12

機械学習の分類 (手法別)

機械学習

教師あり学習(正解データがある場合)

中間的手法教師なし学習

(正解データがない場合)

識別(カテゴリ分類)

回帰(数値推測)

モデル推定(クラスタリング)

パターンマイニング

データが正解つき/なしの組み合わせ 手法が正解つき/なしの組み合わせ

購買パターン発見音声/文字認識文章のP/N 判定

売り上げ予測 顧客の分類

ハンズオンの内容

13

14

行動履歴を機械学習で分析し最適なコンテンツ表示

これまで難解だった機械学習を簡単かつ短期間で導入できることを証明(2 週間で構築)

Web サイトの表示を改善し、新しいエクスペリエンスを提供

蓄積データを機械学習によって分析し最適な講座情報を発見

ビッグデータ(行動履歴)をクラウドに蓄積

Web サイト閲覧者

②蓄積

AzureMachine Learning

Web サイトでの行動履歴(講座閲覧履歴)を保存

③分析①収集

④反映

Azure SQL DBWeb サイト

閲覧履歴に基づいた講座のリコメンデーションを表示

15

Excel ベースの顧客分析基盤を幅広い部門へ開放

使い慣れた ExcelベースのUIで店長やエリアマネージャー、販売部、商品部等幅広い部門に開放

大量の明細レベルでも快適に検索・分析可能な基盤を構築

顧客購買行動を明細レベルで分析し、適切なタイミングでオファー・メッセージを送付

ネットとリアルの区別なく、購入履歴やチェックイン、検索、SNS・口コミを集約・分析

ログ収集

レコメン(クラウド)

実店舗

ネットストア

モバイル端末

IDとして利用

オウンドメディア

閲覧ログ

商品閲覧

購入

チェックインデータ

商品マスタ店舗マスタ顧客マスタ在庫データ

MDシステム

販売データマイルデータポイントデータ

DWH

(データ格納場所)

ネットストア

モバイル端末

メール

Marketing Automation

Engine

(将来実装)

口コミ、ご要望

データソース 蓄積・統合 分析・企画 アプローチ先

マイルサービス管理システム

アドホック分析

定型レポーティング(Power BI)

機械学習(Azure Machine Learning)

オファー(割引など)

レコメン

SQL Server

3.推薦システムの基本的な仕組みの紹介

16

推薦システムのビジネスメリット

• 売り上げを増やすための新たな接点を創出する• 同時購入を促すためのアイテム推薦

• ユーザーの興味を想起するニッチな商品の推薦

• ユーザー離脱を防ぐ• ゲームで負け続けているユーザーに特別なアイテムをプレゼントし離脱防止

17

ビジネスの機会創出を自動化できる

推薦システムの全体像

18

• 大きく4 種類の推薦システムが存在する

レコメンド方式 ルールベース コンテンツベース 協調フィルタリング ベイジアンネットワーク

分析情報 過去の実績マーケティングデータ

アイテム間の関係性 ユーザーの購買履歴 コンテンツ属性行動履歴

ロジック 独自ルールに基づき推薦。

コンテンツ属性を事前に分析・分類し、関連性を元に推薦。

購買履歴を自動的に解析し、ユーザーの嗜好に応じたアイテムを推薦。

ユーザーが行動モデルを作成し、確率を計算した上で、推薦。

メリット 運営者、経営者の意思を反映しやすい

コンテンツ属性を決定する際に推薦するものを調整できる。

運営者の手間が少ない。セレンティビティあり。

目的に応じて、精度の高い推薦ができる。

デメリット ユーザーの意思が反映されにくい。運営者の手間大

セレンティビティなし。運営者の手間大。

ユーザーの購買履歴を一定数収集する必要がある。

計算結果を得られるために時間がかかる。

レコメンド方式 ルールベース コンテンツベース 協調フィルタリング ベイジアンネットワーク

分析情報 過去の実績マーケティングデータ

アイテム間の関係性 ユーザーの購買履歴 コンテンツ属性行動履歴

ロジック 独自ルールに基づき推薦。

コンテンツ属性を事前に分析・分類し、関連性を元に推薦。

購買履歴を自動的に解析し、ユーザーの嗜好に応じたアイテムを推薦。

ユーザーが行動モデルを作成し、確率を計算した上で、推薦。

メリット 運営者、経営者の意思を反映しやすい

コンテンツ属性を決定する際に推薦するものを調整できる。

運営者の手間が少ない。セレンティビティあり。

目的に応じて、精度の高い推薦ができる。

デメリット ユーザーの意思が反映されにくい。運営者の手間大

セレンティビティなし。運営者の手間大。

ユーザーの購買履歴を一定数収集する必要がある。

計算結果を得られるために時間がかかる。

推薦システムの全体像

19

• 大きく4 種類の推薦システムが存在する

推薦システムの全体像

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/

ユーザーベースの協調フィルタリング

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

ユーザーどうしの類似性を元に他のユーザーへの推薦を行う

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

江田

南野

大田 砂金

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 − 𝑞12 + 𝑝2 − 𝑞2

2 +⋯+ (𝑝𝑛 + 𝑞𝑛)2

=

𝑖=1

𝑛

(𝑝𝑖−𝑞𝑖)2

1.ユーザーどうしの類似性スコアを算出する

• 類似している人物ほどユークリッド距離の値が小さくなる

• 類似している人物ほど高いスコアにしたいのため逆数を取る類似性が最大の人はユークリッド距離が0なので、1 を足す

𝑆𝑐𝑜𝑟𝑒 = 1 (1 +ユークリッド距離)

なお、Score は 0 から 1 までの値を返します

0 は全く類似しておらず、1は類似性が高いことを表します

25

1.3 算出方法を選定

1.ユーザーどうしの類似性スコアを算出する

26

• 1.4 実際に類似性スコアを算出する

大田との類似性スコア

砂金 0.5

江田 0.071

南野 0.055

大田に推薦する場合には、大田との類似性スコアを算出する

2.類似性スコアで重みをつけて推薦をする

27

2.1 類似性スコアで重みづけ演算をする

類似性 Zガンダム Zガンダム(重みづけ)

ワンピース ワンピース(重みづけ)

砂金 0.5

江田 0.071

南野 0.055

合計

類似性の合計

スコア

大田が見たことのないアイテムを計算対象とする(見たことのあるものを推薦対象とすることはないため)

2.類似性スコアで重みをつけて推薦をする

28

2.1 類似性スコアで重みづけ演算をする

類似性 Zガンダム Zガンダム(重みづけ)

ワンピース ワンピース(重みづけ)

砂金 0.5 5.0 -

江田 0.071 1.0 5.0

南野 0.055 2.0 4.0

合計

類似性の合計

スコア

各アイテムへのユーザーの評価を読み込むユーザーから評価されていないアイテムもある

2.類似性スコアで重みをつけて推薦をする

29

2.1 類似性スコアで重みづけの演算をする

類似性 Zガンダム Zガンダム(重みづけ)

ワンピース ワンピース(重みづけ)

砂金 0.5 5.0 2.5 -

江田 0.071 1.0 5.0

南野 0.055 2.0 4.0

合計

類似性の合計

スコア

重みづけした値を計算する

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

合計

類似性の合計

スコア その他の値も重みづけして算出

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

類似性の合計

スコア合計値を算出

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

類似性の合計

スコアその他の合計値も算出

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

類似性の合計

スコア

多くの人に評価されるアイテムの点数が高くなる

これを正すための正規化が必要合計点数を、評価者の類似度の合計で割ります

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

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

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)

今回は大田の好きなガンダムシリーズは最上位で推薦されなかったこの「良し悪し」を決めるのはサービス提供者で下記の調整も可能意外性を求めるのであれば、計算時に類似性低い人を多めに混ぜる堅実に行きたいのであれば、計算時に類似性高い人を多めに混ぜる

アイテムベースの協調フィルタリング

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

アイテムどうしの類似性を元にユーザーへの推薦を行う

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

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 +ユークリッド距離)

評価のされ方が似ている

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 -

複数のユーザー、アイテムから算出した仮の値を表にしています

2.類似性スコアで重みをつけて推薦をする

42

2.1 類似性スコアで重みづけ演算をする

森川さんの評価

Zガンダム 4.5

ブリーチ 4.0

This is it 1.0

合計

スコア

今回は森川さんへの推薦をする

まず、森川さんのこれまで評価したアイテムとその評価を読み込む

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

合計

スコア

森川さんの見たことのないアイテムと評価済みアイテムとの類似性スコアを読み込む

類似性スコアはあらかじめ計算しておくことで、森川さんというユーザーに依存せず、全てのユーザーで活用できる

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

スコア

重みづけの計算を行い、合計を算出する

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

スコア

正規化のため類似性の合計を算出する

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

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

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)

ユーザーベース vs アイテムベース

• ユーザーベースの協調フィルタリングが向いているシナリオ• メモリに収まるサイズで変更が頻繁に行われるデータセットが対象

• ユーザーの趣向が独自の値を持っている• リンクを共有するサイト

• 音楽を推薦するサイト

• 巨大なデータが対象の場合はアイテムベースの協調フィルタリングの方が良い結果を生み出す• アイテムが多いと「ユーザー同士」の類似度を出すことが難しいため

• アイテム同士の類似度は事前に計算可能なので、運用環境での推薦が高速なため

• アイテム同士の類似度は変化しづらいので再計算が少なくて済むため

49

推薦システムの構築方針

方針 独自実装 ツールを使った実装

方法 (例) Python, R を使った独自実装 Azure Machine Learning (Azure ML) を使った実装

シナリオ 統計・機械学習のプロを雇い独自実装(内製)データ解析会社への外注

ツールのサポートを受けながら独自実装(半内製)データ解析会社への外注

メリット • 自社製品に合わせたカスタマイズが可能• 学習材料(書籍・サンプルコード)が豊富• 豊富なライブラリ

• NumPy, SciPy• 豊富な開発環境

• PyCharm, Visual Studio, Canopy

• 独自のモデルの研究・開発が不要• Microsoft Research の高度な研究成果を活用可能• 定期的にモデルが追加され、コストをかけずに機械学習を活用した新しい製品を開発できる

• データの操作/可視化が容易• Python, R の独自プログラムを挿入可能• Web API としての公開が可能

デメリット • 学習コストが非常に高い• 高度な統計ヘの理解• 実装言語・ライブラリの使用方法の学習

• 必要なすべてのフローの実装が必要• データの加工・可視化

• 提供されているモデルの内部を理解することは難解• データの表示はあらかじめ提供される方式で表示

50

推薦システムの構築方針は2つあります

独自実装~ Pythonでの実装方法 ~

51

Pythonの特徴

• 簡潔で可読性が高い

• 拡張性が高い• 豊富な数学・科学系ライブラリ

• データの取得、パース、計算、描画用のライブラリ

• マルチプラットフォーム• Windows, Linux, Mac

• マルチパラダイム• オブジェクト指向、手続き型、関数型

• 機械学習勉強用のサンプルコードが多い

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 のインストールを推奨

Pythonの学習

• 下記URLで学習開始• http://www.codecademy.com/

• ブラウザで全て完結• 学習・解説

• コーディング

• 答え合わせ

• 無料で十分に学習可能

54

書籍購入前にcode academyでの学習がオススメ

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/)

サンプルコードの紹介

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/

Azure Machine Learning での実装方法

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

Azure MLの紹介

• Microsoft Azure 上にホストされており環境構築が不要

• Microsoft Research の開発した高度なモデルを無償で利用可能

• Python, R で開発した独自プログラムで拡張可能

• Web API として公開可能

59

GUI ベースの機械学習ソリューション

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

手順書

61

Azure Machine Learning による

推薦システムの構築手順書

http://bit.ly/azuremlR

本セッションで学んだこと

•機械学習の概要の理解

•推薦システムの基本的な仕組みの理解

•具体的な実装方法の把握

•自習教材の把握

登壇依頼などお気軽にどうぞ~

by@masota0517, @shumach5

62

参考資料

• 「集合知プログラミング」Toby Segaran 著

• 「データサイエンス講義」 Rachel Schutt, Cathy O’Neil 著

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

今後の自習時に役立つ学習資料

65

top related