• No se han encontrado resultados

Métodos basados en Kernels para el Procesamiento de Lenguaje Natural

N/A
N/A
Protected

Academic year: 2021

Share "Métodos basados en Kernels para el Procesamiento de Lenguaje Natural"

Copied!
20
0
0

Texto completo

(1)

Métodos basados en Kernels para el Procesamiento de Lenguaje Natural

G. Moncecchi

1Grupo PLN, Instituto de Computación, Facultad de Ingeniería, Universidad de la República, Uruguay

2Laboratoire MoDyCo, Université Paris Ouest, Nanterre La Défense, France

XI Jornadas de Informática e Investigación Operativa

Montevideo, Abril 2010

(2)

Extracción de Relaciones y Aprendizaje Automático Clasificación lineal Kernels Kernels para el Procesamiento de Lenguaje Natural

Agenda

1

Extracción de Relaciones y Aprendizaje Automático

2

Clasificación lineal

Rosenblatt’s Perceptron Voted Perceptron

3

Kernels

¿Por qué kernels?

¿Qué son bien los kernels?

4

Kernels para el Procesamiento de Lenguaje Natural String subsequence kernels

Convolution kernels

Kernels para Extracción de Relaciones

Conclusiones

(3)

Extracción de relaciones: un caso de clasificación

Corpus de trabajo: Bioinfer

Las entidades ya están identificadas

Extracción de relaciones vs. Identificación de relaciones Ambos pueden verse como tareas de clasificación,

¿cuáles atributos elijo?

(4)

Extracción de Relaciones y Aprendizaje Automático Clasificación lineal Kernels Kernels para el Procesamiento de Lenguaje Natural

Aprendizaje supervisado

Aprendizaje supervisado: aprender de ejemplos etiquetados

Función objetivo; Función de decisión

Espacios de hipótesis; Algoritmo de aprendizaje; Hipótesis Consistentes

Generalización: clasificar datos que no están en el conjunto de entrenamiento

Sobreajuste

(5)

Clasificación

f : X ⊆ R

n

→ R, si f (x) ≥ 0 entonces x = (x

1

, . . . , x

n

)

0

pertenece a la clase positiva (+1)

Si f (x) es una función lineal de x f (x) = hw · xi + b

=

n

X

i=1

w

i

x

i

+ b

Datos de entrenamiento:

S = ((x

1

, y

1

), . . . , (x

l

, y

l

)) ⊆ (X × Y)

l

(6)

Extracción de Relaciones y Aprendizaje Automático Clasificación lineal Kernels Kernels para el Procesamiento de Lenguaje Natural

Rosenblatt’s Perceptron Voted Perceptron

Interpretación geométrica

(7)

Rosenblatt’s Perceptron

El primer algoritmo iterativo para aprender clasificadores lineales

Dirigido por errores. Cada vez que se equivoca, corrige el hiperplano obtenido hasta el momento

Anda siempre... siempre que los datos sean linealmente separables

Novikoff: El número de errores está acotdado por max kx

i

k

y por el margen del conjunto de entrenamiento (no por la

dimensionalidad) Demo

(8)

Extracción de Relaciones y Aprendizaje Automático Clasificación lineal Kernels Kernels para el Procesamiento de Lenguaje Natural

Rosenblatt’s Perceptron Voted Perceptron

Algoritmo del perceptron: forma dual

w = P

l

i=1

α

i

y

i

x

i

α

i

proporcional a las veces x

i

fue mal clasificada La nueva función de decisión

h(x) = sgn(hw · xi + b)

= sgn(h

n

X

i=1

α

i

y

j

x

j

· xi + b)

= sgn(

n

X

i=1

α

i

y

j

hx

j

· xi + b)

... sólo depende de los productos internos entre el ejemplo

a clasificar y los elementos del conjunto de entrenamiento

Gram matrix G = (hx

i

· x

j

i)

li,j=1

(9)

Voted perceptron

¿Qué hiperplano elegimos? ¿Qué pasa si los datos no son linealmente separables?

Freund and Schapire, 1999 Algoritmo batch

Por supuesto, admite versión dual.

Parecido a las SVM, más fácil de implementar (y de

entender!)

(10)

Extracción de Relaciones y Aprendizaje Automático Clasificación lineal Kernels Kernels para el Procesamiento de Lenguaje Natural

¿Por qué kernels?

¿Qué son bien los kernels?

¿Por qué kernels?

¿Qué pasa si suponemos que la función no es lineal?

(From http://fedc.wiwi.hu-berlin.de/xplore/ebooks/html/csa/node221.html)

(11)

Un ejemplo: kernel polinomial

hx · zi

2

= (

n

X

i=1

x

i

z

i

)

2

= (

n

X

i=1

x

i

z

i

)(

n

X

j=1

x

j

z

j

)

=

n

X

i=1 n

X

j=1

x

i

x

j

z

i

z

j

=

(n,n)

X

(i,j)=(1,1)

(x

i

x

j

)(z

i

z

j

)

= hφ(x) · φ(z)i

with φ(x) = (x

i

x

j

)

(n,n)(i,j)=(1,1)

Demo

(12)

Extracción de Relaciones y Aprendizaje Automático Clasificación lineal Kernels Kernels para el Procesamiento de Lenguaje Natural

¿Por qué kernels?

¿Qué son bien los kernels?

¿Por qué kernels? (cont)

La combinación entre kernels y versiones duales de los algoritmos nos permite aplicar algoritmos que buscan funciones lineales a casos donde la función objetivo no es lineal

Clasificadores como SVM, Voted Perceptron son robustos

al sobreajuste

(13)

Kernels

Un kernel es una función K , tal que para todo x, z ∈ X, K (x, z) = hφ(x) · φ(z)i, siendo φ un mapeo (eventualmente no lineal) a otro espacio de atributos

Nuestras funciones hipótesis serán de la forma:

f (x) = P

N

i=1

w

i

φ

i

(x) + b

Si tenemos una representación dual, la función de decisión será: f (x) = P

l

i=1

α

i

y

i

i

(x

i

) · φ(x)i + b

No necesitamos el mapeo de atributos para aprender!, y con ello tal vez podemos evitar la maldición de la

dimensionalidad

Podemos construir kernels empezando por los atributos...

... o generar kernels combinando kernels

... o directamente mostrar que K es un kernel (usando el

(14)

Extracción de Relaciones y Aprendizaje Automático Clasificación lineal Kernels Kernels para el Procesamiento de Lenguaje Natural

String subsequence kernels Convolution kernels

Kernels para Extracción de Relaciones Conclusiones

SSK

Text Classification using String Kernels (Lodhi et al., 2002) A veces los datos no pueden ser directamente descritos por vectores de atributos explícitos (secuencias biológicas, textos)

Si pudiéramos definir el producto interno entre puntos mapeados a un espacio de mayor dimensionalidad...

... podríamos resolver el problema de la clasificación

utilizando una máquina lineal (SVM, Perceptron)

Entonces, definen un kernel para secuencias de texto

(15)

SSK

Consideramos cat, car, bat, bar, and k = 2. Podemos contar los substrings de largo k que tienen, definiendo un atributo en R

Σ

k

(sí, una cantidad enorme de atributos). λ es un factor de decay que pesa qué tan contiguos aparecen

Entonces, K (x , y ) = hφ(x ) · φ(y )i Por definición, K es un kernel.

En el paper presentan un algoritmo de orden O(n|s||t|)

(16)

Extracción de Relaciones y Aprendizaje Automático Clasificación lineal Kernels Kernels para el Procesamiento de Lenguaje Natural

String subsequence kernels Convolution kernels

Kernels para Extracción de Relaciones Conclusiones

SSK

Resultados del SSK kernel + SVM para clasificar textos

(17)

Convolution kernels

Convolution kernels for Natural Language (Collins & Duffy, Lodhi et al., 2001)

Cuando hacemos parsing, nuestros ejemplos no son vectores: son árboles

h

k

(x ) cuenta el número de veces que el k − simo subárbol aparece en el árbol x

Φ(x ) = hh

1

(x ), h

2

(x ), . . . h

d

(x )i and ...

φ(T

1

) · φ(T

2

) = P

d

i=1

h

i

(T

1

)h

i

(T

2

)

Con ese kernel, más una forma eficiente de calcular φ(T

1

) · φ(T

2

) y la forma dual del perceptron, podemos aprender eficientemente

... ¿Pero aprender qué? Aprender a reordenar análisis

(18)

Extracción de Relaciones y Aprendizaje Automático Clasificación lineal Kernels Kernels para el Procesamiento de Lenguaje Natural

String subsequence kernels Convolution kernels

Kernels para Extracción de Relaciones Conclusiones

Convolution Kernels

Applying the Convolution kernel + Voted Perceptron for a

parsing task, on the Penn treebank ATIS corpus

(19)

Kernels para Extracción de Relaciones

A survey of kernel methods for relation extraction (Moncecchi et al., 2010?)

(Zelenko et al., 2003): Los kernels son medidas de similitud entre árboles de análisis superficial

(Bunescu and Mooney, 2005): kernels sobre los caminos más cortos entre dos entidades

(Culotta and Sorensen, 2004): kernels sobre árboles de dependencias

(Bunescu and Mooney, 2006): kernel sobre subsecuencias de palabras (considerando solamente las que incluyan entidades candidatas)

(Zhou et al., 2007): más kernels sobre árboles de análisis

(Airola et al., 2006): kernels basados en grafos sobre los análisis

(20)

Extracción de Relaciones y Aprendizaje Automático Clasificación lineal Kernels Kernels para el Procesamiento de Lenguaje Natural

String subsequence kernels Convolution kernels

Kernels para Extracción de Relaciones Conclusiones

Conclusiones

Los métodos de kernel se han utilziado con éxito para varias tareas de PLN donde las instancias pueden caracterizarse mejor por medio de objetos estructurados La tarea de construcción del kernel sustituye a la de la selección de atributos

Cualquier problema de clasificación podría intentar

solucionarse con este método. La modalidad, por ejemplo.

Esto es aprendizaje supervisado o semi-supervisado:

necesitamos textos anotados, al menos para arrancar!

Referencias

Documento similar

[r]

[r]

Como se ha comentado, sí que se podría haber dedicado más tiempo a ampliar el desarrollo del archivo de intenciones usado para el entrenamiento del sistema de

Presentamos la comparación de rendimiento entre el modelo BERT (Bidirectional Encoder Re- presentations from Transformers) y métodos más tradicionales de PLN (Procesamiento del

2 Introducción El origen de la dificultad para expresar formalmente la diferencia entre reglas por defecto y reglas excepcionales se encuentra en la forma de asignar estructura

Introducci´ on: Teor´ıa de Redes Redes do Coocurrencia Redes de Asociaciones Aplicaciones Redes Semanticas y Sint´ acticas Construcci´ on de Redes.. Aplicaciones de la Teor´ıa de

• Desarrollamos Software Inteligente con procesamiento de Lenguaje Natural mediante técnicas de Inteligencia Artificial.. • Creamos programas que actúan como una persona real

Este proceso se lleva a cabo combinando varias técnicas de procesamiento de lenguaje natural para obtener análisis morfosintáctico y semántico del texto y a través de