Anda tidak bisa dan tidak. Bayangkan Anda memiliki variabel acak dari distribusi probabilitas Q. Tetapi teman Anda Bob berpikir bahwa hasilnya berasal dari distribusi probabilitas P. Dia telah membangun pengkodean yang optimal, yang meminimalkan jumlah bit yang diharapkan yang perlu dia gunakan untuk memberi tahu Anda hasil. Tetapi, karena ia membangun encoding dari P dan bukan dari Q, kode-kodenya akan lebih lama dari yang diperlukan. KL-divergence mengukur berapa lama kodenya.
Sekarang katakanlah dia punya koin dan dia ingin memberi tahu Anda urutan hasil yang didapatnya. Karena kepala dan ekor sama-sama berkemungkinan besar ia memberikan keduanya kode 1-bit. 0 untuk kepala, 1 untuk ekor. Jika dia mendapatkan ekor ekor, dia dapat mengirim 1 1 0 1. Sekarang, jika koinnya mendarat di tepi dia tidak mungkin memberi tahu Anda! Tidak ada kode yang ia kirimkan kepada Anda yang akan berfungsi. Pada titik ini KL-divergensi terpecah.
Karena KL-divergence rusak, Anda harus menggunakan ukuran lain atau distribusi probabilitas lainnya. Apa yang harus Anda lakukan sangat tergantung pada apa yang Anda inginkan. Mengapa Anda membandingkan distribusi probabilitas? Dari mana distribusi probabilitas Anda berasal, apakah mereka diperkirakan dari data?
Anda mengatakan distribusi probabilitas Anda berasal dari dokumen bahasa alami, dan Anda ingin membandingkan pasangan kategori.
Pertama, saya akan merekomendasikan ukuran keterkaitan simetris. Untuk aplikasi ini kedengarannya seperti A sama dengan B seperti B mirip dengan A.
Sudahkah Anda mencoba ukuran kesamaan cosinus? Ini cukup umum di NLP.
Jika Anda ingin tetap menggunakan KL, satu hal yang bisa Anda lakukan adalah memperkirakan fungsi probabilitas dari kedua dokumen dan kemudian melihat berapa banyak bit tambahan yang Anda perlukan rata-rata untuk kedua dokumen. Yaitu (P || (P + Q) / 2 + Q || (P + Q) / 2) / 2