En Naive Bayes, ¿por qué molestarse con el suavizado de Laplace cuando tenemos palabras desconocidas en el conjunto de prueba?

28

Estaba leyendo sobre la clasificación Naive Bayes hoy. Leí, bajo el encabezado de Estimación de parámetros con agregar 1 suavizado :

Deje que refiera a una clase (como Positivo o Negativo), y deje que refiera a una ficha o palabra.cw

El estimador de máxima verosimilitud para esP(w|c)

count(w,c)count(c)=counts w in class ccounts of words in class c.

Esta estimación de podría ser problemática ya que nos daría una probabilidad para documentos con palabras desconocidas. Una forma común de resolver este problema es usar el suavizado de Laplace.P(w|c)0

Deje que V sea el conjunto de palabras en el conjunto de entrenamiento, agregue un nuevo elemento (por desconocido) al conjunto de palabras.UNK

Definir

P(w|c)=count(w,c)+1count(c)+|V|+1,

donde refiere al vocabulario (las palabras en el conjunto de entrenamiento).V

En particular, cualquier palabra desconocida tendrá probabilidad

1count(c)+|V|+1.

Mi pregunta es esta: ¿por qué nos molestamos con este suavizado de Laplace? Si estas palabras desconocidas que encontramos en el conjunto de pruebas tienen una probabilidad que obviamente es casi cero, es decir, , ¿cuál es el punto de incluirlos en el modelo? ¿Por qué no simplemente ignorarlos y eliminarlos? 1count(c)+|V|+1

Matt O'Brien
fuente
3
Si no lo hace, cualquier declaración que encuentre que contenga una palabra que no se haya visto anteriormente tendrá . Esto significa que ha sucedido un evento imposible. Lo que significa que su modelo se ajustaba increíblemente mal. También en un modelo bayesiano adecuado esto nunca podría suceder, ya que la palabra desconocida probabilidad tendría un numerador dado por el anterior (posiblemente no 1). Así que no sé por qué esto requiere el nombre elegante 'suavizado de Laplace'. p=0
conjeturas
1
¿De qué texto provenía la lectura?
wordsforthewise

Respuestas:

17

Siempre necesita esta probabilidad 'a prueba de fallas'.

Para ver por qué, considere el peor caso donde ninguna de las palabras en la muestra de entrenamiento aparece en la oración de prueba. En este caso, según su modelo, concluiríamos que la oración es imposible pero que existe claramente creando una contradicción.

Otro ejemplo extremo es la oración de prueba "Alex conoció a Steve". donde "conoció" aparece varias veces en la muestra de entrenamiento, pero "Alex" y "Steve" no. Su modelo concluiría que es muy probable que esta afirmación no sea cierta.

Sid
fuente
Odio sonar como un completo imbécil, pero ¿te importaría elaborar? ¿Cómo la eliminación de "Alex" y "Steve" cambia la probabilidad de que ocurra la declaración?
Matt O'Brien
2
Si asumimos la independencia de las palabras P (Alex) P (Steve) P (cumplido) << P (cumplido)
Sid
1
podríamos construir un vocabulario al entrenar el modelo en el conjunto de datos de entrenamiento, entonces ¿por qué no simplemente eliminar todas las palabras nuevas que no aparecen en el vocabulario al hacer predicciones en el conjunto de datos de prueba?
aguacate
15

Digamos que ha entrenado su clasificador Naive Bayes en 2 clases, "Ham" y "Spam" (es decir, clasifica los correos electrónicos). En aras de la simplicidad, asumiremos que las probabilidades anteriores son 50/50.

Ahora supongamos que tiene un correo electrónico que su clasificador califica altamente como "Ham", digamos y(w1,w2,...,wn)

P(Ham|w1,w2,...wn)=.90
P(Spam|w1,w2,..wn)=.10

Hasta aquí todo bien.

Ahora supongamos que tiene otro correo electrónico que es exactamente el mismo que el correo electrónico anterior, excepto que hay una palabra que no está incluida en el vocabulario. Por lo tanto, dado que el recuento de esta palabra es 0,(w1,w2,...,wn,wn+1)

P(Ham|wn+1)=P(Spam|wn+1)=0

De repente, y

P(Ham|w1,w2,...wn,wn+1)=P(Ham|w1,w2,...wn)P(Ham|wn+1)=0
P(Spam|w1,w2,..wn,wn+1)=P(Spam|w1,w2,...wn)P(Spam|wn+1)=0

A pesar de que el primer correo electrónico está fuertemente clasificado en una clase, este segundo correo electrónico puede clasificarse de manera diferente debido a que la última palabra tiene una probabilidad de cero.

El suavizado de Laplace resuelve esto al dar a la última palabra una pequeña probabilidad distinta de cero para ambas clases, de modo que las probabilidades posteriores no caigan repentinamente a cero.

RVC
fuente
¿Por qué mantendríamos una palabra que no existe en el vocabulario? ¿Por qué no simplemente eliminarlo?
aguacate
44
si su clasificador califica un correo electrónico como probable que sea ham, entonces p (ham | w1, ..., wn) es 0.9, no p (w1, ..., wn | ham)
braaterAfrikaaner
5

Esta pregunta es bastante simple si está familiarizado con los estimadores de Bayes, ya que es la conclusión directa del estimador de Bayes.

En el enfoque bayesiano, los parámetros se consideran una cantidad cuya variación puede describirse mediante una distribución de probabilidad (o distribución previa).

Entonces, si vemos el procedimiento de selección como distribución multinomial, entonces podemos resolver la pregunta en pocos pasos.

Primero, defina

m=|V|,n=ni

Si asumimos que la distribución previa de es una distribución uniforme, podemos calcular su distribución de probabilidad condicional comopi

p(p1,p2,...,pm|n1,n2,...,nm)=Γ(n+m)i=1mΓ(ni+1)i=1mpini

podemos encontrar que es, de hecho, distribución de Dirichlet, y la expectativa de espi

E[pi]=ni+1n+m

Una estimación natural para es la media de la distribución posterior. Entonces podemos dar el estimador de Bayes de :pipi

p^i=E[pi]

Puedes ver que acabamos de sacar la misma conclusión que Laplace Smoothing.

Respuesta777
fuente
4

Ignorar esas palabras es otra forma de manejarlo. Corresponde al promedio (integración) sobre todas las variables que faltan. Entonces el resultado es diferente. ¿Cómo?

Suponiendo la notación utilizada aquí : donde son los tokens en el vocabulario es un documento.

P(C|d)=argmaxCip(ti|C)P(C)P(d)argmaxCip(ti|C)P(C)
tid

Digamos que el token no aparece. En lugar de usar un suavizado de Laplace (que viene de imponer un Dirichlet antes en el Bayes multinomial), sumas que corresponde a decir: Tomo una votación ponderada sobre todas las posibilidades de las fichas desconocidas (tenerlas o no) .tktk

P(C|d)argmaxCtkip(ti|C)P(C)=argmaxCP(C)ikp(ti|C)tkp(tk|C)=argmaxCP(C)ikp(ti|C)

Pero en la práctica uno prefiere el enfoque de suavizado. En lugar de ignorar esos tokens, les asigna una baja probabilidad que es como pensar: si tengo tokens desconocidos, es más improbable que sea el tipo de documento que de otra manera pensaría que es.

jpmuc
fuente
2

Desea saber por qué nos molestamos con el suavizado en un clasificador Naive Bayes (cuando podemos descartar las características desconocidas).

La respuesta a su pregunta es: no todas las palabras tienen que ser desconocidas en todas las clases.

Digamos que hay dos clases M y N con las características A , B y C , de la siguiente manera:

M: A = 3, B = 1, C = 0

(En la clase M , A aparece 3 veces y B solo una vez)

N: A = 0, B = 1, C = 3

(En la clase N , C aparece 3 veces y B solo una vez)

Veamos qué sucede cuando descarta características que aparecen cero veces.

A) Desechar características que aparecen cero veces en cualquier clase

Si descarta las características A y C porque aparecen cero veces en cualquiera de las clases, solo le queda la característica B para clasificar los documentos.

¡Y perder esa información es algo malo como verás a continuación!

Si se le presenta un documento de prueba de la siguiente manera:

B = 1, C = 3

(Contiene B una vez y C tres veces)

Ahora, desde que ha descartado las características A y B , usted no será capaz de decir si el documento anterior pertenece a la clase M o tipo N .

Por lo tanto, perder cualquier información de las funciones es algo malo.

B) Desechar características que aparecen cero veces en todas las clases

¿Es posible solucionar este problema descartando solo aquellas características que aparecen cero veces en todas las clases?

¡No, porque eso crearía sus propios problemas!

El siguiente documento de prueba ilustra lo que sucedería si hiciéramos eso:

A = 3, B = 1, C = 1

La probabilidad de M y N se convertiría en cero (porque no descartamos la probabilidad cero de A en la clase N y la probabilidad cero de C en la clase M ).

C) No arroje nada: use suavizado en su lugar

El suavizado le permite clasificar correctamente los dos documentos anteriores porque:

  1. No pierde la información de conteo en las clases donde dicha información está disponible y
  2. No tiene que lidiar con cero recuentos.

Clasificadores ingenuos de Bayes en la práctica

El clasificador Naive Bayes en NLTK solía desechar características que tenían cero recuentos en cualquiera de las clases.

Esto solía hacer que funcione mal cuando se entrena usando un procedimiento EM difícil (donde el clasificador se arranca con muy pocos datos de entrenamiento).

Laboratorios Aiaioo
fuente
2
@ Aiaioo Labs No te diste cuenta de que se refería a palabras que no aparecían en el conjunto de entrenamiento, por ejemplo, se refería a decir que si aparecía D, el problema no está en el suavizado de Laplace en los cálculos del conjunto de entrenamiento más bien el conjunto de prueba. El uso del suavizado de Laplace en palabras desconocidas del conjunto TEST hace que la probabilidad se desvíe hacia la clase que tenga la menor cantidad de tokens debido a que 0 + 1/2 + 3 es mayor que 0 + 1/3 + 3 (si una de las clases tenía 3 fichas y la otra tenía 2). ...
2
En realidad, esto puede convertir una clasificación correcta en una clasificación incorrecta si se suavizan suficientes palabras desconocidas en la ecuación. El suavizado de Laplace está bien para los cálculos del conjunto de entrenamiento, pero es perjudicial para el análisis del conjunto de prueba. Además, imagine que tiene un conjunto de pruebas con todas las palabras desconocidas, debe clasificarse inmediatamente en la clase con mayor probabilidad, pero de hecho puede y generalmente no se clasificará como tal, y generalmente se clasifica como la clase con la menor cantidad de fichas
@DrakeThatcher, estoy muy de acuerdo con usted, sí, si no eliminamos las palabras que no están en el vocabulario, la probabilidad pronosticada se sesgará a la clase con la menor cantidad de palabras.
aguacate
1

También me encontré con el mismo problema mientras estudiaba Naive Bayes.

Según yo, cada vez que encontramos un ejemplo de prueba que no habíamos encontrado durante el entrenamiento, entonces la probabilidad posterior se convertirá en 0.

Entonces, sumando el 1, incluso si nunca entrenamos en una característica / clase en particular, la probabilidad posterior nunca será 0.

Sarthak Khanna
fuente
1

Matt, tienes razón, planteas un muy buen punto: sí, ¡Laplace Smoothing es francamente una tontería! Simplemente descartar esas características puede ser un enfoque válido, particularmente cuando el denominador también es un número pequeño; simplemente no hay evidencia suficiente para respaldar la estimación de probabilidad.

Tengo una fuerte aversión a resolver cualquier problema mediante el uso de algún ajuste arbitrario. El problema aquí son los ceros, la "solución" es simplemente "agregar un valor pequeño a cero para que ya no sea cero; MAGIA, el problema ya no existe". Por supuesto que es totalmente arbitrario.

Para empezar, su sugerencia de una mejor selección de funciones es un enfoque menos arbitrario y el IME aumenta el rendimiento. Además, el suavizado de Laplace junto con Bayes ingenuo, como el modelo, en mi experiencia, empeora el problema de granularidad, es decir, el problema donde la salida de puntajes tiende a estar cerca de 1.0 o 0.0 (si el número de características es infinito, entonces cada puntaje será 1.0 o 0.0 - esto es una consecuencia del supuesto de independencia).

Ahora existen técnicas alternativas para la estimación de probabilidad (aparte de la probabilidad máxima + suavizado de Laplace), pero están masivamente documentadas. De hecho, hay un campo completo llamado Lógica inductiva e Procesos de inferencia que utilizan muchas herramientas de la Teoría de la información.

Lo que usamos en la práctica es la Actualización mínima de entropía cruzada, que es una extensión de la Actualización de Jeffrey, donde definimos la región convexa del espacio de probabilidad consistente con la evidencia de ser la región de tal manera que un punto en ella significaría que la estimación de Probabilidad máxima está dentro de Desviación absoluta esperada del punto.

Esto tiene una buena propiedad que a medida que disminuye el número de puntos de datos, las estimaciones pacíficas se aproximan sin problemas a las anteriores y, por lo tanto, su efecto en el cálculo bayesiano es nulo. El suavizado de Laplace, por otro lado, hace que cada estimación se acerque al punto de máxima entropía que puede no ser el anterior y, por lo tanto, el efecto en el cálculo no es nulo y solo agregará ruido.

samthebest
fuente