Att lära sig ett naturligt språkgränssnitt för databastabeller är en utmanande uppgift som innebär djup språkförståelse och flera stegs resonemang. Uppgiften behandlas ofta genom att kartlägga frågor om naturligt språk till logiska former eller program som ger önskat svar när det utförs på databasen. Enligt vår kunskap presenterar detta dokument den första svagt övervakade, end-to-end neurala nätverksmodellen för att framkalla sådana program på en verklig datauppsättning. Vi förstärker den objektiva funktionen hos Neural Programmer, ett neuralt nätverk med inbyggda diskreta operationer, och tillämpar det på WikiTableFrågor, ett naturligt språk frågebesvarande på dataset. Modellen är tränad end-to-end med svag övervakning av frågesvarspar, och kräver inte domänspecifika grammatiker, regler, eller annoteringar som är nyckelelement i tidigare metoder för programinduktion. Det viktigaste experimentella resultatet i detta dokument är att en enda Neural Programmer-modell uppnår 34,2 % noggrannhet med endast 10 000 exempel med svag övervakning. En ensemble av 15 modeller, med en trivial kombinationsteknik, uppnår 37,7% noggrannhet, vilket är konkurrenskraftig till den nuvarande state-of-the-art noggrannhet 37,1% erhålls av en traditionell naturligt språk semantisk parser. Databaser är ett genomträngande sätt att lagra och få tillgång till kunskap. Det är dock inte enkelt för användare att interagera med databaser eftersom det ofta kräver programmeringsfärdigheter och kunskaper om databasscheman. Att övervinna denna svårighet genom att tillåta användare att kommunicera med databaser via naturligt språk är ett aktivt forskningsområde. Den gemensamma inställningen till denna uppgift är genom semantisk tolkning, som är processen för att kartlägga naturligt språk till symboliska representationer av mening. I detta sammanhang ger semantisk tolkning logiska former eller program som ger önskat svar när de utförs på databaserna (Zelle & Mooney, 1996). Semantisk tolkning är ett utmanande problem som innebär djup språkförståelse och resonemang med diskreta operationer som räkning och radval (Liang, 2016). De första inlärningsmetoderna för semantisk tolkning kräver dyr notering av frågeprogrampar (Zelle & Mooney, 1996; Zettlemoyer & Collins, 2005). Denna notation process är inte längre nödvändig i den nuvarande state-of-the-art semantic parsers som är utbildade med endast frågesvar par (Liang et al., 2011; Kwiatkowski et al., 2013; Krishnamurthy & Kollar, 2013; Pasupat & Liang, 2015). Emellertid prestanda av dessa metoder fortfarande starkt beror på domän-specifika grammatik eller beskärning strategier för att underlätta programsökning. Till exempel, i ett nyligen utfört arbete med att bygga semantiska parsers för olika domäner, författarna hand-engineer en separat grammatik för varje domän (Wang et al., 2015). Nyligen har många neurala nätverk modeller utvecklats för programinduktion (Andreas et al., 2016; Jia & Liang, 2016; Reed & Freitas, 2016; Zaremba et al., 2016; Yin et al., 2015), trots * Arbete gjort på Google Brain. Tabell Figur 1: Neuralprogrammerare är ett neuralt nätverk förstärkt med en uppsättning diskreta operationer. Modellen körs för ett fast antal tidssteg, välja en operation och en kolumn från tabellen vid varje steg. Det inducerade programmet överför information över tidsteg med hjälp av radväljarvariabeln medan utdata från modellen lagras i det skalarsvaret och uppslagssvarsvarsvariablerna. Den ökända svårigheten att hantera diskreta operationer i neurala nätverk (Joulin & Mikolov, 2015; Kaiser & Sutskever, 2016). De flesta av dessa metoder bygger på kompletta program som övervakning (Jia & Liang, 2016; Reed & Freitas, 2016) medan andra (Zaremba et al., 2016; Yin et al., 2015) har prövats endast på syntetiska uppgifter. Det arbete som är mest likt vårt är Andreas et al. (2016) på det dynamiska neurala modulnätverket. Men i sin metod, neurala nätverket används endast för att söka över en liten uppsättning kandidat layouter som tillhandahålls av den syntaktiska tolkning av frågan, och utbildas med hjälp av REINFORCE algoritm (Williams, 1992). Därför kan deras metod inte återhämta sig från tolkfel, och det är inte trivialt att anpassa tolken till den aktuella uppgiften. Dessutom parametriseras alla deras moduler eller operationer av ett neuralt nätverk, så det är svårt att tillämpa deras metod på uppgifter som kräver diskreta aritmetiska operationer. Slutligen handlar deras experiment om en enklare datauppsättning som kräver färre operationer, och därmed ett mindre sökutrymme, än WikiTableFrågor som vi anser i vårt arbete. Vi diskuterar annat relaterat arbete i avsnitt 4. Neural Programmer (Neelakantan et al., 2016 ) är ett neuralt nätverk förstärkt med en uppsättning diskreta operationer. Det producerar både ett program, bestående av dessa operationer, och resultatet av att köra programmet mot en viss tabell. Operationerna använder sig av tre variabler: radväljare, skalarsvar och uppslagssvar, som uppdateras vid varje steg. uppslagsning svar och skalär svar lagra svar medan radväljare används för att sprida information över tid steg. Som indata får en modell en fråga tillsammans med en tabell (figur 1). Modellen körs för ett fast antal tidssteg och väljer en operation och en kolumn från tabellen som argument till åtgärden vid varje steg. Under träningen utförs mjuka val (Bahdanau et al., 2014) så att modellen kan tränas end-to-end med backpropagation. Detta tillvägagångssätt gör det möjligt för Neural Programmer att utforska sökområdet med bättre urval komplexitet än hårt urval med REINFORCE algoritm (Williams, 1992) skulle ge. Alla parametrar i modellen är inlärda från en svag övervakningssignal som endast består av det slutliga svaret; det underliggande programmet, som består av en sekvens av operationer och av valda kolumner, är latent. Publicerad som konferensbidrag på ICLR 2017 I detta arbete utvecklar vi en strategi för semantisk tolkning baserad på Neural Programmer. Vi visar hur man lär sig ett naturligt språkgränssnitt för att svara på frågor med hjälp av databastabeller, vilket integrerar olika operationer som är typiska för neurala nätverk med deklarativa kunskaper som finns i tabellerna och med diskreta operationer på tabeller och poster. I detta syfte gör vi flera förbättringar och justeringar av Neural Programmer, i synnerhet anpassning av dess objektiva funktion för att göra den mer allmänt tillämplig. I tidigare arbete tillämpas Neural Programmer endast på ett syntetiskt dataset. I detta dataset, när det förväntade svaret är en post i den givna tabellen, markeras dess position uttryckligen i tabellen. Dock, verkliga datauppsättningar verkligen inte inkluderar dessa markörer, och leder till många tvetydigheter (t.ex., (Pasupat & Liang, 2015) ). I synnerhet, när svaret är ett tal som bokstavligen förekommer i tabellen, är det inte känt, a priori, om svaret ska genereras av en operation eller väljas från tabellen. På samma sätt, när svaret är ett naturligt språkfras som förekommer i flera positioner i tabellen, är det inte känt vilken post (eller poster) i tabellen som faktiskt är ansvarig för svaret. Vi utvidgar Neural Programmer till att hantera den svagare övervakningssignalen genom att föra tillbaka genom beslut som rör hur svaret genereras när det finns en tvetydighet. Våra huvudsakliga experimentella resultat handlar om WikiTableFrågor (Pasupat & Liang, 2015), en verklig frågebesvarande på datatabeller, med endast 10 000 exempel på svag tillsyn. Detta dataset är särskilt utmanande på grund av sin ringa storlek och bristen på stark övervakning, och även på grund av att de tabeller som tillhandahålls vid testtid aldrig ses under utbildning, så lärande kräver anpassning vid testtid till osynliga kolumnnamn. En toppmodern, traditionell semantisk parser som bygger på beskärning strategier för att underlätta programsökning uppnår 37,1% noggrannhet. Standard neurala nätverk modeller som sekvens-till-sekvens och pekarnätverk verkar inte vara lovande för denna datauppsättning, vilket bekräftas i våra experiment nedan, som ger ensiffriga noggrannheter. Som jämförelse kan nämnas att en enda Neural Programmer-modell med minimal textförbehandling, och utbildad end-to-end, uppnår 34,2 % noggrannhet. Detta överraskande resultat möjliggörs främst av proveffektiviteten hos Neural Programmer, genom den förbättrade objektiva funktionen, och genom att minska överutrustning genom stark legalisering med avhopp (Srivastava et al., 2014; Iyyer et al., 2015; Gal & Gahramani, 2016) och vikt förfall. En ensemble av 15 modeller, även med en trivial kombinationsteknik, uppnår 37,7% noggrannhet. I detta avsnitt beskriver vi mer i detalj Neural Programmer-modellen och de ändringar vi gjorde i modellen. Neural Programmer är ett neuralt nätverk förstärkt med en uppsättning diskreta operationer. Modellen består av fyra moduler: • Fråga RNN som behandlar frågan och omvandlar polletterna till en distribuerad representation. Vi använder ett LSTM-nätverk (Hochreiter & Schmidhuber, 1997) som fråga RNN. • En lista över diskreta operationer såsom räkning och inmatningsval som definieras manuellt. Varje operation är parameteriserad av en verkligt värderad vektor som lärs ut under träningen. • En selector modul som inducerar två sannolikhetsfördelningar varje gång steg, en över uppsättningen av operationer och en annan över uppsättningen kolumner. Inmatningen till väljaren erhålls genom att konkatentera det sista dolda tillståndet i frågan RNN, det dolda tillståndet i historien RNN från det nuvarande tidssteget, och den uppmärksamhet vektor som erhålls genom att utföra mjuk uppmärksamhet (Bahdanau et al., 2014) på frågan med hjälp av historievektorn. Följer Neelakantan et al. (2016) Vi använder hårt urval vid testtillfället. • Historia RNN modelleras av en enkel RNN (Werbos, 1990) med tanh aktiveringar som minns tidigare operationer och kolumner som valts av modellen. Indata till historiken RNN vid varje steg är resultatet av att de viktade representationerna av transaktioner och kolumner sammanställs med motsvarande sannolikhetsfördelningar som gjorts av väljaren vid föregående steg. En mer detaljerad beskrivning av grundmodellen finns i Neelakantan et al. (2016). Modellen körs för fast total T-tidsteg. Parametrarna för verksamheten, selectormodulen, fråga och 3 Publicerad som konferenspapper på ICLR 2017 historik RNNs är alla inlärda med backpropagation med hjälp av en svag övervakningssignal som består av det slutliga svaret. Nedan diskuterar vi flera ändringar av modellen för att göra den mer allmänt tillämplig och lättare att träna. Vi använder 15 operationer i modellen som valdes för att nära matcha den uppsättning operationer som används i baslinjemodellen (Pasupat & Liang, 2015). Alla åtgärder utom välj och oftast fungerar posten endast på den uppsättning markerade rader som anges av radväljarvariabeln. Innan det första tidssteget, är alla rader i tabellen inställda att väljas. De inbyggda åtgärderna är: • räkna returnerar antalet markerade rader i radväljaren. • välja och mest frekventa posten är åtgärder som beräknas endast en gång för varje fråga och mata ut en booleansk tensor med samma storlek som storleken på inmatningstabellen. En post i utmatningen för den valda åtgärden är inställd till 1 om posten matchar någon fras i frågan. De matchade fraserna i frågan är anonymiserade för att förhindra översittande. På samma sätt, för de vanligaste posten, är det satt till 1 om posten är den vanligaste i sin kolumn. • Argmax, argmin, större än eller lika med, mindre än eller lika med, mindre än eller lika med alla operationer som ger en tensor med samma storlek som ingångstabellen. • första, sista, föregående och nästa ändra radväljaren. • skriva ut åtgärd tilldelar radväljare i den markerade kolumnen av uppslagssvar. • återställa återställer radväljaren till sitt ursprungliga värde. Denna operation fungerar också som no-op när modellen behöver inducera program vars komplexitet är mindre än T. Alla operationer definieras för att arbeta med mjukt urval så att modellen kan tränas med backpropagation. Verksamheten tillsammans med deras definitioner diskuteras i bilagan. Neural programmerare använder sig av tre variabler: radväljare, skalarsvar och uppslagssvar som uppdateras vid varje steg. Variabeln uppslagningssvar lagrar svar som är valda från tabellen medan skalära svarar lagrar numeriska svar som inte finns i tabellen. 1 Det inducerade programmet överför information över tidsteg med hjälp av radväljarvariabeln som innehåller rader som väljs av modellen. Med tanke på en indatatabell Π, som innehåller M-rader och C-kolumner (M och C kan variera mellan exempel), anges utdatavariablerna vid tidssteg t av: där α op t (op) och α col t (j) är de sannolikheter som väljaren har tilldelat operation op och kolumn j vid tidssteg t respektive utdata t (räkning) är utdata från räkningsverksamheten vid tidssteg t. Radväljarvariabeln vid tidssteg t erhålls genom att ta det viktade genomsnittet av utdata från de återstående transaktionerna och diskuteras i tillägget. slå upp svar T [i][j] är sannolikheten att elementet (i, j) i inmatningstabellen finns i det slutliga svar som förutses av modellen. Vi modifierar Neural Programmers utbildningsmål för att hantera den övervakningssignal som finns i verkliga miljöer. I tidigare arbeten markeras svarens position uttryckligen i tabellen när svaret är en post från tabellen. Men, som diskuteras i Avsnitt 1, i verkliga datauppsättningar (t.ex., (Pasupat & Liang, 2015) svaret är helt enkelt nedskrivna inför två typer av tvetydigheter. För det första, när svaret är ett nummer och om numret finns i tabellen, är det inte känt 1 Det är möjligt att utöka modellen för att generera naturliga språk svar med hjälp av en RNN dekoder men det är inte fokus i detta papper och vi lämnar det för ytterligare arbete. Publicerad som ett konferenspapper på ICLR 2017 om förlusten ska beräknas med hjälp av den skalära svarsvarsvariabeln eller uppslagningsvariabeln. För det andra, när svaret är en naturlig språkfras och om frasen förekommer i flera positioner i tabellen, vet vi återigen inte vilken post (eller poster) i tabellen som faktiskt är ansvarig för att generera svaret. Vi utökar Neural Programmer för att hantera denna svagare övervakningssignal under utbildningen genom att beräkna förlusten endast på den förutsägelse som ligger närmast önskat svar. För skalära svar beräknar vi kvadratförlusten: där y är marken sanningen svar. Vi delar L-skalar med antalet rader i inmatningstabellen och går inte bakåt på exempel där förlusten är större än ett tröskelvärde eftersom det leder till instabilitet i utbildningen. När svaret är en lista över objekt y = (a 1, a 2,. ., en N ), för varje element i listan (a i, i = 1, 2,.., N ) beräknar vi alla poster i tabellen som matchar detta element, ges av Vi tar itu med den tvetydighet som införs när ett svar objekt uppstår vid flera poster i tabellen genom att beräkna förlusten endast på posten som tilldelas den högsta sannolikheten av modellen. Vi konstruerar g  till {0, 1} M ×C, där g[i, j] anger om elementet (i, j) i inmatningstabellen är en del av utmatningen. Vi beräknar log-förlust för varje post och den slutliga förlusten ges av: där [cond] är 1 när cond är sant, och 0 annars. Vi hanterar den tvetydighet som uppstår när marken sanningen är ett tal och om antalet också förekommer i tabellen, genom att beräkna den slutliga förlusten som det mjuka minimum av L skalar och L lookup. Annars, förlusten för ett exempel är L skalar när marken sanningen är ett tal och L lookup när marken sanningen matchar vissa poster i tabellen. De två förlustfunktionerna L-skalar och L-lookup är i olika skalor, så vi multiplicerar L-lookup med en konstant faktor som vi sätter till 50,0 efter en liten utforskning i våra experiment. Eftersom vi använder hårt urval vid testtillfället, ändras endast ett av de skalära svaren och uppslagssvaren vid det sista steget. Vi använder variabeln som är inställd på det sista tidssteget som den slutliga utgången av modellen. Vi tillämpar Neural Programmer på WikiTableQuestions dataset (Pasupat & Liang, 2015) och jämför det med olika icke-neurala baslinjer inklusive ett naturligt språk semantiskt parser utvecklat av Pasupat & Liang (2015). Vidare rapporterar vi också resultat från utbildning sekvens-to-sekvens modell ) och en modifierad version av pekarnätverk (Vinyals et al., 2015). Vår modell är implementerad i TensorFlow (Abadi et al., 2016) och modellen tar ungefär en dag att träna på en enda Tesla K80 GPU. Vi använder dubbelprecisionsformat för att lagra modellparametrarna eftersom gradienterna blir odefinierade värden i enkelprecisionsformat. Vår kod finns på https://github.com/tensorflow/modeller/tree/master/neural_programmer. Vi använder tåget, utveckling, och test split ges av Pasupat & Liang (2015 Eftersom träningssetet är liten jämfört med andra dataset där neurala nätverk modeller vanligtvis tillämpas, förlitar vi oss på stark legalisering: • Vi klipper lutningarna till norm 1 och använder tidig stoppning. • Förekomsten av ord som förekommer mindre än 10 gånger i träningssetet ersätts av ett enda okänt ord token. • Vi lägger till en vikt förfall straff med styrka 0.0001. • Vi använder avhopp med en hålla sannolikheten av 0.8 på ingång och utgång vektorer av RNN, och väljare, operation och kolumnnamn representationer (Srivastava et al., 2014). • Vi använder avhopp med hålla sannolikheten av 0,9 på återkommande anslutningar av frågan RNN och historia RNN med hjälp av tekniken från Gal & Ghahramani (2016). • Vi använder word-dropout (Iyyer et al., 2015) med hålla sannolikheten för 0,9. Här ersätts orden i frågan slumpmässigt med det okända ordet token under träningen. Vi justerar avhoppsfrekvensen, regulariseringsstyrkan och hyperparametern med hjälp av rutnätssökning på utvecklingsdata, vi fixar de andra hyperparametrarna efter en liten undersökning under inledande experiment. 3.3 RESULTAT Tabell 1 visar prestandan för vår modell i jämförelse med basvärden från Pasupat & Liang (2015). Det bästa resultatet från Neural Programmer uppnås genom en ensemble med 15 modeller. Den enda skillnaden mellan dessa modeller är att parametrarna för varje modell initieras med ett annat slumpmässigt frö. Vi kombinerar modellerna med i genomsnitt de förutsagda softmax-distributionerna av modellerna i varje steg. Även om det allmänt anses att neurala nätverk modeller kräver ett stort antal träningsexempel jämfört med enklare linjära modeller för att få bra prestanda, vår modell Vi fick inte bättre resultat antingen genom att använda förtränade ord vektorer (Mikolov et al., 2013) eller genom förträning frågan RNN med ett språk modellering mål (Dai & Le, 2015). En möjlig förklaring är att ordet vektorer som erhålls från oövervakad inlärning kanske inte lämpar sig för den uppgift som övervägs. Till exempel, de inlärda framställningar av ord som maximum och minimum från oövervakat lärande är vanligtvis nära varandra, men för vår uppgift är det kontraproduktivt. Vi överväger att ersätta mjukt urval med hårt urval och träna modellen med REINFORCE algoritm (Williams, 1992). Modellen misslyckas med att lära sig i detta experiment, förmodligen eftersom modellen måste söka över miljontals symboliska program för varje inmatningsfråga vilket gör det högst osannolikt att hitta ett program som ger en belöning. Därför uppdateras inte modellens parametrar tillräckligt ofta. För att förstå svårigheten med uppgiften för neurala nätverk modeller, experimenterar vi med två neurala nätverk baslinjer: sekvens-till-sekvens modell ) och en modifierad version av pekarnätverk (Vinyals et al., 2015). Inmatningen till sekvens-till-sekvens-modellen är en konkatering av tabellen och frågan, och dekodern producerar utmatningen en token åt gången. Vi betraktar bara exempel vars ingångslängd är mindre än 400 för att göra körtiden rimlig. Den resulterande datauppsättningen har 8, 857 respektive 1, 623 utbildnings- respektive utvecklingsexempel. Noggrannheten hos den bästa modellen på denna utveckling set efter hyperparameter tuning är bara 8,9%. Därefter experimenterar vi med pekarnätverk för att välja poster i tabellen som det slutliga svaret. Vi ändrar pekarnätverk för att ha två-attention huvuden: en för att välja kolumnen och den andra för att välja poster inom en kolumn. Dessutom utför modellen flera begrundande steg på bordet innan den returnerar det slutliga svaret. Vi utbildar denna modell endast på uppslagsfrågor, eftersom modellen inte har en dekoder för att generera svar. Vi betraktar bara exempel vars tabeller har mindre än 100 rader vilket resulterar i utbildnings- och utvecklingsuppsättningar som består av 7, 534 respektive 1, 829 exempel. Noggrannheten hos den bästa modellen på denna utveckling set efter hyperparameter tuning är bara 4,0%. Dessa resultat bekräftar vår intuition att diskreta operationer är svåra att lära sig för neurala nätverk, särskilt med små datauppsättningar i verkliga miljöer. 3.4 ANALYS 3.4.1 MODELFÖRING Tabell 2 visar hur olika modellval påverkar den slutliga prestandan. Medan anonymiseringsfraser i frågan som matchar någon tabellpost verkar ha en liten positiv effekt, legalisering har en mycket större effekt på prestandan. Kolumnval utförs i Neelakantan et al. (2016) Använd bara namnet på en kolumn, men detta urvalsförfarande är otillräckligt i verkliga inställningar. Den kolumn som valts i fråga 3 i tabell 3 har till exempel inte en motsvarande fras i frågan. För att välja en kolumn använder vi därför dessutom en boolesk funktion som anger om en post i den kolumnen motsvarar någon fras i frågan. Tabell 2 visar att tillägget av denna booleska egenskap har en betydande effekt på prestandan. Publicerad som konferensbidrag på ICLR 2017 ID Question Step 1 Steg 2 Steg 3 Steg 4 1 Tabell 3 visar några exempel på program inducerad av Neural Programmer som ger rätt svar i utvecklingssetet. De program som ges i tabell 3 visar några egenskaper hos den lärda modellen. För det första visar vår analys att modellen kan anpassas till osynliga kolumnnamn vid testtillfället. Till exempel i fråga 3 förekommer ordet utfall endast 8 gånger i träningssetet och ersätts med det okända ordet token. För det andra, modellen inte alltid framkallar den mest effektiva (när det gäller antal operationer andra än återställningen operation som plockas) program för att lösa en uppgift. De 3 sista frågorna i tabellen kan lösas med hjälp av enklare program. Slutligen, modellen inte alltid locka rätt program för att få marken sanningen svar. Till exempel, de senaste 2 programmen kommer inte att resultera i rätt svar för alla inmatningsdatabas tabeller. Programmen skulle producera rätt svar endast när den valda åtgärden matchar en post i tabellen.  INLEDDA PROGRAM BIDRAG TILL OLIKA VERKSAMHETER För att avsluta detta avsnitt föreslår vi idéer för att eventuellt förbättra modellens prestanda. För det första är oraklets prestanda med 15 Neural Programmer modeller 50,5 % på utvecklingssetet medan genomsnittet endast uppnår 37,5 % vilket innebär att det fortfarande finns utrymme för förbättringar. Därefter är noggrannheten hos en enda modell på träningssetet 53% vilket är cirka 20% högre än noggrannheten i både utvecklingssetet och testsetet. Denna skillnad i prestanda indikerar att modellen lider av betydande övermontering även efter att ha använt stark legalisering. Det föreslås också att modellens prestanda skulle kunna förbättras avsevärt genom att man skaffar sig mer utbildningsdata. Icke desto mindre finns det gränser för de prestandaförbättringar vi rimligen kan förvänta oss: i synnerhet, som visas i tidigare arbete (Pasupat & Liang, 2015), 21% av frågorna på en slumpmässig uppsättning av 200 exempel i den ansedda datauppsättningen är inte svarbara på grund av olika frågor såsom annotering fel och tabeller som kräver avancerad normalisering. Publicerad som konferensartikel på ICLR 2017 Medan vi i detalj diskuterar olika semantiska tolknings- och neuralprograminduktionstekniker i Avsnitt 1, beskriver vi kortfattat andra relevanta arbeten. Nyligen, Kocisky m.fl. (2016) utvecklar en semi-övervakad semantisk tolkningsmetod som använder frågeprogrampar som handledning. Parallellt med vårt arbete, föreslå neural symbolisk maskin, en modell som mycket liknar Neural Programmer men tränas med hjälp av REINFORCE algoritm (Williams, 1992). De använder endast 2 diskreta operationer och kör totalt 3 tidssteg, vilket framkallar program som är mycket enklare än våra. Neurala nätverk har också tillämpats på frågesvar datauppsättningar som inte kräver mycket aritmetiskt resonemang (Bordes et al., 2014; Iyyer et al., 2014; Sukhbaatar et al., 2015; Peng et al., 2015; Hermann et al., 2015; Kumar et al., 2016). Wang & Jiang (2016) använder en neural nätverksmodell för att få toppmoderna resultat på en läsförståelse uppgift (Rajpurkar et al., 2016). I detta dokument stärker vi Neural Programmer att arbeta med svagare övervakningssignaler för att göra det mer allmänt tillämpligt. Mjukt urval under träningen gör det möjligt för modellen att aktivt utforska utrymmet för program genom backpropagation med överlägsen prov komplexitet. I våra experiment visar vi att modellen uppnår prestanda jämförbar med en toppmodern traditionell semantisk parser även om träningssetet bara innehåller 10 000 exempel. Så vitt vi vet är detta den första instansen av en svagt övervakad, end-to-end neural nätverksmodell som inducerar program på en real-world dataset. Tack Vi är tacksamma till Panupong Pasupat för att svara på många frågor om datauppsättningen, och tillhandahålla förbehandlad version av datauppsättningen och utmatningen av den semantiska parsern. Vi tackar David Belanger, Samy Bengio, Greg Corrado, Andrew Dai, Jeff Dean, Nando de Freitas, Shixiang Gu, Navdeep Jaitly, Rafal Jozefowicz, Ashish Vaswani, Luke Vilanis, Yuan Yu och Barret Zoph för deras förslag och Google Brain laget för stödet. Arvind Neelakantan stöds av en Google PhD-stipendiat inom maskininlärning.
Andra arkitekturer, såsom Neural Programmer arkitektur REF ) tillåter end-to-end utbildning samtidigt som delar av nätverket begränsas till att utföra fördefinierade operationer genom att omimplementera specifika operationer som statiska differentierade komponenter.
Learning a Natural Language Interface with Neural Programmer
{'venue': 'ArXiv', 'journal': 'ArXiv', 'mag_field_of_study': ['Computer Science', 'Mathematics']}