#azurejp
https://www.facebook.com/dahatake/
https://twitter.com/dahatake/
https://github.com/dahatake/
https://daiyuhatakeyama.wordpress.com/
https://www.slideshare.net/dahatake/
age income
20 300
30 500
40 700
age income
20 300
30 500
40 700
age income
0 0
0.5 0.5
1 1
Machine Learning:
分析
proce
ssed id
cy
cle
coun
ter
endof
cycle
set
ting1 …
set
ting3 s1 … s21
2016-05-24
T00:00:00.
1234567Z 1 1 1 0 -0.0007 … 100 518.67 … 23.419
… 1 1 2 0 0.0019 … 100 518.67 … 23.4236
… 1 1 3 0 -0.0043 … 100 518.67 … 23.3442
… 1 1 4 0 0.0007 … 100 518.67 … 23.3739
… 1 1 5 0 -0.0019 … 100 518.67 … 23.4044
… 1 1 6 0 -0.0043 … 100 518.67 … 23.3669
… 1 1 7 1 0.001 … 100 518.67 … 23.3774
Power BI
Machine Learning:
分析
id cycle setting1 .. setting3 s1 .. s21 RUL
1 1 -0.0007 100 518.67 23.419 191
1 2 0.0019 100 518.67 23.4236 190
1 3 -0.0043 100 518.67 23.3442 189
id cycle setting1 .. setting3 s1 .. s21 a1 .. a21 RUL
1 1 -0.0007 100 518.6 23.419 518.67 23.419 191
1 2 0.0019 100 518.6 23.4236 518.67 23.4213 190
1 3 -0.0043 100 518.6 23.3442 518.67 23.3956 189
cycle Setting1 .. setting3 s1 .. s21 a1 .. a21 RUL
0 0.45977 NaN NaN 0.7246NaN 0.7786 191
0.00277 0.60919 NaN NaN 0.7310NaN 0.7829 190
0.00554 0.25287 NaN NaN 0.621375NaN 0.733906 189
cycle setting1 setting2 s2 … s21 a2 … a21 RUL
0 0.45977 0.166667 0.18373 0.72466 0.14396 0.77860 191
0.00277 0.609195 0.25 0.28313 0.73101 0.20817 0.78299 190
0.00554 0.252874 0.75 0.34337 0.62137 0.25551 0.73390 189
0.00831 0.54023 0.5 0.34337 0.66238 0.27918 0.72354 188
Filter Based Feature Selectionで
RUL cycle a4 .. sd13 .. setting1 setting2
1 0.736 0.732 0.054 0.003 0.001
RUL cycle a4 .. a11 sd13
191 0 0.289887 0.401786 0
190 0.00277 0.317735 0.409226 0.160656
189 0.00554 0.334766 0.357143 0.120224
レコメンド方式 ルールベース コンテンツベース 協調フィルタリング ベイジアンネット
ワーク
分析情報 過去の実績
マーケティングデー
タ
アイテム間の関係性 ユーザーの購買履歴 コンテンツ属性
行動履歴
ロジック 独自ルールに基づき
推薦。
コンテンツ属性を事
前に分析・分類し、
関連性を元に推薦。
購買履歴を自動的に
解析し、ユーザーの
嗜好に応じたアイテ
ムを推薦。
ユーザーが行動モデ
ルを作成し、確率を
計算した上で、推薦。
メリット 運営者、経営者の意
思を反映しやすい
コンテンツ属性を決
定する際に推薦する
ものを調整できる。
運営者の手間が少な
い。
セレンティビティあ
り。
目的に応じて、精度
の高い推薦ができる。
デメリット ユーザーの意思が反
映されにくい。
運営者の手間大
セレンティビティな
し。
運営者の手間大。
ユーザーの購買履歴
を一定数収集する必
要がある。
計算結果を得られる
ために時間がかかる。
レコメンド方式 ルールベース コンテンツベース 協調フィルタリング ベイジアンネット
ワーク
分析情報 過去の実績
マーケティングデー
タ
アイテム間の関係性 ユーザーの購買履歴 コンテンツ属性
行動履歴
ロジック 独自ルールに基づき
推薦。
コンテンツ属性を事
前に分析・分類し、
関連性を元に推薦。
購買履歴を自動的に
解析し、ユーザーの
嗜好に応じたアイテ
ムを推薦。
ユーザーが行動モデ
ルを作成し、確率を
計算した上で、推薦。
メリット 運営者、経営者の意
思を反映しやすい
コンテンツ属性を決
定する際に推薦する
ものを調整できる。
運営者の手間が少な
い。
セレンティビティあ
り。
目的に応じて、精度
の高い推薦ができる。
デメリット ユーザーの意思が反
映されにくい。
運営者の手間大
セレンティビティな
し。
運営者の手間大。
ユーザーの購買履歴
を一定数収集する必
要がある。
計算結果を得られる
ために時間がかかる。
今回の範囲
推薦のために必要な処理 工夫できるポイント
1.ユーザーどうしの類似性スコアを算出する
1.1 何をもって類似しているとするか定義す
る
1.2 定義に合わせてデータを準備する
1.3 定義に合わせて算出手法を選定し実装す
る
1.4 実際に類似性スコアを算出する
• 1.1 類似性の定義 : ビジネス状況・仮説に合わ
せて定義
• 同じ商品を購入している
• 同じ商品を高く(低く)評価している..etc
• 1.3 類似性スコアの算出方法 : いくつかの手法
を比較し、自社にとって望む結果を算出する算
出方法を採用する
• クロス集計
• ユークリッド距離
• ピアソン相関係数..etc
2.類似性スコアで重みをつけて推薦をする
重みをつける : 似ているユーザーの影響度を大き
くする
2.1 類似性スコアで重みづけの演算をする
2.2 正規化する
2.3 適切にソーティングして結果を表示 (スコ
ア高い順)
• 2.1 サービスに合わせたゆらぎの挿入
• キャンペーン中は特定商品を優先して推薦
する
• 意外性が出るように類似性の低いユーザー
のスコアも使用する
ユニコーン ガンダム This is it
砂金 5.0 3.0
江田 2.0 5.0
南野 1.0 4.0
大田 5.0 2.0
[CELLRAN
GE]
[CELLRAN
GE]
[CELLRAN
GE]
[CELLRAN
GE]
0
1
2
3
4
5
6
0 1 2 3 4 5 6
ユニコーンガンダム
This is it
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
大田との類似性スコア
砂金 0.5
江田 0.071
南野 0.055
大田に推薦する場合には、
大田との類似性スコアを算出する
類似性 Z ガンダム Z ガンダム
(重みづけ)
ワンピース ワンピース
(重みづけ)
砂金 0.5
江田 0.071
南野 0.055
合計
類似性の合計
スコア
大田が見たことのないアイテムを計算対象とする
(見たことのあるものを推薦対象とすることはないため)
類似性 Z ガンダム Z ガンダム
(重みづけ)
ワンピース ワンピース
(重みづけ)
砂金 0.5 5.0 -
江田 0.071 1.0 5.0
南野 0.055 2.0 4.0
合計
類似性の合計
スコア
各アイテムへのユーザーの評価を読み込む
ユーザーから評価されていないアイテムもある
類似性 Z ガンダム Z ガンダム
(重みづけ)
ワンピース ワンピース
(重みづけ)
砂金 0.5 5.0 2.5 -
江田 0.071 1.0 5.0
南野 0.055 2.0 4.0
合計
類似性の合計
スコア
重みづけした値を計算する
類似性 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
合計
類似性の合計
スコア
その他の値も重みづけして算出
類似性 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
類似性の合計
スコア
合計値を算出
類似性 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
類似性の合計
スコア
その他の合計値も算出
類似性 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
類似性の合計
スコア
多くの人に評価されるアイテムの点数が高くなる
これを正すための正規化が必要
合計点数を、評価者の類似度の合計で割ります
類似性 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
類似性 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
類似性 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)
今回は大田の好きなガンダムシリーズは最上位で推薦されなかった
この「良し悪し」を決めるのはサービス提供者で下記の調整も可能
意外性を求めるのであれば、計算時に類似性低い人を多めに混ぜる
堅実に行きたいのであれば、計算時に類似性高い人を多めに混ぜる
推薦システム用のモデルを挿入するだけ
モデルの入力に合わせてあげる必要があるので、
自分のデータを使う場合に注意が必要
http://bit.ly/azuremlR
SQL クエリを記載することで、
入力データを適切な形に変換
select visitorid as user,
url as item,
Max(duration) as rating
from t1
group by visitorid,url

機械学習 / Deep Learning 大全 (3) 時系列 / リコメンデーション編

  • 1.
  • 10.
    age income 20 300 30500 40 700 age income 20 300 30 500 40 700 age income 0 0 0.5 0.5 1 1
  • 14.
  • 18.
    proce ssed id cy cle coun ter endof cycle set ting1 … set ting3s1 … s21 2016-05-24 T00:00:00. 1234567Z 1 1 1 0 -0.0007 … 100 518.67 … 23.419 … 1 1 2 0 0.0019 … 100 518.67 … 23.4236 … 1 1 3 0 -0.0043 … 100 518.67 … 23.3442 … 1 1 4 0 0.0007 … 100 518.67 … 23.3739 … 1 1 5 0 -0.0019 … 100 518.67 … 23.4044 … 1 1 6 0 -0.0043 … 100 518.67 … 23.3669 … 1 1 7 1 0.001 … 100 518.67 … 23.3774
  • 21.
  • 26.
  • 28.
    id cycle setting1.. setting3 s1 .. s21 RUL 1 1 -0.0007 100 518.67 23.419 191 1 2 0.0019 100 518.67 23.4236 190 1 3 -0.0043 100 518.67 23.3442 189
  • 29.
    id cycle setting1.. setting3 s1 .. s21 a1 .. a21 RUL 1 1 -0.0007 100 518.6 23.419 518.67 23.419 191 1 2 0.0019 100 518.6 23.4236 518.67 23.4213 190 1 3 -0.0043 100 518.6 23.3442 518.67 23.3956 189
  • 31.
    cycle Setting1 ..setting3 s1 .. s21 a1 .. a21 RUL 0 0.45977 NaN NaN 0.7246NaN 0.7786 191 0.00277 0.60919 NaN NaN 0.7310NaN 0.7829 190 0.00554 0.25287 NaN NaN 0.621375NaN 0.733906 189
  • 32.
    cycle setting1 setting2s2 … s21 a2 … a21 RUL 0 0.45977 0.166667 0.18373 0.72466 0.14396 0.77860 191 0.00277 0.609195 0.25 0.28313 0.73101 0.20817 0.78299 190 0.00554 0.252874 0.75 0.34337 0.62137 0.25551 0.73390 189 0.00831 0.54023 0.5 0.34337 0.66238 0.27918 0.72354 188
  • 33.
  • 34.
    RUL cycle a4.. sd13 .. setting1 setting2 1 0.736 0.732 0.054 0.003 0.001
  • 35.
    RUL cycle a4.. a11 sd13 191 0 0.289887 0.401786 0 190 0.00277 0.317735 0.409226 0.160656 189 0.00554 0.334766 0.357143 0.120224
  • 45.
    レコメンド方式 ルールベース コンテンツベース協調フィルタリング ベイジアンネット ワーク 分析情報 過去の実績 マーケティングデー タ アイテム間の関係性 ユーザーの購買履歴 コンテンツ属性 行動履歴 ロジック 独自ルールに基づき 推薦。 コンテンツ属性を事 前に分析・分類し、 関連性を元に推薦。 購買履歴を自動的に 解析し、ユーザーの 嗜好に応じたアイテ ムを推薦。 ユーザーが行動モデ ルを作成し、確率を 計算した上で、推薦。 メリット 運営者、経営者の意 思を反映しやすい コンテンツ属性を決 定する際に推薦する ものを調整できる。 運営者の手間が少な い。 セレンティビティあ り。 目的に応じて、精度 の高い推薦ができる。 デメリット ユーザーの意思が反 映されにくい。 運営者の手間大 セレンティビティな し。 運営者の手間大。 ユーザーの購買履歴 を一定数収集する必 要がある。 計算結果を得られる ために時間がかかる。
  • 46.
    レコメンド方式 ルールベース コンテンツベース協調フィルタリング ベイジアンネット ワーク 分析情報 過去の実績 マーケティングデー タ アイテム間の関係性 ユーザーの購買履歴 コンテンツ属性 行動履歴 ロジック 独自ルールに基づき 推薦。 コンテンツ属性を事 前に分析・分類し、 関連性を元に推薦。 購買履歴を自動的に 解析し、ユーザーの 嗜好に応じたアイテ ムを推薦。 ユーザーが行動モデ ルを作成し、確率を 計算した上で、推薦。 メリット 運営者、経営者の意 思を反映しやすい コンテンツ属性を決 定する際に推薦する ものを調整できる。 運営者の手間が少な い。 セレンティビティあ り。 目的に応じて、精度 の高い推薦ができる。 デメリット ユーザーの意思が反 映されにくい。 運営者の手間大 セレンティビティな し。 運営者の手間大。 ユーザーの購買履歴 を一定数収集する必 要がある。 計算結果を得られる ために時間がかかる。 今回の範囲
  • 48.
    推薦のために必要な処理 工夫できるポイント 1.ユーザーどうしの類似性スコアを算出する 1.1 何をもって類似しているとするか定義す る 1.2定義に合わせてデータを準備する 1.3 定義に合わせて算出手法を選定し実装す る 1.4 実際に類似性スコアを算出する • 1.1 類似性の定義 : ビジネス状況・仮説に合わ せて定義 • 同じ商品を購入している • 同じ商品を高く(低く)評価している..etc • 1.3 類似性スコアの算出方法 : いくつかの手法 を比較し、自社にとって望む結果を算出する算 出方法を採用する • クロス集計 • ユークリッド距離 • ピアソン相関係数..etc 2.類似性スコアで重みをつけて推薦をする 重みをつける : 似ているユーザーの影響度を大き くする 2.1 類似性スコアで重みづけの演算をする 2.2 正規化する 2.3 適切にソーティングして結果を表示 (スコ ア高い順) • 2.1 サービスに合わせたゆらぎの挿入 • キャンペーン中は特定商品を優先して推薦 する • 意外性が出るように類似性の低いユーザー のスコアも使用する
  • 49.
    ユニコーン ガンダム Thisis it 砂金 5.0 3.0 江田 2.0 5.0 南野 1.0 4.0 大田 5.0 2.0
  • 50.
    [CELLRAN GE] [CELLRAN GE] [CELLRAN GE] [CELLRAN GE] 0 1 2 3 4 5 6 0 1 23 4 5 6 ユニコーンガンダム This is it 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
  • 52.
    大田との類似性スコア 砂金 0.5 江田 0.071 南野0.055 大田に推薦する場合には、 大田との類似性スコアを算出する
  • 53.
    類似性 Z ガンダムZ ガンダム (重みづけ) ワンピース ワンピース (重みづけ) 砂金 0.5 江田 0.071 南野 0.055 合計 類似性の合計 スコア 大田が見たことのないアイテムを計算対象とする (見たことのあるものを推薦対象とすることはないため)
  • 54.
    類似性 Z ガンダムZ ガンダム (重みづけ) ワンピース ワンピース (重みづけ) 砂金 0.5 5.0 - 江田 0.071 1.0 5.0 南野 0.055 2.0 4.0 合計 類似性の合計 スコア 各アイテムへのユーザーの評価を読み込む ユーザーから評価されていないアイテムもある
  • 55.
    類似性 Z ガンダムZ ガンダム (重みづけ) ワンピース ワンピース (重みづけ) 砂金 0.5 5.0 2.5 - 江田 0.071 1.0 5.0 南野 0.055 2.0 4.0 合計 類似性の合計 スコア 重みづけした値を計算する
  • 56.
    類似性 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 合計 類似性の合計 スコア その他の値も重みづけして算出
  • 57.
    類似性 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 類似性の合計 スコア 合計値を算出
  • 58.
    類似性 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 類似性の合計 スコア その他の合計値も算出
  • 59.
    類似性 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 類似性の合計 スコア 多くの人に評価されるアイテムの点数が高くなる これを正すための正規化が必要 合計点数を、評価者の類似度の合計で割ります
  • 60.
    類似性 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
  • 61.
    類似性 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
  • 62.
    類似性 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) 今回は大田の好きなガンダムシリーズは最上位で推薦されなかった この「良し悪し」を決めるのはサービス提供者で下記の調整も可能 意外性を求めるのであれば、計算時に類似性低い人を多めに混ぜる 堅実に行きたいのであれば、計算時に類似性高い人を多めに混ぜる
  • 63.
  • 64.
    SQL クエリを記載することで、 入力データを適切な形に変換 select visitoridas user, url as item, Max(duration) as rating from t1 group by visitorid,url