No puedes y no lo haces. Imagina que tienes una variable aleatoria de distribución de probabilidad P. Pero tu amigo Bob cree que el resultado proviene de la distribución de probabilidad P. Ha construido una codificación óptima, que minimiza el número de bits esperados que necesitará para decirte Salir. Pero, dado que construyó la codificación desde P y no desde Q, sus códigos serán más largos de lo necesario. La divergencia KL mide cuánto tiempo más durarán los códigos.
Ahora digamos que tiene una moneda y quiere decirte la secuencia de resultados que obtiene. Debido a que la cabeza y la cola son igualmente probables, les da ambos códigos de 1 bit. 0 para la cabeza, 1 para la cola. Si consigue cola cola cabeza cola, puede enviar 1 1 0 1. Ahora, si su moneda cae en el borde, ¡no puede decírtelo! Ningún código que te envíe funcionaría. En este punto, la divergencia KL se rompe.
Dado que la divergencia KL se rompe, tendrá que usar otra medida u otras distribuciones de probabilidad. Lo que debes hacer realmente depende de lo que quieras. ¿Por qué estás comparando distribuciones de probabilidad? ¿De dónde provienen sus distribuciones de probabilidad? ¿Se calculan a partir de los datos?
Usted dice que sus distribuciones de probabilidad provienen de documentos de lenguaje natural de alguna manera, y desea comparar pares de categorías.
Primero, recomendaría una medida de relación simétrica. Para esta aplicación, parece que A es tan similar a B como B es similar a A.
¿Has probado la medida de similitud de coseno? Es bastante común en PNL.
Si desea seguir con KL, una cosa que podría hacer es estimar una función de probabilidad de ambos documentos y luego ver cuántos bits adicionales necesitaría en promedio para cada documento. Es decir (P || (P + Q) / 2 + Q || (P + Q) / 2) / 2