AI-enabled User-Interface: linee guida per la progettazione di interfacce

AI-Enabled User-Interface

Tra le rivoluzioni più importanti nel campo dell’informatica possiamo annoverare senza dubbio la successione di interfacce uomo-macchina sempre più coinvolgenti che hanno cambiato i paradigmi di utilizzo degli strumenti informatici. A partire dalle interfacce a caratteri dei primi terminali che hanno sostituito i criptici vecchi terminali a luci intermittenti, poi sostituti dalle interfacce dei sistemi oprativi ad icone (Apple, Xerox, Microsoft ecc.) e per concludere oggi le ormai consolidate tecnologie touch degli smartphone, e cosi via si potrebbe andare avanti per altre centro parole.

Ma oggi abbiamo una nuova criticità da risolvere: l’utilizzo su larga scala delle tecniche di AI. Se si vuole che abbia lo stesso livello di popolarità è necessario affiancarla da interfacce appositamente realizzate, ma non basta che siano “coinvolgenti”.

Per questo motivo ho iniziato una ricerca personale mirata ad esplorare qual’è lo stato dell’arte attuale delle user-interface a supporto delle tecniche di AI.Uno dei primi articoli che ho trovato è quello di Naïma van Esch intitolato “How to design for AI-enabled UI” [1] che ho deciso di tradurre in italiano ed arricchire di commenti personali.

Premetto che alcune parti possono apparire superficiali ed ingenue, ma è un primo articolo che ho deciso di tradurre e studiare che sarà arricchito in futuro.

Introduzione

L’intelligenza artificiale è ancora considerata come una tecnologia nascente (da un certo punto di vista), anche se esiste all’incirca dal 1950. Più precisamente è considerata nuova in quanto solo oggi grazie alla crescente potenza di calcolo e la disponibilità di grandi basi dati si possono apprezzare i primi risultati tangibili. Oggi l’intelligenza artificiale sta rapidamente sostituendo e supportando attività umane ripetitive e complesse attraverso processi mirati a risolvere precisi compiti.

Il termine intelligenza artificiale (AI) si riferisce a quell’insieme di tecniche ed algoritmi che imitano le funzioni cognitive tipicamente umane come l’apprendimento e la risoluzione di problemi.

Ma, come ho discusso in un’altro articolo (Che cos’è l’eXplainable AI e perché è importante – [8]), tali tecniche sono per lo più scatole nere che possono produrre effetti si sfiducia ed ansia negli utilizzatori finali. In oltre l’intelligenza artificiale è comunque un software realizzato da umani, dunque soggetto ad errori e pregiudizi tanto quanto il suoi creatori. Infine, l’intelligenza artificiale non “capisce” e non “impara” esattamente come accade per gli esseri umani, ma più banalmente segue istruzioni (complesse) per la quale è stata programmata, oppure non è in grado di comprendere sfumature o contesto.

In oltre alcune delle tecniche di AI sono ancora troppo facili da “ingannare” come il caso fatto emergere dal team di Google che ha dimostrato che basta un adesivo di un tostapane psichedelico per ingannare un sistema di riconoscimento delle immagine. [2][3]

Oppure come il recente caso della Autopilot di Tesla ingannata attraverso l’applicazione di adesivi applicati sulla strada che hanno indotto in errore il software dell’auto forzandola a cambiare erroneamente corsia.

E se ricordate anche durante il celebre evento del Super Bowl uno spot di Alexa che mostrava diverse disavventure degli utenti dell’assistente vocale, ma questo spot mandò in tilt milioni dispositivi in tutto il mondo semplicemente attivandolo da remoto attraverso l’audio dei dispositivi TV. [4]

E questi sono solo alcuni dei casi più iconici e divertenti, ma come questi potrebbero esisterne tantissimi altri e dalle implicazioni più rilevanti.

Secondo l’autrice dell’articolo [1], gli esempi di “fallimenti” delle AI sono dovuti al fatto che molti degli algoritmi di AI sono alimentati da big data che rappresentano situazioni ideali senza considerare quei “piccoli dati” relativi a situazioni impreviste o scenari critici. Ecco perché è importante per i progettisti non solo prevedere gli scenari ideali (dove tutto va come il previsto), ma soprattutto far emergere e preparare adeguatamente l’algoritmo di AI a quelli imprevisti.

Quante tipologie di AI esistono?

Secondo Chris Noessel, l’intelligenza artificiale può essere suddivisa in tre categorie [5] [6]:

  • Artificial Narrow Intelligence (ANI): detta anche Intelligenza artificiale ristretta, intelligenza che può apprendere e dedurre, ma non può generalizzare – solitamente focalizzata su un compito. Questa è fondamentalmente l’intelligenza artificiale che esiste oggi;
  • Artificial General Intelligence (AGI): Intelligenza generale, un’intelligenza di una macchina simile a quella di un cervello umano;
  • Artificial Super Intelligence (ASI): la super intelligenza, un’intelligenza che supererebbe di gran lunga quella degli umani;

Nell’articolo che ho cercato di tradurre e riassumere quando parla di Intelligenza Artificiale si riferisce all’Artificial Narrow Intelligence (ANI), ovvero la cosiddetta Intelligenza Artificiale ristretta.

Cosa sono le AI-enabled User-Interface?

Perché l’intelligenza artificiale sia utilizzata dagli esseri umani, è necessaria un’interfaccia utente, questo come qualsiasi cosa realizzata attraverso le tecnologie informatiche e non. L’interfaccia utente in questo caso è il mezzo attraverso il quale si realizzano le interazioni tra uomo e macchina e quindi in questo caso tra uomo ed AI.

Ai-enabled User-Interface
Ai-enabled User-Interface

Quindi una delle domande che si pone l’autrice dell’articolo è: Quali sono le AI-enabled User Interface?

L’autrice usa un’interessante definizione che in lingua Italiana dovrebbe essere più o meno: “È un’interfaccia con funzioni cognitive simulate atte a facilitare l’interazione uomo e macchina.”

In realtà non dobbiamo andar così lontano per trovare un’esempio di queste interfacce con “funzioni cognitive simulate”, ne sono certamente un esempio Amazon Alexa, il termostato Nest, Jarvis, IBM Watson, iRobot Roomba, Netflix e Spotify e moltissime altre. Queste sono solo forse gli esempi più lampanti dell’utilizzo dell’intelligenza artificiale si vedano le funzioni di auto-completamento di Google o gli effetti fotografici di Instagram che invece sono sicuramente basati su tecniche di AI, ma non lo sembrano o per lo meno non lo percepiamo.

L’intelligenza artificiale è implementata ovunque, ad esempio un motore di ricerca, dietro la libreria fotografica o in un aspirapolvere, ma l’interfaccia con essa potrebbe essere più o meno evidente in base alle necessità di interazione.

In particolare nell’interfaccia utente AI-Enabled, l’intelligenza artificiale ha la capacità di comprendere i comandi dell’utente e presentare all’utente le risposte più affini (si spera) agli obiettivi utente sulla base di tutti i dati disponibili che possiede. Dunque in questo senso l’interazione con l’AI dovrà essere facile, semplice, efficiente ed efficace in modo che gli utenti possano raggiungere facilmente i loro obiettivi.

Dunque oggi una delle sfide che i progettisti devono affrontare è come progettare un’interfaccia di tipo AI-Enabled con la quale gli utenti possano interagire naturalmente ed in modo fiducioso. A tal proposito l’autrice propone alcuni principi per la progettazioni di interfacce AI-enabled User-Interface.

Principi di progettazione per AI-enabled User Interface

L’autrice espone alcuni principi di progettazione di AI-enabled User Interface emersi attraverso il suo lavoro di progettazione delle UX a supporto di tecnologie AI, raggruppandoli in quattro principi di base che possono essere applicati durante la progettazione di interfacce di tipo Ai-Enaled.

Ai-Enabled User-Interface
AI-Enabled User-Interface

Le categorie sono quattro:

  • gestione delle scoperte e delle aspettative;
  • design per il perdono;
  • trasparenza dei dati e sartoria;
  • privacy, sicurezza e controllo;

… ma andiamo con ordine.

1. Gestione delle scoperte e delle aspettative dell’utente

Per iniziare è necessario definire bene le aspettative degli utenti per evitare che essi si costruiscano false aspettative rispetto all’interfaccia AI-enaled

  1. Gli utenti devono essere consapevoli di ciò che lo strumento può e non può fare – Questo perché le persone non hanno ancora familiarità con l’intelligenza artificiale e quindi il design dell’interfaccia deve possedere più dettagli “guida” possibili. É necessario gestire le aspettative utenti e lasciare che l’utente capisca quali siano le possibilità che lo strumento offre, come impara e cosa deve fare l’utente per raggiungere i propri obiettivi. Ad esempio, l’unica aspettativa che rispetto ad un dispenser di cibo animali domestici è quello di nutrire il mio gatto più volte al giorno senza la mia presenza fisica. Tuttavia, l’alimentatore intelligente di Petnet offre più funzionalità, in particolare l’intelligenza artificiale utilizza il peso del gatto, età, razza e livello di attività per somministrare la corretta porzione di cibo giornaliera, tali funzionalità devono essere resi chiari affinché l’utente sappia quali sono le sue potenzialità; [7]
  2. Gli utenti dovrebbero aspettarsi il la massima qualità nelle risposte a seguito di un’input minimo – In questo senso è necessario progettare il sistema in modo che l’utente possa aspettarsi un prodotto di valore ottenuto da un’input naturale. L’input naturale può essere definito come un’input che l’utente considera come naturale rispetto al suo modo di comunicare e a i suoi obiettivi, in altre parole è definibile come input a “costo -cognitivo- zero”. L’interfaccia dovrebbe essere facile da usare, efficiente e deve permettere di raggiungere gli obiettivi dell’utente in modo semplice ed efficiente. Nell’esempio del dispenser di cibo per gatti questo si potrebbe tradurre in un’unica configurazione iniziale, oppure in una serie di notifiche che avvisano l’utente che la scorta di cibo si sta esaurendo. In altri termini l’utente deve solo configurare l’oggetto e ripristinare la scorta di cibo;
  3. L’interfaccia dovrebbe assecondare un suo utilizzo per scopi inaspettati – L’uso dell’AI nella vita quotidiana delle persone è ancora in una fase iniziale dunque gli utenti potrebbero scoprire la possibilità di utilizzare la tecnologia in modi per cui non è stata progettata. Ecco perché progettare per la scoperta è fondamentale in ottica di scoprire le -inaspettate- possibilità dell’uso dello strumento AI. Con un esempio naive, immaginiamo di aver perso un orecchino di piccole dimensioni in un grande tappeto, potrei semplicemente avviare il mio Roomba e lasciarlo vagare per la stanza, con la certezza che lui sonderà l’intero pavimento e alcuni minuti dopo ritrovare l’orecchino nel contenitore estraibile della polvere;
  4. Informare l’utente sugli imprevisti – l’AI commetterà degli errori, quasi sicuramente, perché i progettisti umani che l’hanno realizzata sono inclini all’errore e non sono onniscienti, quindi è quasi certo che gli utenti incontreranno scenari che i progettisti non hanno previsto e incluso negli algoritmi. Dunque è necessario fare in modo che l’utente sappia che potrebbero esserci degli errori e quando ci sono di renderli evidenti. Questo punto è talmente critico rispetto alla progettazione di interfacce utente a supporto delle AI che l’autrice ha dedicato un’intero principio di seguito.

2. Design per il perdono dell’AI

L’intelligenza artificiale commetterà errori. Dunque è necessario progettare l’interfaccia utente in modo che gli utenti siano inclini a perdonarlo e/o mitigare l’effetto.

  1. Progetta lo strumento in modo che gli utenti perdonino l’AI quando commette errori – Uno dei modi per progettare per il perdono è utilizzare un’interfaccia utente che simula creature o oggetti che gli esseri umani sono già naturalmente inclini a perdonare, ad esempio l’umorismo utilizzato da Siri o Alexa;
  2. Progettazione un’interfaccia che permetta di utilizzare l’intelligenza artificiale senza connettività Internet – È importante evitare di progettare l’interfaccia utente che si basa esclusivamente sulla connettività Internet, gli utenti dovrebbero ottenere valore dall’AI indipendentemente dal fatto che sia connesso a Internet, oppure un problema inaspettato nella connettività non dovrebbe degradare eccessivamente le capacità dell’AI;

3. Trasparenza dei dati e personalizzazione

É necessario realizzare un’interfaccia che sia trasparente nella raccolta dei dati e offrire agli utenti la possibilità di personalizzare tale raccolta

  1. L’interfaccia dovrebbe comunicare trasparenza nell’utilizzo dei dati utente, offrire loro la possibilità di monitorare i dati raccolti e personalizzare le modalità di raccolta degli stessi. Non è necessario mostrare i funzionamenti interni degli algoritmi all’utente, ma è importante menzionare quali dati vengono utilizzati affinché quest’ultimo ne sia consapevole;
  2. É necessario progettare gli input utente tali da abilitare l’algoritmo di AI di apprendere, in oltre gli algoritmi di AI – spesso – non sono in grado di applicare il contesto o la semantica a tali dati, dunque è necessario fornire agli utenti la possibilità di personalizzare i dati in modo da fornire all’algoritmo di AI contesto ed il significato di tali dati. Le macchine, oggigiorno hanno ancora bisogno degli esseri umani per costruire un contesto intorno ai dati e questo è possibile realizzarlo tramite feedback appositamente progettati rispetto agli obiettivi utente e l’algoritmo che si sta realizzando. Ne è un esempio “Google Translate” che offre la possibilità di scegliere considerata la migliore o addirittura di suggerire delle varianti;
  3. Gli utenti dovrebbero essere in grado di regolare ciò che l’intelligenza artificiale ha imparato – l’AI si configura in base all’apprendimento automatico e al monitoraggio del comportamento dell’utente. Tuttavia, l’intelligenza artificiale commetterà errori e produrrà previsioni che gli utenti non desiderano. Pertanto, oltre a progettare per la scoperta e il perdono, offrire all’utente di personalizzare le previsioni a loro piacimento, ad es. regolando ciò che l’AI ha imparato. Questo è ciò che rende l’intelligenza artificiale particolare rispetto a quella umano, essa può essere regolata, aggiustata o addirittura azzerata, tutte cose che non possono accadere con gli esseri umani.

4. Privacy, sicurezza e controllo

Guadagna la fiducia dell’utente fornendo il controllo sulla la privacy, la sicurezza e le funzionalità dell’intelligenza artificiale.

  1. É necessario progettare l’interfaccia in modo che faccia percepire la massima sicurezza possibile – Gli utenti, sapendo che l’intelligenza artificiale avrà dati personali cruciali, personali e riservati alla privacy, è importante che l’interfaccia utente faccia del suo meglio per proteggere i miei dati. Progettare questo nell’interfaccia utente non solo per consentire all’utente di percepire l’intelligenza artificiale, ma anche per proteggere i dati e proteggere la loro privacy;
  2. Fornire degli esempi e delle funzionalità di test all’utente – Soprattutto quando un prodotto è nuovo, gli utenti vogliono verificare se può realmente offrire ciò che promette di fare. Quando l’utente sa che il prodotto offre effettivamente ciò che ha promesso di fare, l’utente si fiderà di più del prodotto. Questo è ancor giù importante per le tecnologie supportate da AI che allo stato attuale non godono ancora di sufficiente fiducia diffusa;
  3. Progettare l’interfaccia in modo che l’utente possa prendere il controllo ogni volta che l’utente lo desidera. Ne è un esempio il sistema di Autopilot di Tesla che permette di prendere il controllo dell’auto in qualsiasi momento;
  4. L’IA dovrebbe imparare dall’intervento (presa di controllo) dell’utente – Quando un utente interviene e prende il controllo dell’IA, lascia che l’AI impari da questo comportamento. L’intelligenza artificiale dovrebbe ricordare l’intervento al fine di dare un risultato migliore all’utente per la prossima volta;
  5. L’IA non dovrebbe fare nulla senza il consenso dell’utente – l’AI dovrebbe chiedere revisioni e il permesso di eseguire compiti che hanno conseguenze significative. Sì, l’AI dovrebbe essere proattiva, tuttavia, l’utente è ancora il decisore finale e lui dovrebbe confermare se vogliono che l’AI faccia davvero una data azione;
  6. L’IA dovrebbe informare gli utenti degli errori di sistema – Avvisare l’utente quando ci sono ostacoli nell’esecuzioni determinati compiti e offrire soluzioni per correggere l’evento critico.

Il takeaway

Dunque, facciamo un breve riassunto da tenere sempre sottomano quando si progetta un’interfaccia AI-enabeld.

Quando si progetta per l’intelligenza artificiale, avere sempre in mente l’utente. Assicurati che il prodotto sia facile da usare, utile, efficiente e che sia considerato affidabile dagli utenti.

1. Gestione delle scoperte e delle aspettative dell’utente: É necessario definire bene le aspettative degli utenti per evitare che essi si costruiscano false aspettative rispetto all’interfaccia AI-enaled
  1. Gli utenti devono essere consapevoli di ciò che lo strumento può e non può fare;
  2. Gli utenti dovrebbero aspettarsi il la massima qualità nelle risposte a seguito di un’input minimo;
  3. Dovrebbe assecondare l’utilizzo dell’interfaccia a scopi inaspettati
  4. Informare l’utente sugli imprevisti;

2. Design per il perdono dell’AI: L’intelligenza artificiale commetterà errori. Dunque è necessario progettare l’interfaccia utente in modo che gli utenti siano inclini a perdonarlo e/o mitigare l’effetto

  1. Progettare lo strumento in modo che gli utenti perdonino l’AI quando commette errori
  2. Progettazione un’interfaccia che permetta di utilizzare l’intelligenza artificiale senza connettività Internet

3. Trasparenza dei dati e personalizzazione: É necessario realizzare un’interfaccia che sia trasparente nella raccolta dei dati e offrire agli utenti la possibilità di personalizzare tale raccolta

  1. L’interfaccia dovrebbe comunicare trasparenza nell’utilizzo dei dati utente;
  2. É necessario progettare gli input utente tali da abilitare l’algoritmo di AI di apprendere, in oltre gli algoritmi di AI;
  3. Gli utenti dovrebbero essere in grado di regolare ciò che l’intelligenza artificiale ha imparato;

4. Privacy, sicurezza e controllo: Ottieni fiducia guidando la privacy, la sicurezza e la capacità di controllare l’intelligenza artificiale

  1. É necessario progettare l’interfaccia in modo che faccia percepire la massima sicurezza possibile;
  2. Fornire degli esempi e delle funzionalità di test all’utente
  3. Progettare l’interfaccia in modo che l’utente possa prendere il controllo ogni volta che l’utente lo desidera
  4. L’IA dovrebbe imparare dall’intervento (presa di controllo) dell’utente
  5. L’IA non dovrebbe fare nulla senza il consenso dell’utente
  6. AI dovrebbe informare gli utenti degli errori di sistema
Riferimenti:
  1. [1] How to design for AI-enabled UI, Naïma van Esch
  2. [2] A Simple Sticker Tricked Neural Networks Into Classifying Anything as a Toaster, Melanie Ehrenkranz
  3. [3] Brown, Tom B., et al. “Adversarial patch.” arXiv preprint arXiv:1712.09665 (2017)
  4. [4] Lo spot Amazon Alexa del Super Bowl manda in blackout il pianeta, Daniele Piccinelli
  5. [5] Noessel, C. (2017). Designing Agentive Technology. Rosenfeld Media
  6. [6]
    L’Intelligenza Artificiale: la rivoluzione che cambierà il mondo, Tagliaerbe
  7. [7] Petnet
  8. [8] Che cos’è l’eXplainable AI e perché è importante, Domenico Monaco

Cosa ne pensi? Dimmelo su Twitter @_domenicomonaco oppure su Linkedin linkedin.com/in/domenicomonaco