30 September 2018

Fördomsdetektorn

Idén

Alla har har dolda bias och fördomar som påverkar hur vi bemöter andra människor. Det första steget att hantera dessa fördomar är att identifiera dem. Detta är huvudidén bakom PABST - Prototyp Anti-Bias Screening Technology. PABST är ett text-analys-verktyg som undersöker din utgående kommunikation med en specifik grupp människor, och ifall du konsekvent uttrycker dig annorlunda mot den undersökta gruppen. Ifrågasätter du kvinnor oftare? Uttrycker du dig oftare negativt mot invandrare? Säger du “Rappa på!” oftare till praktikanter? Detta är några av frågorna vi ville kunna undersöka, och använda insikterna som utgångspunkt för attityd- och beteendeförändring.

Resultat

Vi byggde en tjänst bestående av två delar. Den ena delen var en text-analys-server - ett .NET-API som tar två stora text-massor som input. En som baslinje, och en att undersöka och jämföra. Outputen är en frekvenstabell, samt en sentimentanalys. Frekvenstabellen innehåller ord som sagts extra ofta till målgruppen. Samt även dom fraser som sagts ovanligt sällan, set till hur du brukar kommunicera. Sentimentanalysen kollar på nivån av positivitet i dina uttryck, och genererar ett värde mellan -1 till 1. Ett meddelands som “Jag hatar jobbiga problem”, skulle poängsättas väldigt lågt i analysen, medan frasen “Underbara regnbågar och hundvalpar” skulle räknas högt.

Den andra delen är en plugin för vår kontors-chat-app Slack. Idén kan egentligen lika gärna bra appliceras på Gmail, Messenger eller Whatsapp, men vi valde just detta medium på grund av dess utmärkta API:er för att extrahera chatloggar, medan det samtidigt finns tillräckligt med data för att skapa meningsfulla analyser (Prototyps Slack-workspace är i skrivande stund uppe i runt 200k meddelanden). Att bygga en Slack-plugin gav oss också ett enkelt sätt att bygga det gränssnitt som behövdes för själva data-extraheringen. Det grundläggande flödet funkar såhär:

  • Initiera Analys - Användaren startar en ny analys och bestämmer ett namn på gruppen den vill undersöka sina fördomar mot. Exempelvis: “Hundägare”
  • Kategorisering - Användaren erbjuds en serie av drop-down-menyer där hen får peka ut vilka andra Slack-användare som faktiskt äger en hund.
  • Resultat - Användaren får tillbaka en resultatet: en frekvens-analys-tabell och en sentiment-analys. Kan se ut som något i denna stil:

Screenshot från PABST

Lärdomar

Text-analys är komplext, men kul! Det är enkelt att komma igång och pröva, men svårt att bemästra. Vi lyckades implementera en (extremt naiv) lösning redan efter första arbetsdagen, men vi sprang snabbt på problem och komplicerande faktorer såsom: språkseparering, bestämmande av minsta mätbara enhet, val av jämförelseenhet, och finkalibrering av filterfaktorer.

Precis som med maskin-inlärning så kräver text-analys massor av data. Och då snackar vi verkligen massor. En konversationstråd med 2000 ord som experiment-korpus är inte i närheten av massor, och genererar en frekvensanalys full av märkliga ytterlighetsfall, till exempel genom att råka nämna en kollega eller annat egennamn ett par gånger.

Slack-API:et är prydligt och väldokumenterat och väldigt trevligt att arbeta med, även om det finns många begränsningar i hur Slack låter dig bygga gränsnittet för din plugin.