本記事は、情報検索・検索技術 Advent Calendar 2023 9日目の記事です。 SIF/uSIFという文埋め込み手法と、そのRust実装であるsif-embeddingを紹介します。最後にちょこっとベクトル検索もします。
文章を実数値ベクトルとして表現したものを文章ベクトルと呼びます。文脈によっては文章埋め込みや文章の分散表現とも呼ばれます。離散的な文章データを機械学習などに応用するにはベクトル表現が必要なことが多く、「どうすれば文章の特徴をよく表現したベ…
本記事では、文字列集合を保存し検索するためのシンプルで強いデータ構造であるFrontCoding文字列辞書(以下、FC辞書)を紹介します。このために使われるデータ構造としてはハッシュ表やTrieがメジャーです。それに対して、FC辞書はあまり使われていない印象…
C++でファイルを読み込むとき、std::ifstream を使うのが一般的だと思います。本記事では、ifstream でファイルを後ろ向きに読み込む場合には、バッファリングに気を付けて実装しないと読み込みがとても遅くなってしまうことについて解説します。 以下、固定…
圧縮ダブル配列を利用したトライ辞書ライブラリXcdatをリリースしました。 github.com 頑張って整備したので、簡単ではありますが解説記事を書いて宣伝したいと思います。Star頂けるととても喜びます。
前回の最尤推定法に引き続き、ITエンジニアのための機械学習理論入門で勉強したのでメモ。今回は7章のEMアルゴリズム。 ベルヌーイ分布での最尤推定 N 個の観測点 が与えられて、観測点は D 次元の2値ベクトルとする。つまり 。 各次元はベルヌーイ分布に…
機械学習の知識を忘れるたびにITエンジニアのための機械学習理論入門で勉強し直してる。いい加減この輪廻を断ち切るため簡単にでもメモを残していくべき。今回は3章の最尤推定法。 パラメトリックモデル 以下のステップで予測モデルを決定する手法 パラメー…
内容はタイトルの通りで、C++17でコンパイル時定数として扱えるダブル配列を実装して遊びました。ご承知の通り、コンパイル時計算は最高ですしダブル配列も最高です。よってこの試みは最高です。1 実装は以下で公開しています。 github.com 本記事では、この…
記念すべき最初の記事です。 最近忘却がひどいので、学んだことをちゃんとここに残していけたらなと思います。 内容 本記事では以下の論文 Bender M.A., Cole R., Demaine E.D., Farach-Colton M., Zito J. Two Simplified Algorithms for Maintaining Order…