TF-IDFとは
TF-IDFとは、TF-IDF
読み: ティーエフアイディーエフ
TF-IDF(Term Frequency-Inverse Document Frequency)は、文書内での単語の出現頻度と、全文書における単語の希少性を掛け合わせて、その単語がその文書にとってどれだけ重要かを数値化する手法。情報検索と自然言語処理の基盤技術であり、全文検索エンジンのスコアリングやテキスト分類の特徴量抽出に使われてきた。
かんたんに言うと
「この文書にたくさん出てくるけど、他の文書にはあまり出てこない単語」を見つける計算式。どこにでも出る「の」「は」「です」はスコアが低く、特定の文書にだけ出る専門用語はスコアが高くなる。文書の特徴を数値で表現する古典的な手法。
TFとIDFの計算
TF(Term Frequency)は文書内での単語の出現回数を文書の総単語数で割った値。「機械学習」が1,000語の文書に5回出現すれば TF = 5/1000 = 0.005。IDF(Inverse Document Frequency)は全文書数を、その単語を含む文書数で割った値の対数。10,000件中10件にしか出ない単語なら IDF = log(10000/10) = 3.0。TF-IDF = TF × IDF で、その文書におけるその単語の重要度が算出される。
BM25との関係
TF-IDFは単純だが弱点がある。長い文書ほどTFが大きくなるため、文書の長さによるバイアスがかかる。BM25はこの問題を補正したTF-IDFの改良版。文書の長さを平均と比較して正規化し、TFの上限にも飽和関数を適用する。Elasticsearchのデフォルトスコアリングは2015年からBM25に切り替わった。TF-IDFを理解していればBM25の仕組みも理解できる。
AI時代のTF-IDF
ベクトル検索やBERTが登場した現在でも、TF-IDFは使われている。キーワード抽出、文書のクラスタリング、スパムフィルタリングなど、軽量で高速な処理が求められる場面ではTF-IDFが合理的。ベクトル検索はGPUとメモリを消費するが、TF-IDFはCPUだけで動く。全ての処理にディープラーニングを使う必要はない。問題の複雑さに応じて技術を選ぶべき。
導入時の判断基準
テキスト分類やキーワード抽出の初期実装にはTF-IDFで十分なことが多い。scikit-learnのTfidfVectorizerで数行のコードで実装できる。精度が足りなければBERTやSentence Transformersに移行する。TF-IDFで80%の精度が出るなら、残り20%のためにGPUを導入するかは費用対効果で判断する。
当社の見解
当社はAI長期記憶システムを自社開発・運用している。開発のきっかけは、AIと経営戦略の壁打ちで出した結論がセッション切れで消えたことで絶望を感じた。1日かけて議論してきたことを振り返り、では事業計画書に落とし込むように指示を出したところ、「そのような記録はありません」と言われたことで、強烈な危機感を覚えこれは何としても解決しなければならない問題だと感じた。記憶がないAIは毎朝記憶喪失になる新入社員と同じだ。記憶があるAIは、前提条件を理解した上で本題に入れる。短いプロンプトで済むようになり、「前に言ったように実行して」と曖昧で短いプロンプトでも業務を遂行してくれる。同じことを繰り返し伝える回数も減り、開発業務でも同じミスを繰り返しにくくなり、人間の手戻りが減り、ストレスも減る。AIで本当に業務の質を上げるならば、記憶はマストである。
同じ失敗を二度としないAIエージェント
今のAIは、聞けば何でも答えてくれます。
でも、セッションが切れた瞬間に前回の失敗を忘れます。
当社が開発しているAIは、過去の経緯を念頭に置いて、
聞かれる前に「それは前回うまくいきませんでした」と声をかけます。
人間にも同じ失敗をさせず、AI自身も繰り返しません。
古参の社員が横にいるように、黙っていても気づいてくれる。
それが、当社が考える本当のAI社員です。
