• No se han encontrado resultados

Generador del Modelo con las Caracter´ısticas de las

4. Derivaci´ on de Escenarios de Atributos de Calidad con Sce-

4.2. Aprendizaje: Preprocesamiento y Generaci´ on del Modelo

4.2.2. Generador del Modelo con las Caracter´ısticas de las

La segunda parte de la primera etapa, denominada Generador del Mode- lo, est´a encargada de la construcci´on de una representaci´on vectorial de las palabras que conforman el texto preprocesado. Para la implementaci´on de este componente, se utiliza un framework externo, denominado word2vec

[2]. El mismo fue desarrollado porGoogle, y su principal funci´on es el an´alisis de texto para obtener una representaci´on vectorial de las palabras que lo con- forman seg´un su contexto y cantidad de apariciones. El modelo producido por word2vec resulta de gran utilidad para este trabajo ya que la repre- sentaci´on vectorial de las palabras permite establecer relaciones de distancia entre las mismas.

El framework word2vec est´a conformado por una red neuronal de 3 capas (capa de entrada, capa oculta, capa de salida), especializadas en el procesamiento de texto. Word2vec recibe como entrada un documento de texto, y produce como resultado una lista de palabras, donde cada palabra tiene asociado un vector num´erico que la representa. A cada componente num´erica del vector que representa una palabra en el modelo se la denomina caracter´ıstica. Una caracter´ıstica resume informaci´on sobre la aparici´on de la palabra en diversos contextos en relaci´on con otras palabras, junto con la cantidad de apariciones de la palabra en la fuente de conocimiento.

Por fines pr´acticos y para comprender en detalle la generaci´on de las caracter´ısticas de las palabras, se considera como texto de entrada para

word2vec una versi´on acotada del fragmento preprocesado anteriormente, conformado por las siguientes oraciones: “performance cache” y “modifiability

intermediary”. La cantidad de palabras del texto preprocesado se denomina

N, en el caso del ejemplo N = 4. El framework word2vec crea N vectores unitarios de N dimensiones, denominados V0..N−1. Cada vector unitario se

utiliza para representar a una palabra. Adem´as, cada palabra est´a asociada a una de las N dimensiones de los vectores unitarios, seg´un su orden de apa- rici´on en el texto preprocesado. Dichos vectores unitarios est´an compuestos de todos ceros menos en la dimensi´on asociada a la palabra que representan, donde su valor es 1. Por ejemplo, la palabra performance est´a asociada a la dimensi´on 0 por ser la primera en el texto preprocesado, por ende su vector unitario es V0 = [1,0,0,0]. Del mismo modo, la palabra modifiability est´a

asociada a la dimensi´on 2 por ser la tercera en el texto preprocesado, por ende su vector unitario es V2 = [0,0,1,0].

Cada vector unitario es asociado a una neurona que conforma la capa de entrada. En la capa oculta se encontrar´an dos matrices, denominadas W I

de tama˜no N ×C y W O de tama˜no C ×N, donde C indica el n´umero de caracter´ısticas (C = 100 es el valor por defecto sugerido por los desarrolla- dores del framework). Finalmente, la capa de salida est´a conformada por un vector de salida, que tiene asociada una palabra a cada neurona que compone la capa (Figura 4.4), indicando la probabilidad de que la palabra asociada a la neurona de salida aparezca en el contexto de la palabra de entrada. El framework word2vec busca realizar una optimizaci´on de los valores de la matriz W I y W O de tal forma que se aprendan relaciones entre palabras. Para que se aprenda una relaci´on entre dos palabras, el vector unitario de la primera de ellas es el vector de entrada. La red neuronal calcula el vector de salida y el mismo es sustra´ıdo al vector unitario que representa la segunda palabra con el fin de calcular el error. Una vez obtenido el error, el mismo es propagado hacia la red neuronal de tal forma que se actualizan los valores de las matrices W I y W O. Este procedimiento se repite para cada par de palabras que est´an relacionadas. Una palabra est´a relacionada con otra si la segunda aparece en el contexto de la primera de ellas.

Figura 4.4: Red neuronal de word2vec

ros reales entre -1 y 1. Estos valores son elegidos al azar ya que los mismos var´ıan a trav´es de las diferentes relaciones entre palabras que se aprenden, siendo ajustados constantemente hasta terminar el proceso de aprendizaje. Continuando con el ejemplo, se supone el siguiente contenido inicial para las matrices, considerando C = 3: W I =       −0,094491 0,443977 0,313917 −0,490796 −0,229903 0,065460 0,072921 0,172246 −0,357751 0,104514 0,463000 0,079367       W O=     0,023074 0,479901 0,432148 0,375480 −0,368008 −0,424778 −0,257104 −0,148817 0,422434 0,364503 0,467865 −0,020302    

Sup´ongase que en el ejemplo solo se quiere aprende la relaci´on entre las palabras modifiability eintermediary. En este caso, se consideran los vectores

V2 = [0,0,1,0] y V3 = [0,0,0,1], correspondientes a las palabras modifiabi-

vector V3 sirve para calcular el error del resultado, indicando que la palabra

intermediary est´a en el contexto de la palabra modifiability. La red neuronal toma el vector V2 y lo multiplica por la matriz W I, y como resultado se ob-

tiene el vector W I[2] = [0,072921; 0,172246;−0,357751]. Posteriormente, el resultado obtenido es multiplicado por la matriz W O, obteniendo el vector

V O = [−0,212832;−0,168573;−0,180152; 0,009010], que representa la capa de salida de la red neuronal. Para transformar el vector V O en un vector de probabilidades se utiliza la funci´on softmax, de tal forma que la suma de todos los valores de las neuronas de la capa de salida sumen 1. Una vez obtenidas las probabilidades, se calcula el error con respecto al vector V3

(valor esperado como resultado), y a partir de dicho error los valores de las matrices W I y W O son actualizados para disminuirlo. Luego de realizar el proceso de aprendizaje, el contenido de W I es una buena aproximaci´on que contiene la informaci´on de las relaciones entre las palabras. Para el ejemplo, el resultado es el siguiente: W I =       −0,127484 0,106689 0,022012 −0,152681 0,112004 0,061398 0,164218 0,097453 0,110850 −0,105762 0,043238 −0,085115      

El modelo es constituido por la lista de palabras y sus respectivos vectores de caracter´ısticas, que corresponden a las filas de la matriz W I. A partir de estos vectores, es posible cuantificar la relaci´on existente entre las palabras. Esta relaci´on puede ser medida por la similitud de sus caracter´ısticas. Dicha similitud puede ser calculada como un valor decimal de 0 a 1 (1 m´as lejano, 0 m´as cercano), conocido como distancia del coseno. De esta forma, la dis- tancia entre dos palabras se reduce a una simple operaci´on matem´atica entre vectores. Continuando con el ejemplo, se obtienen los siguientes resultados de distancia:

distancia(“modif iability00,“perf ormance00) = 0,833

distancia(“modif iability00,“cache00) = 0,782

Como las primeras dos palabras no fueron brindadas a la red neuronal para formar el contexto de la palabramodifiability, su distancia a la misma es mayor, lo que implica una menor similitud. Como el contexto demodifiability fue formado por la palabraintermediary, la distancia entre las mismas es baja (es decir, son similares y se encuentran “espacialmente cerca”).

El procedimiento mostrado anteriormente muestra el funcionamiento b´asi- co del algoritmo pero el mismo es implementado con leves mejoras enword2vec, principalmente para soportar una gran cantidad de palabras de entrada y considerar un contexto m´as grande para cada palabra mediante la aplicaci´on de las t´ecnicas Continuous Bag of Words y Skip-Gram [2]. Continuous Bag of Words realiza una modificaci´on en la capa de entrada, la cual produce una entrada para la capa oculta conformada por un vector conteniendo el pro- medio de todos los vectores de palabras que conforman el contexto. Por otro lado, Skip-Gram realiza una modificaci´on en la capa de salida, generando tantos vectores de salida como palabras haya en el contexto. Por cada vector de salida, se calcula la funci´on softmax, y se realiza un promedio entre los errores obtenidos, que ser´a propagado hacia la red neuronal. En Scenarios- Tool, word2vec fue configurado con un C = 100, N = 7675, el algoritmo utilizado fue Skip-Gram.

Documento similar