プライバシ協調フィルタリング における 利用者評価行列の次元削減 ○木澤 寛厚, 菊池 浩明(東海大) 背景 ネットショップ 商品が多すぎ 見つからな いorz 情報推薦システム amazon 他の利用者の嗜好に 基づき,利用者の嗜 好を予想 利用者の嗜好に合う 商品を提示する http://www.amazon.co.jp/ 従来方式と提案方式の違い 従来方式 サーバ B’ MAC S 漏洩 提案方式 MAC 暗号化 漏洩しない A A B C MAC ? Windows A B C B’ MAC A B ? B C Windows C 提案方式 精度 MAE 1.秘匿CF方式 コスト GB PCF ◎ 0.72 × 1024 CCF ○ 0.75 ○ 28 SCF △ 0.99 ○ 36 LL × 1.0 ◎ --- 2.アイテム クラスタリング 3.ユーザ サンプリング 4.最尤法 協調フィルタリング(CF方式) A B C D iPhone フィレオ フィッシュ カレー 5 5 1 5 * 1 5 2 3 3 2 *=Aの平均+ 類似度S 平均 0.97 0.35 1.0 3.5 3 3 3.5 Bとの類似度・Bの評価+Cとの類似度・Cの評価 類似度の総和 0.97(1-3)+0.35(5-3) =3.5 + = 0.97+0.35 2.6 提案方式:秘匿CF方式 準同型性暗号でCF方式を計算する – 評価値の正規化 • コサイン尺度を和と積で実現するために 評価値を距離で割る – 欠損値をマスクするフラグ • 予測値のアイテムを評価していないユーザは 推薦に利用しない – 評価値の積の予備計算 秘匿CF方式 -予備計算 Bとの類似度・Bの評価 = S(A,B)・(b2-b) =(a1b1+a2b2+a3b3)(b2-b) =(a1b1b2+a2b2b2+a3b3b2)-(a1b1b+a2b2b+a3b3b) E E (b1b2 ) E (b2b2 ) a1 B E (b1b1 ) E (b1b2 ) E (b2b2 ) E (b1b3 ) E (b2b3 ) E (b3b3 ) 暗号文 m(m+1)/2個 a2 被推薦者 A 1024GB アプローチ 1 3 5 CCF方式 A 評価行列の次元削減 B C 1 2 3 4 5 D A E B C 1 2 3 4 5 SCF方式 D A E C E CCF方式 第3次的な情報から アイテムをクラスタリング そのクラスタ中でのみ 秘匿CF方式を適用 SCF方式 何人かサンプリングする コミュニティに分割する 評価値を決め秘匿CF方 式を適用 アイテム集合I クラス クラス 1 2 iPhone フィレオ A 5 * B 5 1 C 1 5 D 5 ユーザ集合U α コミュニティ β コミュニティ iPhone フィレオ カレー α 4 4 2 β 3 2 3 A 5 * 2 評価実験 公開データベース(Group Lens)を使用し MAE・通信コスト・計算コストを調べる – 100個の評価値を未評価とみなし推薦値を求めMAE を調べる – CCF方式はクラスタ数,SCF方式はコミュニティ数を 変動させMAE・通信コスト・計算コストを調べる – 暗号文のサイズを256byteとして通信コストを導出する – べき乗計算を1764(ms)として計算コストを導出する ユーザ数 943人 アイテム数 1682個 総評価数 100,000個 CCF方式 MAE クラスタ数1~19 0.86 500 0.82 computation cost[s] MAE communication cost[GB] 0.84 0.8 0.78 0.76 0.74 0.72 0.7 0 2 4 6 8 10 12 14 number of clusters 16 18 0 20 CCF方式 通信コスト・計算コスト 1200 2967秒 1024GB 3000 communication_cost computation_cost 2500 800 2000 600 1500 400 1000 156秒 3GB 200 0 0 2 4 6 8 10 12 14 number of clusters 16 18 500 0 20 computation cost[s] communication cost[GB] 1000 結論 プライバシを秘匿した秘匿CF方式を提案 通信コストを減少させるための3つの改良案 を提案 – CCF方式 – SCF方式 – (LL方式) 課題 各方式を実用可能なコストまで下げる ご清聴ありがとうございました 関連技術 - 準同型性暗号 暗号化したまま計算できる –E –E E (a) E (b) E (a b) E (a) E (ab) b 割り算は行えない 関連技術 – 協調フィルタリング方式(CF法) 評価値 高10 9 8 7 6 5 4 3 2 1低 user1 user2 itemA itemB itemC itemD itemE 8 5 4 9 7 8 5 4 X 7 X=9? itemF 5 5 協調フィルタリング(評価値計算) ユーザ集合 U={u1,u2,…,um} アイテム集合 I={i1,i2,…,in} pi ,k r i jU k s(ui , u j )( rj ,k rj ) jU k s(ui , u j ) ・Uk = i ∈ U|ri,k = φ(未評価のアイテムの評価) ・s(ui,uj) = uiとujの類似度(コサイン尺度) ・ ri = uiの評価した評価値の平均 コサイン尺度(類似度) ・ユーザaとユーザbの類似度を求める ユーザaの各アイテムに対する評価値A={a1,a2,…an} ユーザbの各アイテムに対する評価値B={b1,b2,…bn} s ( a, b) a1b1 anbn a a 2 1 2 n b b 2 1 これらを準同型性暗号で行う 2 n 秘匿CF方式 (分母) 2-2 A ユーザB 暗号文 iPhone フィレオ カレー Flag iPhone 5 1 3 iPhone フィレオ A 5 ? 2 Flag フィレオ 5 1 3 B 5 1 3 Flag カレー 5 1 3 C 1 5 3 ユーザC D 5 iPhone フィレオ カレー Flag iPhone 1 5 3 Flag フィレオ 1 5 3 Flag カレー 1 5 3 iPhone フィレオ カレー Flag iPhone 5 0 2 Flag フィレオ 0 0 0 Flag カレー 5 0 2 カレー 2 「フィレオ」の予測値を 得るためには 「Flag フィレオ」の値を使って 分母を計算する ユーザD 秘匿CF方式(コサイン尺度) iPhone s( A, B) 暗号化して 行う場合 フィレオ カレー A a1 a a2 a a3 a B b1 b b2 b b3 b a1 b1 a2 b2 a3 b3 a1b1 a2b2 a3b3 a b a b a b ab a1 a a2 a b1 b2 b3 E ( s ( A, B)) E E E b b b a3 a a1b1 a2b2 a3b3 E a b SCF方式 MAE 1 0.95 MAE 0.9 0.85 0.8 0.75 0.7 1 6 111621263136414651566166717681869196 nuber numberofofcommunities communities d d SCF方式 通信コスト communication cost [GB] 1000 100 10 1 0 10 20 30 40 50 60 70 80 number of communities d number of communities d 90 100 協調フィルタリング方式 iPhone フィレオ フィッシュ カレー A 1 ? 2 B 5 1 3 C 1 5 3 D 5 D C サーバ 2 推薦依頼 B ?の値を計算 A 値を返す 協調フィルタリング方式(類似度) iPhone フィレオ フィッシュ カレー A 5a1 a2 ? 2a3 B 5b1 1b2 3b3 C 1c1 5c2 3c3 D 5d1 d2 2d3 s ( A, B) サーバ a1b1 a2b2 a3b3 a12 a22 a32 b12 b22 b32 類似度計算 s(A,B) (5*5+0*1+2*3)/{√(52+02+22)*√(52+12+32)}=0.97 協調フィルタリング(予測値計算) iPhone フィレオ フィッシュ カレー A 5 ? 2 B 5 1 3 C 1 5 3 D 5 pa, 2 サーバ 2 s( A, B)(b2 b) s( A, C )(c2 c) a s( A, B) s( A, C ) pa,2=3.5+{0.97(1-3)+0.35(5-3)}/(0.97+0.35) これらの計算を =2.6 準同型性暗号で計算する 提案方式:秘匿CF方式 暗号化 した 評価値 を 送信 iPhone フィレオ フィッシュ カレー A 5 ? 2 B 5 1 3 C 1 5 3 D 5 D 2 C B 暗号化したまま ?を計算し 復号する A 推薦依頼 秘匿CF方式 – 手順 pa, 2 A s( A, B)(b2 b) s( A, C )(c2 c) a s( A, B) s( A, C ) 被推薦者は分子と分母をそれぞれ計算 (暗号化したまま) 分子と分母の値をそれぞれ復号 – 閾値復号する (鍵はm人のユーザで分散しているとする) 分子と分母の値を割り平均を足す 秘匿CF方式(分母) pa , 2 s( A, B)(b2 b) s( A, C )(c2 c) a s( A, B) s( A, C ) iPhone フィレオ カレー A 5 ? 2 B 5 1 3 C 1 5 3 D 5 0 2 コサイン尺度 s ( A, B) a1b1 a2b2 a3b3 a12 a22 a32 b12 b22 b32 ポイント 1.コサイン尺度には割り算があるのでそのままでは準 同型性暗号の適用は不可能. 2.予測値を得たいアイテムを評価していないユーザの 類似度は加算しない 秘匿CF方式 (分母) 1-1 コサイン尺度を準同型性暗号で計算 できるように和と積だけにする – 各ユーザが評価値をあらかじめノルムで 割っておく(単位ベクトルにする) iPhone フィレオ カレー |u| A a1 a2 a3 a12 a22 a32 a B b1 b2 b3 b12 b22 b32 b iPhone 評価値とする フィレオ カレー A a1 a a2 a a3 a B b1 b b2 b b3 b B 秘匿CF方式 (分母) 1-2 iPhone s( A, B) 暗号化して 行う場合 フィレオ A カレー A a1 a a2 a a3 a B b1 b b2 b b3 b a1 b1 a2 b2 a3 b3 a1b1 a2b2 a3b3 a b a b a b ab a1 a a2 a b1 b2 b3 E ( s ( A, B)) E E E b b b a3 a a1b1 a2b2 a3b3 E a b B 秘匿CF方式 (分母) 2-1 D C 0か1のフラグを用意して未評価を判断 iPhone D 5 フィレオ カレー 2 ※実際はノルムを割る フィレオ 0 カレー 2 Flag フィレオ 0 0 0 Flag カレー 0 2 iPhone Flag iPhone 5 5 一つ一つ暗号化して,全て被推薦者Aに送信する 秘匿CF方式 (分母) 2-2 A ユーザB 暗号文 iPhone フィレオ カレー Flag iPhone 5 1 3 iPhone フィレオ A 5 ? 2 Flag フィレオ 5 1 3 B 5 1 3 Flag カレー 5 1 3 C 1 5 3 ユーザC D 5 iPhone フィレオ カレー Flag iPhone 1 5 3 Flag フィレオ 1 5 3 Flag カレー 1 5 3 iPhone フィレオ カレー Flag iPhone 5 0 2 Flag フィレオ 0 0 0 Flag カレー 5 0 2 カレー 2 「フィレオ」の予測値を 得るためには 「Flag フィレオ」の値を使って 分母を計算する ユーザD 秘匿CF方式 (分母) 2-3 A ユーザB iPhone フィレオ カレー A 5 ? 2 B 5 1 3 C 1 5 3 D 5 Flag フィレオ iPhone フィレオ カレー 5 1 3 iPhone フィレオ カレー 1 5 3 iPhone フィレオ カレー 0 0 0 ユーザC Flag フィレオ 2 ユーザD Flag フィレオ 分母=S(A,B)+S(A,C)+S(A,D)=0.97+0.35+0=1.32 フィレオを評価していないユーザDの類似度が0 になるため足されたことにならない
© Copyright 2024 ExpyDoc