文をベクトルにして、コサイン類似度が高い順に並べる ── 検索エンジンの原型
検索したい文(クエリ)を打ち込むと、1文字打つごとに文書がコサイン類似度の高い順に並び替わります。クエリと文書はどちらも内容語(名詞・動詞・形容詞・形状詞)の TF-IDF ベクトルにしてから、なす角のコサインで近さを測っています。共通する単語が1つもないと類似度は 0 です ──「人工知能を学びたい」で検索してみると、意味は近いのに 0 になる語彙の壁を体験できます。
実際のベクトルは語彙の数だけ次元があります。ここでは 1 本ずつのなす角だけを平面に描いています。θ が小さいほど cos θ が 1 に近く、共通語がなければ θ = 90° です。
内積を両方のノルムで割るので、文書の長さに影響されず「向き=内容の傾向」だけを比べられます。値は −1〜1 で、同じ向きなら 1、共通語なしなら 0 です。実際の検索システムでは Embedding モデルで文を密なベクトルに変換し、同じコサイン類似度でランキングします。