Contenu connexe Similaire à 暗号化ベクトルデータベースのための索引構造 (6) Plus de Junpei Kawamoto (20) 暗号化ベクトルデータベースのための索引構造3. Oct. 23, 2013
暗号化ベクトルデータベースのための索引構造
3
ベクトルデータベース
• 本研究ではベクトルと何らかの値が結びついた DB を考える
• スキーマは (k, v) とする
• k: ベクトル属性 (特徴ベクトルなど)
• v: 各ベクトルに関連付けられた値属性 (データタイプは気にしない)
• 問合せの仮定
• ベクトル属性に対する次の問合せのみを考えることにする
• 「キーベクトル属性値 k が sim(k, q) ≧ α を満たすタプルの検索」
• q: 問合せのベクトル
• α: しきい値
ここでは類似度 sim としてコサイン類似
度を考え,各ベクトルは正化されている
とする.
4. Oct. 23, 2013
4
暗号化ベクトルデータベースのための索引構造
ベクトルデータベース
• 問合せの例.
問合せのベクトル:
(129, 251, 90, …. )T
しきい値:
0.8
(129, 251, 94, …. )T
特徴ベクトル
(129, 251, 94, …. )T
(98, 112, 49, …. )T
画像 (値)
8. Oct. 23, 2013
8
暗号化ベクトルデータベースのための索引構造
暗号化ベクトルデータベース (EVDB)
• 悪意あるクラウドサービス提供者から不正アクセスを防ぐ枠組み
k・q = Enck(k)・Encq(q)
を満たす暗号方式を用いる
問合せは
Enck(k)・Encq(q) ≧ α
を満たすタプルの検索
EVDB
(Enck(k), Encv(v))
・・・
VDB
データ利用者
データベース所有者
• しかしクラウドサービスは問合せ処理の最適化も行えない
• 既存手法の多くは問合せごとにすべてのタプルを走査
10. Oct. 23, 2013
暗号化ベクトルデータベースのための索引構造
局所性検知可能ハッシュ (LSH)
• 少ない情報量で近似的に類似度を計算するデータ構造
• LSH は
m 個の関数 hi (i = 1, 2, …, m) からなる
hi(v) =
1; v・bi ≧ 0
0; otherwise
(bi は関数 hi ごとに異なるベクトル)
• あるベクトル v に対する LSH のハッシュ値
• lsh(v) = (h1(v), h2(v), …, hm(v))
• LSH の特徴
cos(u, v) ≈ cos(π (1− Pr[lsh(u) = lsh(v)]))
• Pr[lsh(u)=lsh(v)]:
二つのベクトル u, vに対する LSH 値のうち
いくつ共通の値が合ったか( hi(u) = hi(v) )
10
11. Oct. 23, 2013
11
暗号化ベクトルデータベースのための索引構造
局所性検知可能ハッシュ (LSH)
• 例)
• lsh(u) = (1, 1, 0)
• lsh(v) = (1, 1, 1)
• Pr[lsh(u) = lsh(v)] = 2/3
b1
u
v
b2
• cos(u, v) 〜 cos(π(1 – 2/3)) = 1/2
b3
• 近似類似度の精度は,
• m の個数に依存する(多ければ精度は高い) m
• ベクトルの分布に依存する(広く分散していれば精度は高い)
白色化することで対応 → これにより元データの偏りに関わらず動作する
13. Oct. 23, 2013
暗号化ベクトルデータベースのための索引構造
LSHフィルタの作成
• クラウドサーバ上では,
LSH値を元に各タプルをグループ化して保管
LSH value
(1, 0, ……, 0)
tuple
((1, 0, ….., 0), Enck(k1), Encv(v1))
((1, 0, ….., 0), Enck(k2), Encv(v2))
(1, 1, ……, 0)
((1, 1, ….., 0), Enck(k1), Encv(v1))
13
14. Oct. 23, 2013
暗号化ベクトルデータベースのための索引構造
14
問合せ処理時のフィルタリング
• サーバは問合せベクトルのLSH値を計算する
lsh(Encq(q)) を計算
find Enck(k) s.t.
Enck(k)・Encq(q)≧α
LSH 値
タプル
(1, 0, ……, 0)
((1, 0, ….., 0), Enck(k1), Encv(v1))
((1, 0, ….., 0), Enck(k2), Encv(v2))
データ利用者
(1, 1, ……, 0)
((1, 1, ….., 0), Enck(k1), Encv(v1))
15. Oct. 23, 2013
暗号化ベクトルデータベースのための索引構造
15
問合せ処理時のフィルタリング
• サーバは問合せベクトルのLSH値を計算する
lsh(Encq(q)) を計算
find Enck(k) s.t.
Enck(k)・Encq(q)≧α
LSH 値
タプル
(1, 0, ……, 0)
((1, 0, ….., 0), Enck(k1), Encv(v1))
((1, 0, ….., 0), Enck(k2), Encv(v2))
データ利用者
Pr[(1,0,…,0)=lsh(Encq(q))] を計算することで
(1, 1, ……, 0)
((1, 1, …..,
このグループに含まれるデータと問合せの類似度を近似計算
0), Enck(k1), Encv(v1))
16. Oct. 23, 2013
暗号化ベクトルデータベースのための索引構造
16
問合せ処理時のフィルタリング
• サーバは問合せベクトルのLSH値を計算する
(近似計算された類似度) <α
ならばこのグループはスキップする
find Enck(k) s.t.
Enck(k)・Encq(q)≧α
lsh(Encq(q)) を計算
LSH 値
タプル
(1, 0, ……, 0)
((1, 0, ….., 0), Enck(k1), Encv(v1))
((1, 0, ….., 0), Enck(k2), Encv(v2))
データ利用者
Pr[(1,0,…,0)=lsh(Encq(q))] を計算することで
(1, 1, ……, 0)
((1, 1, …..,
このグループに含まれるデータと問合せの類似度を近似計算
0), Enck(k1), Encv(v1))
17. Oct. 23, 2013
暗号化ベクトルデータベースのための索引構造
17
問合せ処理時のフィルタリング
• サーバは問合せベクトルのLSH値を計算する
同様に,このグループに含まれる
データと問合せの類似度を近似計算
find Enck(k) s.t.
Enck(k)・Encq(q)≧α
lsh(Encq(q)) を計算
LSH 値
タプル
(1, 0, ……, 0)
((1, 0, ….., 0), Enck(k1), Encv(v1))
((1, 0, ….., 0), Enck(k2), Encv(v2))
データ利用者
(1, 1, ……, 0)
((1, 1, ….., 0), Enck(k1), Encv(v1))
18. Oct. 23, 2013
暗号化ベクトルデータベースのための索引構造
18
問合せ処理時のフィルタリング
• サーバは問合せベクトルのLSH値を計算する
同様に,このグループに含まれる
データと問合せの類似度を近似計算
find Enck(k) s.t.
Enck(k)・Encq(q)≧α
lsh(Encq(q)) を計算
LSH 値
タプル
(1, 0, ……, 0)
((1, 0, ….., 0), Enck(k1), Encv(v1))
(近似類似度) ≧αのとき,
グループ内の各タプルについて
正しい類似度を計算
データ利用者
((1, 0, ….., 0), Enck(k2), Encv(v2))
(1, 1, ……, 0)
((1, 1, ….., 0), Enck(k1), Encv(v1))
19. Oct. 23, 2013
暗号化ベクトルデータベースのための索引構造
19
問合せ処理時のフィルタリング
• サーバは問合せベクトルのLSH値を計算する
同様に,このグループに含まれる
データと問合せの類似度を近似計算
find Enck(k) s.t.
Enck(k)・Encq(q)≧α
lsh(Encq(q)) を計算
LSH 値
タプル
(1, 0, ……, 0)
((1, 0, ….., 0), Enck(k1), Encv(v1))
(近似類似度) ≧αのとき,
グループ内の各タプルについて
正しい類似度を計算
データ利用者
((1, 0, ….., 0), Enck(k2), Encv(v
実際の類似度 Enck(k)・Encq(q) 2))
を計算
(1, 1, ……, 0)
((1, 1, ….., 0), Enck(k1), Encv(v1))
類似度がしきい値未満であるグループをスキップすることで処理時間を削減する
20. Oct. 23, 2013
暗号化ベクトルデータベースのための索引構造
20
問合せ処理時間の比較
time (sec) (log scale)
• IPP 法† を用いた EVDB で問合せ時間を比較.
• IPP 法は範囲検索に対応した EVDB の一種(詳細は割愛します)
• 横軸は問合せ範囲の幅,縦軸は問合せ処理時間(対数尺度).
†J. Kawamoto, M. Yoshikawa: Private Range Query by Perturbation and Matrix Based Encryption. In
Proc. of the 6th IEEE International Conf. on Digital Information Management, pp. 211–216. (2011)
21. Oct. 23, 2013
暗号化ベクトルデータベースのための索引構造
21
問合せ処理時間の比較
問合せ処理時間の
削減を確認
time (sec) (log scale)
• IPP 法† を用いた EVDB で問合せ時間を比較.
• IPP 法は範囲検索に対応した EVDB の一種(詳細は割愛します)
• 横軸は問合せ範囲の幅,縦軸は問合せ処理時間(対数尺度).
m = 128 (recall = 0.6)
†J. Kawamoto, M. Yoshikawa: Private Range Query by Perturbation and Matrix Based Encryption. In
Proc. of the 6th IEEE International Conf. on Digital Information Management, pp. 211–216. (2011)