SlideShare uma empresa Scribd logo
1 de 19
Baixar para ler offline
自己紹介
■名前
守谷 純之介(もりや じゅんのすけ)
■所属
リクルートテクノロジーズ
ITM ASG(アプリケーション・ソリューション・グループ)
■仕事
検索・検索・検索
Bloom Filter とは?
• 要素が集合に含まれるか?否か?を判定
• 偽陽性(False Positive)のアルゴリズム
– 答え「含まれる」 → あやしい
– 答え「含まれない」 → 正しい
• 要素を追加できるが、削除できない
• 元のデータを取り出せない(安全)
• とても小さい(入力サイズに依存しないフットプリント)
• とても速い(入力サイズに依存しない追加と検索)
偽陽性
「H9K4H9」はある?
「ないです」
↓
大丈夫、本当にない
「あります」
↓
あやしい
?
◯
偽陽性
偽陽性素数判定プログラム
「素数じゃないです」
↓
大丈夫、本当に素数ではない
「素数です」
↓
あやしい
?
◯
function isPrime(n) {
if (2 === n || 3 === n || 5 ===n || 7 === n) {
return true;
}
if (0 === (n % 2)) {
return false;
}
if (0 === (n % 3)) {
return false;
}
if (0 === (n % 5)) {
return false;
}
if (0 === (n % 7)) {
return false;
}
return true;
}
どこかで使われてるの?
Akamai
Google BigTable
Google Chrome
Apache Lucene
Apache HBase
Apache Hadoop
Apache Cassandra
Squid
LevelDB
Oracle
どんな原理なのか?
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
25bit 版 Bloom Filter
初期状態
• Bloom Filter(index)は m
bit のビット配列(例は
25bit)
• 初期状態では全部 0
• k 個のハッシュ関数を定義
(k 個のハッシュ関数を準
備する必要はなく、異なる
k 個の初期値でもOK)
• 一つの要素を追加すると
k 個の 1 を登録
• 要素の検索は k 個のビッ
トが 1 であるか?を検索
追加
0 1 1 1 0
0 0 0 1 0
0 0 1 0 0
0 0 1 0 0
0 1 0 0 0
「ア」を登録
0 1 1 1 0
0 0 0 1 0
0 0 1 0 0
0 0 1 0 0
0 1 0 0 0
m(=25)ビット、k(=7)の例
追加
「イ」を登録
0 1 1 1 0
0 0 1 1 0
0 1 1 0 0
1 0 1 0 0
0 1 1 0 0
0 0 0 1 0
0 0 1 0 0
0 1 1 0 0
1 0 1 0 0
0 0 1 0 0
m(=25)ビット、k(=7)の例
検索
「ウ」はあるか?
0 1 1 1 0
0 0 1 1 0
0 1 1 0 0
1 0 1 0 0
0 1 1 0 0
0 0 1 0 0
1 1 1 0 0
1 0 0 1 0
0 0 1 0 0
0 1 0 0 0
m(=25)ビット、k(=7)の例
検索
Bloom Filter 初期状
態
「ウ」はあるか?
0 1 1 1 0
0 0 1 1 0
0 1 1 0 0
1 0 1 0 0
0 1 1 0 0
0 0 1 0 0
1 1 1 0 0
1 0 0 1 0
0 0 1 0 0
0 1 0 0 0
OK
×
ない!→ 正しい
OK
×
検索
「T」はあるか?
0 1 1 1 0
0 0 1 1 0
0 1 1 0 0
1 0 1 0 0
0 1 1 0 0
0 1 1 1 0
0 0 1 0 0
0 0 1 0 0
0 0 1 0 0
0 0 1 0 0
m(=25)ビット、k(=7)の例
検索
Bloom Filter 初期状
態
「T」はあるか?
0 1 1 1 0
0 0 1 1 0
0 1 1 0 0
1 0 1 0 0
0 1 1 0 0
0 1 1 1 0
0 0 1 0 0
0 0 1 0 0
0 0 1 0 0
0 0 1 0 0
OK
OK
OK
OK
OK
OK
OK
OK
OK
OK
ある!→ 正しくない
OK OK OK OK
ハッシュ関数はどのような?
Murmur
FVN
Jenkins Hash
MD5
Kirsch & Mitzenmacher (2006)
※これらの初期値を k 個準備
して、値を m で割ればOK
実際のフロー(登録)
「foo」を登録
↓
hash_1(foo) % m, … , hash_k(foo) % m
↓
23, … , 54
↓
Indexの23番目を1, … , indexの54番目を1
実際のフロー(検索)
「bar」を検索
↓
hash_1(bar) % m, … , hash_k(bar) % m
↓
1021, … , 324
↓
Indexの1021番目は1?, … , indexの324番目は1?
↓
全部 1 なら「ある」
一つでも 0 なら「ない」
実際にはどれくらい間違うのか?
登録件数を n
ハッシュ関数が一様に分布
(1-e-kn/m
)k
実際の誤り確率
ビット配列長 ハッシュ関数の
個数
要素数 誤り確
率
8 bit 4 20 40 %
100 KByte
(= 819,200 bit)
8 1,000,000 67%
1 MByte
(= 8,388,608 bit)
8 1,000,000 1.7%
THX

Mais conteúdo relacionado

Mais de Recruit Technologies

リクルートグループの現場事例から見る AI/ディープラーニング ビジネス活用の勘所
リクルートグループの現場事例から見る AI/ディープラーニング ビジネス活用の勘所リクルートグループの現場事例から見る AI/ディープラーニング ビジネス活用の勘所
リクルートグループの現場事例から見る AI/ディープラーニング ビジネス活用の勘所Recruit Technologies
 
Company Recommendation for New Graduates via Implicit Feedback Multiple Matri...
Company Recommendation for New Graduates via Implicit Feedback Multiple Matri...Company Recommendation for New Graduates via Implicit Feedback Multiple Matri...
Company Recommendation for New Graduates via Implicit Feedback Multiple Matri...Recruit Technologies
 
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例リクルートにおけるマルチモーダル Deep Learning Web API 開発事例
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例Recruit Technologies
 
ユーザー企業内製CSIRTにおける対応のポイント
ユーザー企業内製CSIRTにおける対応のポイントユーザー企業内製CSIRTにおける対応のポイント
ユーザー企業内製CSIRTにおける対応のポイントRecruit Technologies
 
ユーザーからみたre:Inventのこれまでと今後
ユーザーからみたre:Inventのこれまでと今後ユーザーからみたre:Inventのこれまでと今後
ユーザーからみたre:Inventのこれまでと今後Recruit Technologies
 
Struggling with BIGDATA -リクルートおけるデータサイエンス/エンジニアリング-
Struggling with BIGDATA -リクルートおけるデータサイエンス/エンジニアリング-Struggling with BIGDATA -リクルートおけるデータサイエンス/エンジニアリング-
Struggling with BIGDATA -リクルートおけるデータサイエンス/エンジニアリング-Recruit Technologies
 
EMRでスポットインスタンスの自動入札ツールを作成する
EMRでスポットインスタンスの自動入札ツールを作成するEMRでスポットインスタンスの自動入札ツールを作成する
EMRでスポットインスタンスの自動入札ツールを作成するRecruit Technologies
 
リクルートにおけるセキュリティ施策方針とCSIRT組織運営のポイント
リクルートにおけるセキュリティ施策方針とCSIRT組織運営のポイントリクルートにおけるセキュリティ施策方針とCSIRT組織運営のポイント
リクルートにおけるセキュリティ施策方針とCSIRT組織運営のポイントRecruit Technologies
 
ユーザー企業内製CSIRTにおける対応のポイント
ユーザー企業内製CSIRTにおける対応のポイントユーザー企業内製CSIRTにおける対応のポイント
ユーザー企業内製CSIRTにおける対応のポイントRecruit Technologies
 
リクルートテクノロジーズが語る 企業における、「AI/ディープラーニング」活用のリアル
リクルートテクノロジーズが語る 企業における、「AI/ディープラーニング」活用のリアルリクルートテクノロジーズが語る 企業における、「AI/ディープラーニング」活用のリアル
リクルートテクノロジーズが語る 企業における、「AI/ディープラーニング」活用のリアルRecruit Technologies
 
「リクルートデータセット」 ~公開までの道のりとこれから~
「リクルートデータセット」 ~公開までの道のりとこれから~「リクルートデータセット」 ~公開までの道のりとこれから~
「リクルートデータセット」 ~公開までの道のりとこれから~Recruit Technologies
 
運用で泣かないアーキテクチャで動く原稿作成支援システム ~リクルートにおけるDeepLearning活用事例~
運用で泣かないアーキテクチャで動く原稿作成支援システム ~リクルートにおけるDeepLearning活用事例~運用で泣かないアーキテクチャで動く原稿作成支援システム ~リクルートにおけるDeepLearning活用事例~
運用で泣かないアーキテクチャで動く原稿作成支援システム ~リクルートにおけるDeepLearning活用事例~Recruit Technologies
 
リクルートにおける画像解析事例紹介と周辺技術紹介
リクルートにおける画像解析事例紹介と周辺技術紹介リクルートにおける画像解析事例紹介と周辺技術紹介
リクルートにおける画像解析事例紹介と周辺技術紹介Recruit Technologies
 
Struggle against cross-domain data complexity in Recruit group
Struggle against cross-domain data complexity in Recruit groupStruggle against cross-domain data complexity in Recruit group
Struggle against cross-domain data complexity in Recruit groupRecruit Technologies
 
Case study of DevOps for Hadoop in Recruit.
Case study of DevOps for Hadoop in Recruit.Case study of DevOps for Hadoop in Recruit.
Case study of DevOps for Hadoop in Recruit.Recruit Technologies
 
A3RT -The details and actual use cases of“Analytics & Artificial intelligence...
A3RT -The details and actual use cases of“Analytics & Artificial intelligence...A3RT -The details and actual use cases of“Analytics & Artificial intelligence...
A3RT -The details and actual use cases of“Analytics & Artificial intelligence...Recruit Technologies
 

Mais de Recruit Technologies (20)

リクルートグループの現場事例から見る AI/ディープラーニング ビジネス活用の勘所
リクルートグループの現場事例から見る AI/ディープラーニング ビジネス活用の勘所リクルートグループの現場事例から見る AI/ディープラーニング ビジネス活用の勘所
リクルートグループの現場事例から見る AI/ディープラーニング ビジネス活用の勘所
 
Company Recommendation for New Graduates via Implicit Feedback Multiple Matri...
Company Recommendation for New Graduates via Implicit Feedback Multiple Matri...Company Recommendation for New Graduates via Implicit Feedback Multiple Matri...
Company Recommendation for New Graduates via Implicit Feedback Multiple Matri...
 
リクルート式AIの活用法
リクルート式AIの活用法リクルート式AIの活用法
リクルート式AIの活用法
 
銀行ロビーアシスタント
銀行ロビーアシスタント銀行ロビーアシスタント
銀行ロビーアシスタント
 
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例リクルートにおけるマルチモーダル Deep Learning Web API 開発事例
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例
 
ユーザー企業内製CSIRTにおける対応のポイント
ユーザー企業内製CSIRTにおける対応のポイントユーザー企業内製CSIRTにおける対応のポイント
ユーザー企業内製CSIRTにおける対応のポイント
 
ユーザーからみたre:Inventのこれまでと今後
ユーザーからみたre:Inventのこれまでと今後ユーザーからみたre:Inventのこれまでと今後
ユーザーからみたre:Inventのこれまでと今後
 
Struggling with BIGDATA -リクルートおけるデータサイエンス/エンジニアリング-
Struggling with BIGDATA -リクルートおけるデータサイエンス/エンジニアリング-Struggling with BIGDATA -リクルートおけるデータサイエンス/エンジニアリング-
Struggling with BIGDATA -リクルートおけるデータサイエンス/エンジニアリング-
 
EMRでスポットインスタンスの自動入札ツールを作成する
EMRでスポットインスタンスの自動入札ツールを作成するEMRでスポットインスタンスの自動入札ツールを作成する
EMRでスポットインスタンスの自動入札ツールを作成する
 
RANCHERを使ったDev(Ops)
RANCHERを使ったDev(Ops)RANCHERを使ったDev(Ops)
RANCHERを使ったDev(Ops)
 
リクルートにおけるセキュリティ施策方針とCSIRT組織運営のポイント
リクルートにおけるセキュリティ施策方針とCSIRT組織運営のポイントリクルートにおけるセキュリティ施策方針とCSIRT組織運営のポイント
リクルートにおけるセキュリティ施策方針とCSIRT組織運営のポイント
 
ユーザー企業内製CSIRTにおける対応のポイント
ユーザー企業内製CSIRTにおける対応のポイントユーザー企業内製CSIRTにおける対応のポイント
ユーザー企業内製CSIRTにおける対応のポイント
 
リクルートテクノロジーズが語る 企業における、「AI/ディープラーニング」活用のリアル
リクルートテクノロジーズが語る 企業における、「AI/ディープラーニング」活用のリアルリクルートテクノロジーズが語る 企業における、「AI/ディープラーニング」活用のリアル
リクルートテクノロジーズが語る 企業における、「AI/ディープラーニング」活用のリアル
 
「リクルートデータセット」 ~公開までの道のりとこれから~
「リクルートデータセット」 ~公開までの道のりとこれから~「リクルートデータセット」 ~公開までの道のりとこれから~
「リクルートデータセット」 ~公開までの道のりとこれから~
 
運用で泣かないアーキテクチャで動く原稿作成支援システム ~リクルートにおけるDeepLearning活用事例~
運用で泣かないアーキテクチャで動く原稿作成支援システム ~リクルートにおけるDeepLearning活用事例~運用で泣かないアーキテクチャで動く原稿作成支援システム ~リクルートにおけるDeepLearning活用事例~
運用で泣かないアーキテクチャで動く原稿作成支援システム ~リクルートにおけるDeepLearning活用事例~
 
リクルートにおける画像解析事例紹介と周辺技術紹介
リクルートにおける画像解析事例紹介と周辺技術紹介リクルートにおける画像解析事例紹介と周辺技術紹介
リクルートにおける画像解析事例紹介と周辺技術紹介
 
Spring “BigData”
Spring “BigData”Spring “BigData”
Spring “BigData”
 
Struggle against cross-domain data complexity in Recruit group
Struggle against cross-domain data complexity in Recruit groupStruggle against cross-domain data complexity in Recruit group
Struggle against cross-domain data complexity in Recruit group
 
Case study of DevOps for Hadoop in Recruit.
Case study of DevOps for Hadoop in Recruit.Case study of DevOps for Hadoop in Recruit.
Case study of DevOps for Hadoop in Recruit.
 
A3RT -The details and actual use cases of“Analytics & Artificial intelligence...
A3RT -The details and actual use cases of“Analytics & Artificial intelligence...A3RT -The details and actual use cases of“Analytics & Artificial intelligence...
A3RT -The details and actual use cases of“Analytics & Artificial intelligence...
 

Último

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 

Último (7)

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 

BLOOM FILTER