最近top-k retrievalの話を少し聞いたので、簡単にコードを書いてみた。いつものように恥もなくgithubで公開している。 cpp-ToyBox-TinyTopK(github) Top-k retrievalを簡単に説明すると、転置インデックスに対してdisjunctiveなクエリで問い合わせて(OR検索)スコアの上位k件を取得したいという話である。詳細は"[IR] 転置インデックスとtop-k query - tsubosakaの日記"がとてもわかり易いので、そちらを参照していただきたい。 Top-k retrievalではvector space modelでのdot product(もちろんcosineやBM25なども同様)を考えるので、同じ原理でコサイン距離でのk-nearest neighborや線形分類器のtop-kマルチラベル分類を行うことができたりと、(実用的に