Let's Do It Romania - 24 Septembrie 2011



   

Discurs despre metode... de sumarizare

   
   

Interviu cu Daniel Marcu, autorul cărţii "The Theory And Practice of Discourse Parsing And Summarization" apărută de curând la editura MIT Press.

Mircea Sârbu


Pentru anul acesta era prevăzută o "odisee spaţială". Se presupunea că Hal, computerul, va fi nu doar inteligent, ci chiar înzestrat cu nişte instincte... Omenirea şi-a îndeplinit planul?

Daniel Marcu: Depinde. Dacă discutăm despre un sistem capabil să reproducă în totalitate comportamentul lui Hal, atunci răspunsul este negativ: nu, nu ne-am îndeplinit planul. Dacă însă vorbim de componente, situaţia este cu totul alta. La ora actuală există sisteme care încorporează multe dintre funcţiile lui Hal. Avem piloţi automaţi care au străbătut la volan 4000 km de-a lungul Americii, având nevoie de ajutor uman pe doar 2% din distanţă. Sisteme de recunoaşterea vorbirii şi dialog înlocuiesc un număr din ce în ce mai mare de telefonişti. Avem programe care găsesc răspunsuri scurte (15-20 cuvinte) în colecţii de sute de mii de documente, cu acurateţe de peste 50%. Avem calculatoare care aplică strategii de comunicare specific umane; dacă te măgulesc destul de mult, şi tu, ca utilizator uman, le accepţi mult mai uşor erorile. Aceste calculatoare nu au "instincte", dar ştiu să simuleze atât de bine câteva strategii de comunicare inter-umană, încât mai că-ţi vine să crezi că au "suflet". Asta îmi aduce aminte despre o cunoştinţă care este convinsă că şi-a învăţat Furby-ul (o jucărie de mare succes acum vreo 2 ani) să spună 2-3 cuvinte pe care nu le ştia înainte.

Am dat atât de multe exemple pozitive încât mi-e teamă că o să las impresia că este foarte simplu să construieşti la ora actuală un "Hal". Nimic mai fals. În general, cred că ultimii 30 de ani au produs programe de succes doar în domeniile în care am reuşit să formalizăm problemele într-un limbaj matematic şi algoritmic care poate fi aplicat pe colecţii mari de date. Recunoaşterea vorbirii, de exemplu, a început să progreseze substanţial abia după ce întreaga comunitate ştiinţifică a adoptat modelul matematic numit "automat finit Markov". Programe foarte eficiente de învăţare specifice acestui model matematic au putut fi aplicate pe colecţii mari de date, ceea ce explică evoluţia spectaculoasă a acestui domeniu în ultimii 20 de ani. La fel şi în şah, unde progresul poate fi explicat de existenţa unui model matematic/algoritmic adecvat, care reduce jocul de şah la o simplă problema de căutare. Odată ce acest model a fost înţeles, a fost nevoie de doar 20-30 de ani până când calculatoarele au devenit suficient de rapide pentru a explora un spaţiu de căutare la fel de mare ca cel pe care îl explorează implicit un campion de şah.

Pentru multe probleme însa situaţia nu este deloc atât de roză. Indiferent cât de rapide sunt calculatoarele de azi şi indiferent cât de rapide vor deveni în viitor, modelele matematice şi algoritmice actuale nu sunt suficient de bune pentru a crea un calculator care să răspundă la întrebări mai complexe decât "cine", "unde" sau "când". Nu ştiu cât timp va mai trece până când voi putea primi de la un calculator răspunsuri la întrebări precum "Ce s-a întâmplat în România în decembrie 1989?" sau "De ce reforma economică e mult mai în urmă în România decât în Cehia?". Răspunsurile la astfel de întrebări sunt lungi, complicate şi cenuşii -- sunt greu de produs chiar şi de către oameni. Pentru a răspunde la astfel de întrebări trebuie să fii capabil să extragi foarte multă informaţie relevantă dintr-o mulţime de texte, să o abstractizezi, să o grupezi, şi să produci text care surprinde toate faţetele problemei. Tehnicile actuale de raţionare automată şi limbaj natural sunt departe de a oferi o bază suficient de solidă pentru astfel de operaţii.

Ce s-a întâmplat cu interesul uriaş de care se bucura acum 20 de ani inteligenţa artificială?

Întâi a scăzut: prea multe promisiuni fără acoperire şi prea multă vorbărie în vânt. În ultimii 5-6 ani însă, lucrurile au luat o altă întorsătura. Din "cu modificări mici, acest algoritm se poate aplica pe 10 milioane de exemple" retorica s-a schimbat în "am aplicat deja acest algoritm pe 10 milioane de exemple iar rezultatele sunt în proporţie de x% corecte". Inteligenţa artificială nu a generat încă soluţii pentru foarte multe probleme, dar a ajuns la nivelul la care o mulţime de aplicaţii au un impact semnificativ în economie. Acum 15 ani numărai pe degete companiile care aplicau tehnici de inteligenţă artificială. Acum sunt mii şi numărul lor este în continuă creştere. Sunt căutat regulat de companii care doresc consultanţă în materie de tehnici de inteligenţă artificială, învăţare automată şi limbaj natural, tehnici pe care doresc să le aplice pentru a rezolva probleme foarte concrete.

Ultima dată când ne-am întâlnit erai pasionat de traducerea automată... Cartea aceasta îşi are originile în acea pasiune?

Încă sunt pasionat de traducerea automată. De fapt, am început să fac limbaj natural din dorinţa de a construi un program care să translateze text din engleză în română. După o vreme, au început să mă pasioneze tot mai mult de fenomenele lingvistice specifice textului, nu propoziţiei. Dacă translatezi, de exemplu, e posibil să produci traduceri destul de bune chiar dacă traduci propoziţiile una câte una. Nu trebuie să înţelegi neapărat cum se leagă propoziţiile între ele şi cum să faci ca textul pe care îl creezi să fie nu numai corect gramatical, ci şi coerent. Dacă însă doreşti să faci rezumatul unui text, nu vei putea să o faci chiar dacă înţelegi foarte bine fiecare propoziţie separat. Pentru a crea un rezumat bun, trebuie să înţelegi de asemenea cum se leagă între ele propoziţiile şi care e logica textului. Încetul cu încetul am ajuns să cred că o astfel de înţelegere globală a textului poate să creeze atât contextul în care să fie abordate şi rezolvate multe probleme ştiinţifice care până de curând nu aveau o soluţie şi nici baza pentru aplicaţii practice de mare potenţial comercial. Aşa că, de vreo 6 ani investighez pe direcţia aceasta.

Cum ţi-a venit ideea?

M-am jucat într-o seară de-a "generatorul" de text. Luam propoziţii dintr-un text, le decupam, amestecam şi apoi încercam să le pun la loc în ordinea în care erau în textul iniţial. E un exerciţiu foarte bun, care te obligă să te gândeşti de ce ordonezi propoziţiile într-o anumită secvenţa şi nu în alta. Fiecare propoziţie e perfectă luată separat. Dar dacă le pui una după alta la întâmplare, rezultatul poate fi de neînţeles. Tot jucându-mă aşa mi-a venit o idee despre cum aş putea scrie un program care să facă acelaşi lucru. Şi uite aşa, încetul cu încetul, am fost complet absorbit de problemă.

De la modul cum să aranjezi într-o secvenţă coerentă un set de propoziţii am început să mă gândesc la modul cum aş putea înţelege legăturile dintre propoziţiile, frazele şi paragrafele dintr-un text dat, cum aş putea reprezenta aceste legături explicit şi cum le-aş putea descoperi automat... Am citit mai întâi tot ce mi-a căzut în mână despre subiect. Am dat peste o mulţime de studii lingvistice care m-au ajutat să înţeleg mai bine problema pe care încercam să o rezolv. Nu existau însă programe şi algoritmi care să facă aşa ceva pornind de la texte reale. Încetul cu încetul am pus bazele unui model matematic al fenomenelor textuale pe care doream (şi puteam) să le modelez precum şi algoritmi care permit ca modelul matematic să fie instanţiat şi folosit pe text real. Când modelul şi algoritmii au fost suficient de robuşti, am început să mă ocup şi de aplicaţii.

Cam ce fel de aplicaţii?

O variantă comercială a programelor pe care le-am scris este la ora actuală folosită în industrie pentru sumarizare de text şi corectare si diagnoză automată a eseurilor/compunerilor scrise de studenţi şi elevi. Programul de sumarizare poate determina care sunt cele mai importante propoziţii într-un text şi poate să creeze un rezumat la nivelul de detaliere specificat de autor. Programul care recunoaşte structura logică a textelor este actualmente încorporat într-un sistem mai mare, dezvoltat de Educational Testing Service Technologies, care notează automat eseuri sau compuneri scrise de elevi şi studenţi. Programul nu numai "corectează" automat eseurile, ci şi explică de ce a dat o anumită notă şi sugerează modalităţi prin care elevii îşi pot îmbunătăţi scrisul.

Ce mai urmează?

Aplicaţiile de care vorbeam şi-au găsit deja locul în lumea comercială. Mai am însă prototipuri funcţionale pentru sisteme care sumarizează colecţii de texte şi care rescriu rezumatele obţinute prin extracţie pentru a exprima acelaşi conţinut informaţional într-o formă mai compactă şi mai coerentă. Într-un an sau doi sper ca şi aceste sisteme să-şi găsească locul în lumea comercială.

Pe plan teoretic, lucrez la o formalizare şi abordare algoritmică probabilistă a fenomenelor lingviste specifice textului. Dezvolt însă în continuare aplicaţii noi: împreună cu câţiva colegi lucrez la un sistem care produce rezumatul unei colecţii de texte şi la un alt sistem care re-scrie într-o formă mai compactă şi mai coerentă rezumatele obţinute prin extracţie. Pe linia de aşteptare mai sunt aplicaţii în organizarea şi căutarea informaţiei, crearea de răspunsuri concise la întrebări complexe şi traducerea automată. Acestea sunt însa deocamdată doar în faza de schiţe şi de propuneri de cercetare.


Daniel Marcu a absolvit în 1991 Facultatea de Automatizări şi Calculatoare a Universităţii Tehnice din Cluj-Napoca, cu teza de licenţă Prototip Translator Automat Engleză-Română.

În 1994 obţine titlul de Master in Computer Science la University of Toronto, cu teza A Formalism and an Algorithm for Computing Pragmatic Inferences and Detecting Infelicities.

În 1997 devine doctor al aceleiaşi universităţi, cu teza The Rhetorical Parsing, Summarization, and Generation of Natural Language Texts.

Actualmente este cercetător la Information Sciences Institute din cadrul University of Southern California şi profesor asistent la Departamentul de Computer Science al aceleiaşi universităţi.

Daniel urmează să predea două cursuri în cadrul şcolii internaţionale de limbaj natural ce se va organiza în perioada 30 iulie -11 august la Iaşi (Eurolan - http://www.infoiasi.ro/~eurolan2001/).


 

(Publicat în PC Report 103 - aprilie 2001)

 

Copyright © 2001 Agora Media

Creative Commons License
This work is licensed under a Creative Commons License.