Comunicar-se verbalment amb les màquines ha estat un dels objectius principals des del naixement de la informàtica. L’any 1968 Arthur C. Clarke feia volar la imaginació de mig planeta amb la seva novel·la 2001: Una odissea de l’espai, que va ser portada paral·lelament al cinema per Stanley Kubrick amb enorme èxit. La informàtica tot just havia fet les primeres passes (el primer microprocessador encara no havia estat desenvolupat), però la idea d’una intel·ligència artificial com la de HAL 9000 ja havia seduït a una generació que encara no havia pogut tocar un ordinador personal.
Tal com sol passar en aquestes situacions, en ple 2016, estem molt lluny de replicar les capacitats comunicatives que HAL 9000 hauria de tenir en l’any 2001. Comprendre el llenguatge humà pot semblar molt senzill, les persones ho fem cada dia, però és una tasca molt difícil per a les màquines. El llenguatge és ple de fenòmens que fan que la comprensió sigui molt complexa: polisèmia, ironia, sarcasmes, dobles sentits, múltiples formes de dir el mateix … I per si fos poc la comprensió depèn del nostre coneixement del món, que fem servir per raonar i entendre’ns entre nosaltres, en un procés que fem pràcticament sense adonar-nos. Un clar exemple podrien ser les següents dues oracions:
- Ahir vaig veure un avió volant sobre Nova York.
- Ahir vaig veure un tren volant sobre Nova York.
Encara que només canvien en una paraula, les dues oracions tenen significats molt diferents. Per a nosaltres és fàcil imaginar un avió sobrevolant Nova York, però en llegir la segona oració de seguida detectem que un tren no vola, i que per tant es tracta d’una cosa diferent, com per exemple, d’un avió que sobrevola Nova York, i que la persona que va dins de l’avió (perquè les persones tampoc volen), veu un tren des de la finestreta. Fer aquest tipus d’inferències és molt complicat per als ordinadors, però relativament senzill per a les persones.
La Similitud Semàntica Textual (STS: l’anglès Semantic Textual Similarity) és una tasca, presentada originalment en el SemEval 2012, que tracta d’abordar un dels aspectes de la intel·ligència artificial que permetrà que les màquines es comuniquin de manera natural amb les persones: l’avaluació del significat. Donades dues oracions, saber si les dues tenen el mateix significat o no és vital per a una bona comunicació. Però el significat no és blanc o negre, té tota una varietat de tons grisos. La STS té com a objectiu avaluar de forma automàtica la similitud entre oracions en un rang que va des del 0 fins al 5, i en el qual cada franja representa de manera fàcilment comprensible les diferències que fan que dues oracions siguin equivalents o no.
Hi ha moltes tècniques i recursos per abordar aquesta tasca, com WordNet, Wikipedia i ontologies com SUMO, que permeten abordar moltes de les dificultats citades anteriorment com la polisèmia, la detecció d’entitats (persones, empreses, etc.) o el raonament. Però aquests recursos es creen manualment, i és una tasca molt costosa tant en temps emprat com econòmicament. En temps recents, i gràcies als avenços realitzats mitjançant Deep Learning, s’han generat de forma automàtica nous recursos útils per millorar els sistemes de STS com els Word embeddings, capaços d’emmagatzemar en un vector les característiques semàntiques de les paraules, fent que les de significat similar quedin més a prop, i les diferents més lluny. Aquests nous sistemes són capaços d’analitzar el context en què apareixen les paraules en un conjunt de textos molt ampli, i assumint que les paraules semblants apareixen en contextos semblants, col·loca cadascuna de les paraules en un espai N-dimensional, mantenint la premissa de que les paraules semblants han de romandre a prop unes de les altres. Un cop generats aquests vectors podem calcular la similitud d’aquestes paraules calculant el cosinus dels seus vectors.
Però la característica més interessant d’aquests vectors és la preservació del significat, de manera que podem operar amb ells mitjançant sumes i restes. Per exemple, el resultat de l’operació Rei-Home + Dona seria igual a Reina, o, dit d’una altra manera, si al vector que codifica el significat de Rei se li resta el vector amb el significat d’Home i se li suma el de Dona, dóna com a resultat el vector amb el significat de Reina (veure Figura 1).
Aquestes mesures d’equivalències de significat són útils per a moltes eines, per exemple, per al conegut Siri, l’assistent personal d’iOS, o per avaluar les ordres de veu en un sistema domòtic instal·lat en un habitatge, de manera que la casa pugui deduir que la frase “Necessito més llum” pugui significar “Puja les persianes” o “Encén els llums”, dependent de la llum que hi hagi en aquell moment a l’exterior. Altres possibles aplicacions són les d’ajuda a la tercera edat, ja que en general les persones d’aquest rang d’edat tenen major dificultat en aprendre i utilitzar les ordres de veu, i l’ajuda a la docència, on un sistema de STS és capaç de avaluar si la resposta de l’alumne vol dir el mateix que la resposta correcta assignada pel professor, facilitant la tasca al docent.
Una altra tasca molt popular és la recerca de la resposta (QA: Question Answering) en què el nostre grup treballa activament. QA es pot definir com la tasca en la qual l’usuari planteja una pregunta en llenguatge natural i el sistema ha de tornar-li la resposta (en lloc de diferents documents, com faria Google). Els primers sistemes de QA abordaven preguntes de tipus factual: on va néixer Obama ?, quan va acabar la 2ª guerra mundial ?, qui va descobrir la penicil·lina? Més endavant es van abordar preguntes més complexes en les que la resposta no es trobava en un sol document, sinó que havia de construir-se a partir de components parcials com: Qui van ser els tres primers cancellers de la RFA ?, preguntes de tipus definicional: Qui va ser Picasso?, per a què s’usa el paracetamol?, preguntes d’opinió, o arguments a favor i en contra del control d’armes als EUA. En paral·lel s’han desenvolupat sistemes de domini restringit i sistemes que busquen la resposta no només en documents textuals sense fonts estructurades, com els repositoris de Linked Open Data (Freebase, DBpedia, bioportal i altres). En tots aquests sistemes es fa un ús ampli de les mesures de distància entre la pregunta i les potencials respostes.
Un tipus de QA que ha adquirit darrerament certa notorietat és el dels Community QA (CQA). En els CQA es parteix d’una pregunta inicial plantejada per un membre de la comunitat. A partir d’ella s’activa una estructura complexa d’intervencions dels membres de la comunitat que responen, opinen, replantegen, refinen, etc. Això dóna lloc a l’ús de diferents mesures de similitud entre preguntes i altres preguntes, entre preguntes i respostes, de diverses respostes, etc. Ã’bviament les mesures són diferents per a les diferents sub-tasques. Recentment el nostre grup va participar en una competició de CQA en el marc de SemEval 2016 en la qual existia la dificultat afegida que els textos es comparaven en la llengua original, l’àrab, i la seva traducció a l’anglès.
Tant la STS com la QA són aproximacions parcials a la comprensió del llenguatge natural (NLU: Natural Language Understanding), que consisteixen en que un programa pugui llegir un text i construir a partir d’ell una representació conceptual del seu significat. Si dos textos tenen el mateix significat, o significats semblants, tindran representacions conceptuals similars. Però aquesta representació pot usar-se per a altres aplicacions (traducció, resum, etc.). El futur sens dubte portarà investigacions en aquesta direcció, que combinaran Deep Learning i grans recursos semàntics en línia per a la comprensió automàtica del llenguatge. Potser HAL no estigui tan lluny…
Dr. Lluís Padró, Dr. Horacio Rodríguez Hontoria, investigadors del Centre de Tecnologies i Aplicacions del Llenguatge i de la Parla (TALP UPC), y Aitor González del Grup d’investigació IXA