NLP では、特徴の次元が非常に大きい場合が常にあります。たとえば、手元にある 1 つのプロジェクトでは、特徴の次元はほぼ 20,000 (p = 20,000) であり、各特徴は、特定の単語またはバイグラムが論文 (1 つの論文はデータ ポイント $x \in R^{p}$) です。
機能間の冗長性が非常に大きいことはわかっているため、次元削減が必要です。3 つの質問があります。
1) 1 万のデータ ポイント (n = 10,000) があり、各データ ポイントには 1 万の特徴 (p = 10,000) があります。次元削減を行う効率的な方法は何ですか? 行列 $X \in R^{n \times p}$ は非常に大きいため、PCA (または SVD、切り捨てられた SVD は問題ありませんが、SVD はバイナリ機能の次元を減らす良い方法ではないと思います) と Bag単語数 (または K-means) を $X$ で直接実行することは困難です (確かに、スパースです)。私はサーバーを持っていません。私は自分の PC を使用しています:-(.
2) 2 つのデータ ポイント間の類似性または距離を判断するにはどうすればよいですか? ユークリッド距離は、バイナリ機能にはうまく機能しない可能性があると思います。L0ノルムはどうですか?あなたは何を使うのですか?
3) SVM マシン (または他のカーネル手法) を使用して分類を行う場合、どのカーネルを使用すればよいですか?
どうもありがとう!