1 september 1996
Kommunikation & Kognition, 4 p.
NADA, KTH, VT 1995
Handledare: Kerstin S. Eklundh
Författare: Per Cederberg
De två orden ”intelligent” och ”agent” dyker allt oftare upp tillsammans i datortidskrifter och liknande sammanhang. Är ”intelligenta agenter” alltså framtidens melodi? Orden får mig omedelbart att tänka på James Bond, Agent 007 med rätt att döda, men jag antar att han inte har så mycket med detta nya begrepp att göra. Låt oss slå i ordboken för att försöka bli klokare:
agent [-ge´- el. -je´-] 1 (affärs)ombud, representant 2 person som har hemligt uppdrag i främmande land 3 satsdel som i passiv sats betecknar den handlande e.d. (’beloppet erläggs av köparen’) || -en; er
Bonniers svenska ordbok, 1994
Är intelligenta agenter istället en ny typ av satsdel som kan förekomma i modernt språk? Nej, knappast. Det hela borde alltså gälla den första betydelsen av ordet agent – ombud, representant.
I själva verket är en agent inom datalogin ett program som utför något åt någon annan, klienten. Själva finessen med en agent är att klienten inte behöver ha någon kunskap om hur agenten ska fullgöra sin uppgift, utan detta är helt dess eget ansvar.
De flesta program fullgör i någon mening uppgifter på eget bevåg, men oftast är dessa av enkel natur och dessutom initierade av användaren. Termen agent bör man därför enbart använda för en typ av program som kan agera autonomt, d.v.s. självständigt i förhållande till användaren.
Vad innebär det då att en agent är ”intelligent”? Inom datalogin har det länge varit populärt att tala om artificiell intelligens, d.v.s. ett beteende som kan uppfattas som intelligent av människor. Man har ännu inte nått till den punkt där något datorprogram kan kallas intelligent i en vidare mening, men däremot har man i försöken att uppnå detta uppfunnit en mängd nya programmeringstekniker. När en agent får etiketten ”intelligent” menas helt enkelt att agentprogrammet använder sig av någon av dessa nya tekniker, exempelvis olika sätt att försöka lära av erfarenhet. Resultatet är en typ av datorprogram som kan förändra sitt beteende över tiden i takt med att erfarenheten växer, något som lätt kan förväxlas med intelligens eller ”smarthet”.
Men vad ska då intelligenta agenter användas till? Hur står det egentligen till med intelligensen? Varför skriver datorpressen så mycket om just intelligenta agenter? Och hur arbetar egentligen en agent?
I denna uppsats kommer jag att diskutera hur agenter med artificiell intelligens kan användas för att både spara tid och göra det enklare att hantera datorer. Jag kommer att ta upp två exempel på idag fungerande agenter och även blicka lite framåt mot de typer av agenter som kanske kommer att finnas tillgängliga i framtiden.
Eftersom området är så nytt, finns det ännu inte någon fastställd terminologi. Begreppen ”intelligent agents”, ”autonomous agents”, ”software agents” och ”interface agents” används ofta som synonymer i dessa sammanhang. Dessutom förekommer det en hel del kommersiella missbruk av ordet ”agent” (Foner, 1995). I resten av denna uppsats kommer jag med ordet ”agent” att åsyfta den typ av lärande agenter som arbetar mot en mänsklig klient.
Användargränssnitten, d.v.s. de delar av programmen som användaren ser och arbetar med, har under de senaste åren förbättrats avsevärt och gjort datorerna mycket lättare att använda. Fortfarande baseras dock de flesta gränssnitt på direkt manipulation, d.v.s. att användaren ”gör allting själv”. Datorn väntar passivt på att utföra vissa specifika, mycket detaljerade instruktioner och användaren får liten hjälp med komplexa uppgifter eller med sådant som kan ta en obestämd tid, som t.ex. sökandet efter information.
Det finns mycket som tyder på att framtidens programvaror kommer att bli än mer komplicerade med fler funktioner inbyggda och med möjligheter att behandla långt större mängder data. Överlag tycks trenden gå mot att allt fler uppgifter sköts med hjälp av datorer och globala datornätverk. Fler och fler människor kommer att tvingas använda sig av datorer, och det riskerar innebära att gapet mellan de ovana användarna och de allt mer avancerade programvarorna ökar. Risken är att mer och mer tid åtgår till funderingar kring hur uppgiften ska utföras istället för till själva uppgiften.
Det stora problemet med dagens sätt att arbeta med datorer är alltså att datorerna inte är det minsta självständiga. Trots alla ilskna utrop från diverse användare genom datorns historia, så utför ingen dator något som den inte blivit beordrad att göra. Om gapet mellan användarna och programvarorna ska kunna minska, så måste den direkta manipulationen bytas ut mot någon form av delegering (Maes, 1995). Datorn måste själv ta initiativ till att lösa problem och uppgifter åt användarna.
Det en agent i första hand kan göra är att avlasta användaren rutinuppgifter som tar tid i anspråk. En annan syssla skulle kunna vara att filtrera den information som vi hela tiden översköljs av, men också att söka reda på relevant information som vi är intresserade av. Att fungera som stöd och guide till användaren skulle kunna vara en tredje typ av uppgift.
De agenter som hittills utvecklats uppfyller inte de stora förväntningar och visioner som förekommit om den dramatiska omställning agenternas intåg skulle innebära, men man har ändå kommit en bit på vägen. En av de mer aktiva forskningsgrupperna på området är Autonomous Agents Group vid Media Laboratory på MIT De har bl.a. konstruerat de två agenter som kommer att beskrivas närmare i de kommande avsnitten.
Maxims är en agent som hjälper till med att hantera elektronisk post (Maes, 1994). Den är kopplad till Eudora, ett kommersiellt program för hantering av e-post, som bara har förändrats för att tillåta att även agenten hanterar de inkommande breven. Dessutom meddelar sig programmet till agenten varje gång användaren vidtar någon åtgärd. Själva användargränssnittet i Eudora har inte förändrats, förutom att agenten fått ett eget litet fönster där några olika enkla ansiktsuttryck kan visas beroende på vad agenten för tillfället sysslar med. I figur 1 demonstrerar Maxims en av sina miner.
Figur 1. Agenten visar med enkla ansiktsuttryck om den arbetar, är förbryllad eller har ett förslag.
Maxims kan lära sig att prioritera, radera, skicka vidare, sortera och arkivera inkommande post genom att ”titta över axeln” på användaren. Varje brev analyseras utifrån avsändare, ämne, andra mottagare, etc., men själva innehållet i brevet granskas inte. Den information som på dessa sätt samlas utgör situationen, d.v.s. de faktorer som antas spela roll för användarens beslut om hur brevet ska hanteras. När användaren sedan gör något med sin post så lagrar Maxims åtgärden tillsammans med situationen som exempel på användarens beteende. Dessa situation-händelse-par kan Maxims sedan analysera för att finna mönster och ifall liknande situationer uppkommer kan agenten föreslå att göra detsamma som användaren en gång gjorde.
När en ny situation uppkommer jämför agenten denna med de situationer som finns i minnet och den bästa matchningen ger agentens förslag till åtgärd. Mängden av exempel och hur väl situationerna matchade varandra är två faktorer som bestämmer graden av säkerhet agenten har i sin förutsägelse, och beroende på hur användaren ställt in två tröskelvärden, ”gör-det” och ”berätta”, så kommer agenten antingen utföra sitt förslag direkt eller informera användaren och erbjuda sig att utföra sitt förslag. Om agenten har lägre säkerhet i sin förutsägelse än ”berätta”-tröskelvärdet, så händer ingenting.
Då och då, företrädesvis under natten, analyserar Maxims de insamlade exemplen och beräknar korrelationerna (värden mellan 0 och 1 som anger hur starkt sambandet är) mellan de olika delarna av situationen och den åtgärd som användaren vidtog. Exempelvis kanske brevens avsändare korrelerar starkt till huruvida brevet läses eller inte, medan datumet inte alls korrelerar. Korrelationerna används sedan för att avgöra hur stor skillnaden mellan två olika situationer är. Om exempelvis korrelationen mellan datum och åtgärd är nära noll, så kommer datumet att ignoreras när agenten jämför olika situationer.
Om detta var det enda sätt som agenten kunde lära sig på så skulle den uppfattas som tämligen ”trög”, eftersom det tar en del tid innan den lärt sig hur den ska hantera de vanligaste typerna av brev. Inte ens efter lång tid kommer agenten att kunna hantera helt nya eller mycket sällan förekommande situationer på ett korrekt sätt, eftersom den helt enkelt inte har blivit tränad för dessa situationer.
För att korta ned den långa startsträckan innan Maxims överhuvudtaget kan göra några säkra förutsägelser, finns det möjlighet att ge hypotetiska exempel på hur vissa brev borde hanteras. Detta görs helt enkelt genom att tillverka ett ”låtsas”-brev som bara innehåller de avgörande fälten, t.ex. avsändare. Med detta brev gör man sedan just så som man vill att agenten ska göra. Genom att på detta sätt ”programmera med exempel” kan man alltså ge fasta regler även till en agent som baserar sitt kunnande på inlärning.
Ett annat sätt för Maxims att skaffa sig kunskap om okända situationer är genom att fråga andra användares agenter. Detta görs helt enkelt genom att Maxims sänder ett brev med de intressanta delarna ur situationen till de andra användarnas agenter. Utifrån de förslag som dessa sedan skickar tillbaka, så bestämmer sig agenten för någon åtgärd. I längden kommer den att lägga märke till vilka andra agenter som ger pålitliga förslag som överensstämmer med användarens intressen och vilka som inte gör det.
Även om Maxims är till viss hjälp för sin användare, så är det fortfarande mer fråga om ett verktyg än en personlig assistent eller medhjälpare. Maskinell inlärning är fortfarande primitiv och det tar därför lång tid för Maxims att lära sig de olika typerna av situationer. I ett experiment där agenten inte samarbetade med andra agenter, så krävdes det hela 25 exempel innan den överhuvudtaget kom över 0,1 i säkerhet (ett tal mellan 0 och 1) i någon av sina uppskattningar (Lashkari, 1994). Det tog runt 40 exempel innan den kom över 0,1 i förtroende för samtliga korrekta gissningar och efter 100 exempel hade de säkraste förutsägelserna inte nått mer än strax över 0,4. När agenten tilläts samarbeta med en annan agent som hade stor erfarenhet av en liknande användare var säkerheten i förutsägelserna väsentligt bättre från start, men hade fortfarande efter 120 exempel inte nått över 0,5.
Det är inte bara inlärningshastigheten som är ett problem, utan även hastigheten över lag. Mängden exempel som agenten samlar ökar snabbt och tar tid att genomsöka. Ett allvarligare dilemma är den ganska grova förenkling som gjorts i och med att Maxims inte alls tar hänsyn till brevens innehåll för sina förutsägelser. I många fall är det trots allt detta som avgör hur vi väljer att hantera ett visst brev. problemen med att granska även brevens innehåll är dock mycket stora, eftersom det ännu inte finns någon bra metod för att analysera naturligt språk. I nästa avsnitt beskrivs en agent som trots detta försöker analysera text.
En annan av de agenter som tillverkats på MITs Media Laboratory är NewT (Sheth, 1994). Detta är en agent för informationsfiltrering, d.v.s. för att sortera fram den information som användaren är intresserad av. NewT, som är en förkortning för News Tailor, väljer ut intressanta artiklar som finns publicerade på Internets USENET, vardagligen benämnt ”news”.
På USENET är artiklarna uppdelade i olika grupper, s.k. newsgroups, med en mängd olika inriktningar. I en del av dessa kan vem som helst göra egna inlägg, medan andra är kontrollerade så att alla artiklar följer en viss standard och innehåller viss typ av information. NewT fungerar bäst i denna senare typ av grupper eftersom olika användare anger exempelvis ämnet för sin artikel på mycket varierande sätt. I fria grupper kan artiklar ha helt olika beskrivningar och utseenden, trots att de ibland har ett liknande innehåll.
I grunden är NewT ett helt vanligt program för att läsa artiklar på USENET, men det är till skillnad från andra program konstruerat för att ha agenter som väljer ut de intressanta artiklarna. Det finns flera olika agenter i NewT som var och en håller reda på olika ämnesområden, t.ex. sport, ekonomi, etc. Genom att välja en viss agent kommer ett fönster upp med de artiklar denna agent valt ut, sorterade efter den poäng varje artikel fått av agenten som visas i figur 2. Det går givetvis även att läsa artiklar som inte valts ut av någon agent och de otränade agenterna måste till en början instrueras på detta sätt. Även senare är det bra att då och då själv söka efter intressanta artiklar för att sedan ”visa” dem för agenten.
Figur 2. NewT består av flera olika agenter med olika inriktning. Genom att klicka på ”+” eller ”-” ger man agenten positiv respektive negativ respons på en artikel.
Kommunikationen från användaren till agenten sker med hjälp av två knappar, en för positiv och en för negativ respons. Genom att ge en viss agent positiv respons, så sparas den aktuella artikeln som ett exempel på sådant som användaren vill se mer av. Om man istället väljer att ge negativ respons, så sparas artikeln som ett varnande exempel. Man kan också markera avsändaren eller olika avsnitt och ge positiv eller negativ respons enbart på dessa delar.
NewT analyserar alla artiklar efter sökord (eng. keyword), d.v.s. ord som säger någonting om innehållet i själva texten, och antar helt enkelt att alla icke-sammanbindande ord är sökord. Ord som ”att”, ”eller” och ”men” tas alltså bort från artikeln medan exempelvis ”gul”, ”algoritm” och ”Kuba” behålls. Därefter poängsätts artikeln efter förekomsten av positiva eller negativa sökord. Den respons agenten tidigare fått påverkar vilka sökord som anses positiva respektive negativa.
En annan metod som används för inlärning i NewT är så kallade genetiska algoritmer, d.v.s. att programmet kan förändra sig själv på ett sätt som liknar hur våra egna gener förändrar sig mellan generationer. I praktiken innebär detta att det i varje agent finns runt 20 profiler, ett slags ”individer”, som var och en försöker välja ut intressanta artiklar. Dessa profiler får sedan olika grader av duglighet som beror av hur mycket positiv resp. negativ respons just deras artiklar fått. Då och då sker generationsskiften där de minst dugliga profilerna ”avlivas” och ersätts med slumpvisa kombinationer av de mest dugliga profilerna. På detta sätt utvecklar sig varje agent som ett ekosystem i miniatyr.
På samma sätt som Maxims mest var ett verktyg, och inte så mycket en personlig assistent, så har även NewT svårt att uppfylla drömmen om den perfekta agenten. Ett av de problem som finns är exempelvis den stora mängd beräkningar som måste utföras vid själva analysen av artiklarna. I dagsläget är denna så pass krävande att den måste utföras nattetid, mellan gångerna programmet används. Detta får som effekt att den respons agenten fått inte märks förrän nästa dag. Det är en alltför lång tid att vänta på att agenten ska lära sig.
Ett annat problem med NewT beror på den typ av filtrering som valts. Agenterna filtrerar fram artiklar bl.a. med hjälp av sökord och angivet ämne, men detta är bara delvis adekvat för att avgöra vilka artiklar som är intressanta. Om en användare exempelvis bara vill läsa artiklar av en viss politisk färg, så räcker denna typ av analys knappast till. De ord som används i en viss fråga kanske är desamma i båda lägren. Det behövs helt enkelt en typ av analys som förstår sammanhangen i texten. NewT rensar vid sin analys bort potentiellt viktiga ord som ”inte”, som för sammanhanget kan vara helt avgörande och även påverka artikelns läsvärde.
Varken NewT eller Maxims kan heller förklara för användaren varför en viss artikel valts eller varför en viss åtgärd föreslagits. Båda agenterna är forskningsprototyper och man har ännu inte lagt till sådana funktioner, eftersom det funnits andra mer väsentliga uppgifter att lösa. Att agenten ska kunna förklara sig inför användaren är dock centralt för att förtroende och förståelse ska kunna byggas upp mellan användaren och agenten.
De två agenter som beskrivits ovan visar trots allt ändå på några av de möjligheter som redan idag finns med lärande agenter. Under lång tid har man experimenterat med agenter som styrs av regler som användaren ger och med agenter som är förprogrammerade med så mycken kunskap som möjligt. Problemen med att ge fasta regler är uppenbara, och dessutom är det möjligt att ge fasta regler även till lärande agenter. Det har ännu inte kommit någon kommersiell agent uppbyggd på det andra sättet, trots den mängd forskning som förekommer på området (Maes, 1995). Att kategorisera och sammanställa all vår vardagskunskap på ett sätt så att en dator kan använda sig av den är helt enkelt ett alltför omfattande projekt.
Det tycks idag som om den typ av agenter som lär sig själva av omvärlden kommer att bli vanligare i framtiden. Den del av datalogin som utgör forskningsgrunden för denna typ av agenter, forskningen kring artificiellt liv, är ännu ett mycket ungt forskningsområde. Det är inte orimligt att förvänta sig framsteg inom en inte alltför avlägsen framtid.
Många har spekulerat i hur framtidens agenter kommer att fungera. Ett av de mer kända exemplen är Apples ”Knowledge Navigator”-video där den mycket intelligenta agenten Phil guidar användaren genom datornätet. Att datorn ska fungera som personlig assistent åt sin användare är givetvis en dröm för de som sysslar med agenter, men för att detta ska kunna uppnås så måste en mängd hinder övervinnas. Bara en sådan sak som att man ska kunna tala med vanligt språk till sin agent kräver många nya framsteg i forskningen kring taligenkänning och naturligt språk. Det tycks fortfarande vara långt kvar innan man har kommit dithän att en dator kan förstå vardagligt mänskligt språk, även om vissa framsteg har gjorts när det gäller kommunikation inom strikt begränsade ämnesområden.
Något som faktiskt också ligger långt borta är begränsningen till en enda agent. Troligare är att varje användare kommer hålla sig med en mängd olika agenter, var och en specialiserad på någon viss syssla. En agent skulle t.ex. kunna vara inriktad på att bevaka inkommande post, en annan försöker hålla reda på användarens möten och viktiga datum, medan andra agenter kanske är inbyggda i gränssnitt för att försöka förenkla användningen av de enskilda programmen.
Det finns givetvis en mängd tekniska problem att övervinna för att visionerna om de intelligenta och självständiga agenterna ska kunna bli verklighet. Tidigare antyddes att naturligt språk och inlärningshastighet är några av de barriärer som måste överkommas innan man kan nå målet, men utvecklingen mot allt mer självständiga agenter har även en annan mer social sida – hur kommer användarna att reagera?
Ett av de stora problemen med att låta en agent automatisera sin användares beteende är frågan om tillit. Kan användaren verkligen lita på att datorn gör rätt och inte förstör något viktigt? Metoden med inlärning har här klara fördelar, eftersom agenten sakta lär sig allt mer och vinner förtroende hos användaren. Ändå blir inte ens en vältränad agent perfekt, utan den kommer då och då att göra misstag. Användaren måste känna att man behåller kontrollen över agenterna och antagligen måste man av och till också övervaka deras arbete. En viktig detalj är att själv få markera de gränser där tilliten slutar. En användare som är skräckslagen inför möjligheten att förlora viktig post, borde till exempel kunna förbjuda sin agent att radera meddelanden.
Något som skrämmer många användare är att agenterna kommer att lära sig så mycket om dem. Dessutom kommer agenterna sedan vara villiga att utbyta denna kunskap med andra användares agenter och därigenom göra varje användares beteende offentligt. Många vill kunna behålla en privat sfär där agenten inte får vistas. Denna typ av problem har ännu ingen försökt lösa, mest på grund av att det ännu inte har hunnit bli något större problem.
Om agenter verkligen blir självständiga kommer det även leda in i lagliga problem. Är en användare verkligen ansvarig för vad ens agent gör? Visserligen har man tränat agenten att handla på vissa sätt i generella fall, men i undantagsfall så kan agenten handla tvärt emot sin användares intressen. Vem ska ställas till ansvar om agenten gör något olagligt? Vem bär det juridiska ansvaret för agentens handlingar?
Utvecklingen mot allt mer intelligenta agenter står inför flera stora utmaningar, men om dessa kan övervinnas tycks möjligheterna vara mycket stora. Det finns enorma mängder tid och energi att spara för datoranvändare världen över med att träna sina egna personliga assistenter till att sköta de vardagliga sysslorna. Möjligheten att så småningom lämna den direkta manipulationen hägrar.
Det är också hoppfullt att man redan idag kommit så pass långt som man har. De två agenter som beskrivits i denna uppsats är båda fungerande och gör arbetet med respektive uppgift enklare. Det är verkligen fullt möjligt att intelligenta agenter faktiskt blir framtidens melodi...
Allt fler och fler sysslor utförs med hjälp av datorer, samtidigt som datorprogrammen blir allt större och mer avancerade. Gapet mellan de oerfarna användarna och de allt mångsidigare datorprogrammen riskerar att vidgas ytterligare. Mycket jobb har lagts ned på att förbättra användargränssnitten till programmen och man har också nått stora resultat, men i längden kommer detta inte att vara tillräckligt. Det sätt att arbeta med dator som är förhärskande idag, den direkta manipulationen, måste ersättas med någon form av delegering.
Intelligenta agenter är en speciell typ av datorprogram som arbetar självständigt och dessutom besitter förmågan att lära sig i nya situationer. Agenterna ser ut att kunna fylla ett stort tomrum genom att fungera som ett slags personliga assistenter åt sina användare och utföra rutinmässiga uppgifter, söka reda på intressant information och även kunna visa på bättre sätt att arbeta. Att varje agent hela tiden anpassar sig efter sin användare gör möjligheterna än större.
Mycket forskning kring intelligenta agenter bedrivs vid Media Laboratory på MIT och de har även konstruerat några fungerande agentprototyper. Maxims är en agent för att hjälpa användaren med elektronisk post. Den kan sortera, radera, arkivera, skicka vidare och prioritera de inkommande breven efter att ha ”tittat över axeln” på användaren och lärt sig av dennes beteende. Resultaten med Maxims är upplyftande, men visar samtidigt på en mängd svårigheter som måste överkommas innan agenter verkligen kan komma till praktisk användning.
NewT är en annan av de agenter som konstruerats på Media Laboratory och denna kan hjälpa sin användare att filtrera fram den intressanta informationen på Internets USENET. NewT lär sig genom att få respons på sina val av användaren, och använder detta för att finna nya artiklar som kan vara intressanta.
Både NewT och Maxims använder sig av en del intressanta metoder som visar på några möjliga vägar framåt. Maxims begär t.ex. i okända situationer hjälp av andra användares agenter och håller sedan reda på vilka av dessa som visade sig pålitliga. NewT laborerar med genetiska algoritmer, ett simulerat ekosystem där olika ”individer” har olika grad av duglighet och där de minst dugliga slås ut. Båda dessa metoder har visat sig framgångsrika för att förbättra agentens inlärning och möjliggöra snabbare omställningar när användarens beteende ändras.
Problemen med både Maxims och NewT är dock stora. Den maskinella inlärningen sker fortfarande mycket långsamt och många exempel krävs innan något mönster kan hittas. Att beräkna sambanden mellan olika delar av en situation och en viss händelse ger dessutom upphov till stora mängder beräkningar och data. Ett annat problem är att närmast alla de områden där vi behöver stöd och hjälp innefattar naturligt språk, något som det inte finns bra metoder för att analysera i dator. NewT är t.ex. tvingad att försöka sluta sig till artikelns innehåll bara genom förekomsten av vissa sökord.
Även om det alltså finns många hinder kvar, så är utvecklingen ändå hoppfull. Det forskningsområde som gett upphov till många av idéerna bakom de intelligenta agenterna, forskningen kring artificiellt liv, är ännu mycket ungt. Det är troligt att många av de nuvarande problemen kommer att kunna lösas och lämna plats för en typ av mer sociala frågeställningar – Kan man verkligen lita på en dator? Vem bär det juridiska ansvaret för en agents handlingar? Och kan man behålla någonting privat för en agent som hela tiden observerar en beteende? Det är inte alls otroligt att de intelligenta agenterna kommer att spela en större roll i framtiden.
Bonniers svenska ordbok; Malmström, Györki, Sjögren, Bonnier Alba, Stockholm 1994
Foner, Leonard; What’s An Agent, Anyway? A Sociological Case Study, Autonomous Agents Group, MIT Media Laboratory, 1993
Lashkari, Y, Metral, M. & Maes, P.; ”Collaborative Interface Agents”, Proceedings of AAAI ’94 Conference, Seattle 1994
Maes, Pattie; ”Agents that Reduce Work and Information Overload”, Communications of the ACM, Vol.37, Nr.7, 1994
Maes, Pattie; ”Intelligent Software”, Scientific American, Vol.273, Nr.3, 1995
Sheth, Beerud Dilip; A Learning Approach to Personalized Information Filtering, Dept. of Electrical Engineering and Computer Science, MIT 1994