ゴクロの浜本です。ネットカフェでコードを書くのが好きです。 前回のエントリーでも触れられていますが、SmartNewsはホットな話題をユーザにお届けするために、常時、膨大な数のツイートおよびURLをクロールしています。こうして収集した記事に対し、様々な分析が施されますが、その中でも重要な処理の1つに、記事の類似度判定があります。内容の似通った記事をインデックスから発見し、グループ化する処理です。 毎秒、大量の新着記事が到着することから、この類似度判定は高速に実行する必要があります。また、インデックスを全てメモリに載せているので、類似度判定を実現する際の空間効率も要求されます。 今回は、SmartNewsが高速かつ省スペースな類似度判定のために使用しているb-Bit MinHashと呼ばれる手法を紹介します。2年前に、PFIの岡野原さんが非常に分かりやすい解説記事を書かれており、本エントリー
![b-Bit MinHashによる高速かつ省スペースな類似度判定 - SmartNews Engineering Blog](https://cdn-ak-scissors.b.st-hatena.com/image/square/a4fb666f9cfb824150a0c07a37d94db3f263f028/height=288;version=1;width=512/https%3A%2F%2Fdeveloper.smartnews.com%2Fblog%2Fimages%2Fdefault.png)