Kalbos atsiradimas naudojant daugiaagentinius žaidimus: mokymasis bendrauti su simbolių sekomis

Serhii Havrylov ir Ivan Titov (Edinburgo universiteto / Amsterdamo universiteto ML tyrimų partneriai)

Kalba buvo svarbi žmogaus civilizacijos priemonė perduoti žinias naujoms kartoms. Kalbos kilmė šimtmečius žavėjo žmonių mintis ir paskatino atlikti keletą tyrimų.

Vis dėlto iki šiol beveik visi matematiniai modeliai, skirti ištirti kalbos atsiradimą, dėl algoritminių ir skaičiavimo apribojimų turėjo būti apriboti mažų matmenų, nesudėtingomis stebėjimo erdvėmis. Pastaraisiais metais giliai besimokanti bendruomenė parodė didelį susidomėjimą šia problema. Šis pranešimas apibūdina mūsų pagrindinį indėlį kalbotyros ir mašininio mokymosi srityje, suformuotą vykdant bendrą tyrimų projektą su mašinų mokymosi tyrimų komanda SAP.

Žaisti referentinį žaidimą

Vienas iš svarbiausių kalbos vartojimo iššūkių yra nurodymas nurodytais dalykais. Taigi nenuostabu, kad referentinis žaidimas yra skirtas mokymosi bendrauti srityje. Šie žaidimai susideda iš daugybės interaktyvių samprotavimo užduočių, šie žaidimai yra naudojami praktiniam mašinų nustatymui kontroliuojamoje aplinkoje ištirti. Nors įmanoma išplėsti pagrindinio referentinio žaidimo pratęsimą, nusprendėme tęsti šį žaidimo sąranką:

  1. Tikslinis vaizdas pasirenkamas iš vaizdų, turinčių \ (K \) dėmesį atitraukiančių vaizdų, kolekcijos.
  2. Yra du agentai: siuntėjas ir gavėjas.
  3. Pamatęs tikslinį vaizdą, siuntėjas turi sugalvoti pranešimą, kurį vaizduoja simbolių seka iš fiksuoto dydžio žodyno. Yra maksimalus galimas sekos ilgis.
  4. Atsižvelgiant į sugeneruotą pranešimą ir vaizdų rinkinį, kurį sudaro atitraukiantys vaizdai ir tikslinis vaizdas, imtuvas turėtų nustatyti teisingą tikslinį vaizdą.

Taigi, norėdamas sulaukti sėkmės šiame referentiniame žaidime, siuntėjas turi atidžiai pasirinkti žodžius ir sudėti juos tokia seka, kad gavėjui būtų lengva teisingai nustatyti, koks vaizdas buvo parodytas siuntėjui. Nustatymas iš esmės skiriasi nuo ankstesnių šios srities tyrimų, nes mūsų požiūris, pavyzdžiui, pranešimams generuoti naudoja sekas, o ne atskirus simbolius, todėl mūsų nustatymas tampa tikroviškesnis ir sudėtingesnis mokymosi požiūriu.

Agentai

Abu agentai, tiek siuntėjas, tiek gavėjas, yra įgyvendinami kaip pasikartojantys neuroniniai tinklai, būtent ilgalaikės trumpalaikės atminties tinklai, kurie yra viena iš standartinių sekų generavimo ir apdorojimo įrankių. Žemiau pateiktame paveikslėlyje parodytas modelio, kuriame kietos rodyklės rodo deterministinius skaičiavimus, eskizas. Brūkšneliu brūkšneliais pavaizduotas anksčiau gauto žodžio kopijavimas. Ir galiausiai, rombų formos strėlės rodo žodžio paėmimą iš žodyno.

Ko gero, tai yra pati svarbiausia ir labiausiai varginanti modelio dalis. Viena vertus, tai yra labai svarbus elementas, nes tai yra ta vieta, kur siuntėjas priima sprendimus, ką pasakyti toliau. Kita vertus, tai vargina, nes yra stochastinė. Deja, visur egzistuojantis dubliavimo algoritmas priklauso nuo to, ar kiekviename iš neuroninio tinklo sluoksnių yra nepertraukiamai diferencijuojamų funkcijų grandinės. Tačiau šioje konkrečioje architektūroje nėra diferencijavimo pavyzdžių iš diskrečiojo tikimybių pasiskirstymo, o tai reiškia, kad mes negalime naudoti pakartotinio dauginimo iš karto.

Siuntėjo vizualinė sistema yra įgyvendinama kaip konvoliucinis nervų tinklas (CNN). Mūsų atveju vaizdus vaizduoja priešpaskutinis paslėptas CNN sluoksnis. Kaip matote iš aukščiau pateikto paveikslo, pranešimas gaunamas paeiliui imant mėginius, kol pasiekiamas maksimalus įmanomas ilgis arba sugeneruojamas specialus žetonas „pranešimo pabaiga“.

Mokymasis

Išmokti imtuvo agento elgesį referencinio žaidimo kontekste yra gana lengva. Kadangi ji gali būti diferencijuojama nuo galo iki galo, efektyviai galima įvertinti nuostolių funkcijos nuokrypius nuo jo parametrų. Tikrasis iššūkis yra išmokti siuntėjo agentą. Jo skaičiavimo diagramoje yra atranka, todėl ji nėra diferencijuojama. Kaip pagrindą mes įdiegėme REINFORCE algoritmą. Šis metodas suteikia paprastą nuostolių funkcijos gradientų įvertinimo metodą stochastinės politikos parametrų atžvilgiu. Nors jis yra nešališkas, paprastai jis turi didžiulį skirtumą ir šis faktas sulėtina modelio mokymąsi. Laimei, praėjusiais metais dvi grupės savarankiškai atrado neobjektyvų, bet mažo dispersijos įvertinimo koeficientą - Gumbel-Softmax prognozatorių (GS estimator). Tai leidžia atsipalaiduoti originalų atskirą kintamąjį su jo ištisiniu atitikmeniu. Dėl to viskas gali būti diferencijuojama, o tai leidžia taikyti atgalinio dauginimo algoritmą. Kadangi ši tema yra gana didelė ir nusipelno savo įrašo, raginame perskaityti vieno iš šio metodo autorių tinklaraščio įrašą.

Mūsų išvados

Pirmas dalykas, kurį ištyrėme sužinoję modelį, buvo komunikacijos sėkmės procentas. Manome, kad dviejų agentų bendravimas yra sėkmingas, kai teisingai nustatomas tikslinis vaizdas. Kaip matyti iš žemiau pateikto paveikslo, rezultatai naudojant „Gumbel-Softmax“ įvertintuvą (raudonos ir mėlynos kreivės) yra geresni nei REINFORCE algoritmo (geltonos ir žalios kreivės) rezultatai, išskyrus atvejus, kai agentams leidžiama bendrauti tik naudojant vieną žodį.

Manome, kad šioje palyginti nesudėtingoje aplinkoje REINFORCE dispersija nėra problema ir objektyvumo savybė atsiperka. Tuo pat metu GS prognozatoriaus paklaida atitolino jį nuo optimalaus sprendimo. Šis siužetas taip pat eina kartu su intuicija ir aiškiai parodo, kad vartojant daugiau žodžių galima tiksliau apibūdinti vaizdą.

Mes taip pat ištyrėme, kiek agentų turi būti sąveikaujama, norint išmokti ryšio protokolą. Labai nustebome, kai pastebėjome, kad atnaujinimų, reikalingų norint pasiekti mokymo konvergenciją su GS įvertinimo programa (žalia kreivė), skaičius sumažėja, kai leidžiame siuntėjui naudoti ilgesnius pranešimus. Šis elgesys yra šiek tiek prieštaringas, nes galima tikėtis, kad sunkiau išmokti protokolą, kai ryšio protokolų paieškos erdvė yra didesnė. Kitaip tariant, ilgesnių sekų naudojimas padeda greičiau išmokti ryšio protokolą. Tačiau tai nėra „REINFORCE“ įvertinimo priemonė (raudona kreivė): paprastai reikia penkis kartus daugiau atnaujinimų, kad būtų galima suartėti, palyginti su GS įvertinimu. Taip pat nėra aiškios priklausomybės tarp atnaujinimų, reikalingų suartėti, skaičiaus ir maksimalaus įmanomo pranešimo ilgio.

Be to, nubraižome kodavimo priemonės pasipiktinimą, kuris, be abejo, išmatuoja, kiek variantų siuntėjas turi pasirinkti kiekviename laiko etape, imdamasis tikimybės pasiskirstymo pagal žodyną. Matėme, kad vertinant GS (žalia kreivė) variantų yra palyginti daug ir didėjant sakinio ilgiui, tuo tarpu REINFORCE algoritmui (raudona kreivė) pasipiktinimas didėja ne taip greitai. Tai reiškia kodavimų dubliavimąsi, tai reiškia, kad egzistuoja kelios parafrazės, koduojančios tą patį semantinį turinį.

Kaip atrodo išmokta kalba? Siekdami geriau suprasti šios kalbos prigimtį, apžiūrėjome nedidelį sakinio pogrupį, kurio maksimalus galimas pranešimo ilgis yra lygus 5 vienetams ir kuriuos sukūrė modelis. Pirmiausia atsitiktinai nufotografavome objektą ir sugeneravome pranešimą. Tada mes pakartojome duomenų rinkinį ir atsitiktinai parinktus vaizdus su pranešimais, turinčiais 1, 2 ir 3 simbolių priešdėlius su generuotu pranešimu.

Pvz., Pirmoje kairės figūros eilutėje, naudojant gyvūnų vaizdų pogrupį, parodomi kai kurie pavyzdžiai, atitinkantys kodą (5747 * * * *). „*“ Reiškia bet kurį žodį iš žodyno ar sakinio pabaigos.

Tačiau atrodo, kad kodo (* * * 5747 *) vaizdai neatitinka jokios iš anksto nustatytos kategorijos. Tai rodo, kad išsivysčiusioje kalboje žodžių tvarka yra esminė. Visų pirma žodis 5747 pirmoje vietoje užkoduoja gyvūno buvimą paveikslėlyje. Tas pats paveikslas parodo, kad pranešimas (5747 5747 7125 * *) atitinka tam tikrą lokių rūšį, todėl teigiama, kad išsivysčiusi kalba įgyvendina tam tikrą hierarchinį kodavimą. Tai labai domina, nes modelis nebuvo aiškiai suvaržytas naudoti bet kokią hierarchinę kodavimo schemą. Tikriausiai ši schema gali padėti modeliui efektyviai apibūdinti nematytus vaizdus. Nepaisant to, natūrali kalba naudoja kitus principus, kad užtikrintų kompoziciją. Atrodo, kad modelis yra paprastai taikomas, nes jis rodo panašų elgesį su vaizdais maisto srityje (dešinysis vaizdas aukščiau esančiame paveikslėlyje).

Savo tyrime mes parodėme, kad agentai, sumodeliuoti naudojant neuroninius tinklus, gali sėkmingai išrasti efektyvią kalbą, susidedančią iš atskirų žetonų sekų. Mes taip pat nustatėme, kad agentai gali greičiau sukurti komunikacijos protokolą, kai leidžiame jiems naudoti ilgesnes simbolių sekas. Be to, mes pastebėjome, kad sukelta kalba įgyvendina hierarchinę kodavimo schemą ir egzistuoja kelios parafrazės, koduojančios tą patį semantinį turinį. Būsimame darbe norėtume išplėsti šį požiūrį į tikslo siekimo dialogo sistemų modeliavimą.

Pokalbių robotai ir pokalbių PG platformos tampa vis svarbesnės verslo srityje, ypač bankininkystės, draudimo ir telekomunikacijų sektoriuje. Tačiau dabartinis požiūris į šių technologijų kūrimą vis dar priklauso nuo plačios žmonių priežiūros. Žmonėms reikia sudaryti taisykles arba pateikti sėkmingų dialogų pavyzdžius, kurie yra naudojami mokyti intelektualiuosius padėjėjus. Tai sunku atlikti atsižvelgiant į sudėtingas užduotis, nes kokybės priežiūra yra brangi ir atima daug laiko. Be to, žmonių požiūriai gali būti nenuoseklūs arba gali būti efektyvesnių užduočių sprendimo būdų. Mūsų požiūris turi daug žadančių galimybių pakeisti ar papildyti šį standartinį scenarijų: pokalbių programos gali naudoti grįžtamąjį ryšį apie užduoties atlikimą, kad būtų galima atlikti papildomą ekonomišką priežiūrą. Tam tikru metu tai gali padėti sukurti sėkmingus skaitmeninius padėjėjus per trumpesnį laiką ir su mažesnėmis išlaidomis. Mes taip pat tikimės, kad tai įgalins mašinas susidoroti su naujais scenarijais ir esamų parametrų pakeitimais be aiškaus žmogaus įsikišimo ar naujų duomenų rinkinių būtinybės.

Mes pristatėme savo darbą NIPS’17. Norėdami gauti daugiau informacijos ir techninę mūsų tyrimo informaciją, žiūrėkite: Kalbos atsiradimas naudojant daugiaagentinius žaidimus: Mokymasis bendrauti su simbolių sekomis.