Al considerar las ventajas de la métrica de Wasserstein en comparación con la divergencia KL, la más obvia es que W es una métrica mientras que la divergencia KL no lo es, ya que KL no es simétrica (es decir $D_{KL}(P||Q) \neq D_{KL}(Q||P)$ en general) y no satisface la desigualdad del triángulo (es decir $D_{KL}(R||P) \leq D_{KL}(Q||P) + D_{KL}(R||Q)$ no es válida en general).
En lo que respecta a la diferencia práctica, una de las más importantes es que, a diferencia de KL (y de muchas otras medidas), Wasserstein tiene en cuenta el espacio métrico, y lo que esto significa en términos menos abstractos quizá se explique mejor con un ejemplo (siéntase libre de saltar a la figura, el código sólo para producirlo):
# define samples this way as scipy.stats.wasserstein_distance can't take probability distributions directly
sampP = [1,1,1,1,1,1,2,3,4,5]
sampQ = [1,2,3,4,5,5,5,5,5,5]
# and for scipy.stats.entropy (gives KL divergence here) we want distributions
P = np.unique(sampP, return_counts=True)[1] / len(sampP)
Q = np.unique(sampQ, return_counts=True)[1] / len(sampQ)
# compare to this sample / distribution:
sampQ2 = [1,2,2,2,2,2,2,3,4,5]
Q2 = np.unique(sampQ2, return_counts=True)[1] / len(sampQ2)
fig = plt.figure(figsize=(10,7))
fig.subplots_adjust(wspace=0.5)
plt.subplot(2,2,1)
plt.bar(np.arange(len(P)), P, color='r')
plt.xticks(np.arange(len(P)), np.arange(1,5), fontsize=0)
plt.subplot(2,2,3)
plt.bar(np.arange(len(Q)), Q, color='b')
plt.xticks(np.arange(len(Q)), np.arange(1,5))
plt.title("Wasserstein distance {:.4}\nKL divergence {:.4}".format(
scipy.stats.wasserstein_distance(sampP, sampQ), scipy.stats.entropy(P, Q)), fontsize=10)
plt.subplot(2,2,2)
plt.bar(np.arange(len(P)), P, color='r')
plt.xticks(np.arange(len(P)), np.arange(1,5), fontsize=0)
plt.subplot(2,2,4)
plt.bar(np.arange(len(Q2)), Q2, color='b')
plt.xticks(np.arange(len(Q2)), np.arange(1,5))
plt.title("Wasserstein distance {:.4}\nKL divergence {:.4}".format(
scipy.stats.wasserstein_distance(sampP, sampQ2), scipy.stats.entropy(P, Q2)), fontsize=10)
plt.show()
En este caso, las medidas entre las distribuciones roja y azul son las mismas para la divergencia KL, mientras que la distancia de Wasserstein mide el trabajo necesario para transportar la masa de probabilidad del estado rojo al estado azul utilizando el eje x como "carretera". Esta medida es, obviamente, mayor cuanto más alejada esté la masa de probabilidad (de ahí el nombre de distancia de la tierra). Por lo tanto, el que quiera usar depende de su área de aplicación y de lo que quiera medir. Como nota, en lugar de la divergencia KL también hay otras opciones como la distancia Jensen-Shannon que son métricas adecuadas.