Politie gebruikt deeplearningmodel van NFI in Encrochat-onderzoek

Het Nederlands Forensisch Instituut heeft een deeplearningmodel ontwikkeld dat een grote hoeveelheid berichten kan scannen en berichten filtert die een serieuze bedreiging bevatten. De politie gebruikte het model bij het Encrochat-onderzoek.

Het Forensische Big Data Analyse-team van het NFI maakte het neurale netwerk door dit eerst te trainen op 'generiek taalbegrip'. Het team liet het model eerst bijvoorbeeld krantenartikelen of Wikipedia-artikelen lezen, zodat het model begrijpt hoe de Nederlandse taal werkt. Later werden daar berichten van criminelen aan toegevoegd, zodat het model leerde hoe criminelen onderling communiceren.

Ondertussen maakten NFI-medewerkers samen met politierechercheurs woordenlijsten met signaalwoorden. De politiediensten zochten specifiek naar woorden die criminelen kunnen gebruiken om duidelijk te maken dat ze iemand willen mishandelen, ontvoeren of vermoorden, of dat ze willen dat een ander hiervoor zorgt. Het gaat om woorden als dood, slapen, poppen, afknallen en verdwijnen. Hiervoor werkten het NFI en de politie samen met de internationale politiedienst Europol, om vergelijkbare lijsten in het Frans en het Engels te kunnen maken.

Toen de woordenlijst klaar was, kon deze worden ingeladen in het model en kon het model zoeken naar de signaalwoorden in berichten. Het NFI wilde geen simpel zoekmodel; aan de hand van de context moet te bepalen zijn hoe bedreigend een resultaat is. Het woord slapen kan immers betekenen dat iemand omgelegd moet worden, maar ook simpelweg dat iemand gaat slapen. Het NFI wilde voorkomen dat het model irrelevante berichten als bedreigend bestempelde.

NFI-medewerkers verzamelden daarom tienduizenden zinnen die door het model waren gevonden en gaven aan of het bedreigende of niet-bedreigende zinnen waren. Daardoor kan het model inschatten hoe bedreigend een bericht is, op een schaal van nul tot 1, schrijft het instituut. De resultaten worden gecheckt, gelabeld op de 'bedreigendheid' en weer ingeladen in het model. Zo wordt het algoritme volgens het NFI steeds slimmer en kan het berichten steeds beter inschatten. Tegelijkertijd zegt het instituut wel dat het model nooit 100 procent klopt en dat het slechts een hulpmiddel is.

Het NFI-model was op tijd klaar om gebruikt te worden in het Encrochat-onderzoek. Hierbij kraakten Nederlandse en Franse politiediensten de cryptotelefoondienst en werden er 25 miljoen berichten onderschept. Het politieteam Threat To Life gebruikte het model om de berichten te kunnen doorzoeken op levensbedreigende berichten. Hierdoor zijn volgens de politie tientallen mensen gewaarschuwd omdat ze mogelijk vermoord, zwaar mishandeld of ontvoerd zouden worden.

Vermoedelijk gaat de politie het model bewaren om het in te kunnen zetten bij volgende onderzoeken, al meldt het NFI dat niet. Het is niet voor het eerst dat het instituut een dergelijk model maakt; eerder werd er een model gemaakt om aan drugs gerelateerde berichten te kunnen herkennen.

Door Hayte Hugo

Redacteur

05-05-2021 • 15:11

65

Reacties (65)

65
62
29
3
0
23
Wijzig sortering
Het klinkt leuk, maar heb er weinig vertrouwen in dat het NFI zo snel zelf een model heeft ontwikkeld dat intenties altijd goed snapt.
Google, Apple en Amazon slaan daar al jaren miljarden op stuk en Siri en Alexa zijn nog steeds horken.

Ik zou een model verwachten gebaseerd op bekende delicten in plaats van alleen taal.

[Reactie gewijzigd door frickY op 23 juli 2024 04:57]

Het verschil met amazon en alexa is dat het resultaat van het neurale net geen ongecontroleerde actie tot gevolg heeft (bvb je lichten aanzetten of muziek afspelen zoals die stemassistenten doen, best vervelend als dat niet je bedoeling was): wat dit neurale net doet is berichten markeren zodat rechercheurs die kunnen bekijken. Die rechercheur snapt dingen zoals intentie en context natuurlijk wel.

Het neurale net hoeft hier helemaal niet perfect te werken en de intentie en context 100% goed in te schatten: dat is namelijk niet het probleem waar men tegen aan loopt,dat kunnen rechercheurs best goed. Het probleem is de enorme gigantische hoeveelheid berichten die uit Encrochat komen. Daar handmatig doorgaan is niet doenbaar, en weten waar je eerst moet kijken ligt niet voor de hand.

En dus komt dit neurale net van pas: als die als een soort grove kam door de berichten kan gaan zodat rechercheurs weten waar eerst te kijken kan dit enorm veel tijd besparen.
Een probleem daarbij zijn false-negatives, waardoor die rechercheurs relevante berichten helemaal niet zien. Bijvoorbeeld omdat er eens niet wordt gesproken over "laten slapen" maar andere terminologie.
Zeker, maar zonder het algoritme heb je helemaal geen beginpunt voor je onderzoek, en alle berichten doorlezen is niet haalbaar dus dan mis je die content ook.
Dat is inderdaad een probleem. Ik beargumenteerde waarom dit mij niet de juiste oplossing lijkt voor dat probleem.
Wikipedia heeft een overzicht van criminele afrekeningen in Nederland, vanaf 1990 zijn dat er volgens het overzicht minder dan honderd in 30 jaar tijd ...

Bewering van politie dat zij tientallen mensen heeft behoed voor moord, mishandeling of ontvoering lijkt als je naar die cijfers kijkt nogal overdreven.

https://nl.wikipedia.org/..._liquidaties_in_Nederland

[Reactie gewijzigd door Verwijderd op 23 juli 2024 04:57]

Als je goed naar de cijfers kijkt is dat best mogelijk, het is namelijk geen vlakke lijn als je het uitzet in de tijd, maar er zijn soms piekjaren, zoals 2017, waarin 18 doden vielen. Daarnaast zitten in de cijfers die je aanhaalt alleen de liquidaties, niet de mishandelingen of ontvoeringen.
Wat ik zou willen weten: wat zijn de false negatives en false positives scores? Bleken de gewaarschuwde mensen ook echt in gevaar te zijn? En omgekeerd: zijn er misdaden geweest die het systeem had kunnen poppen, maar die het liet verdwijnen? Daar zou ik ze graag op afrekenen.

Daar wordt niks over gerept. En dat is verdacht.
Jij lijkt er van uit te gaan dat het systeem simpelweg gebruikt wordt om beslissingen te nemen, dat zal niet het geval zijn, het is een stuk gereedschap die het mogelijk maakt een grote hoeveelheid data schiften. Aan de hand van resultaten zal er verder onderzoek gedaan worden, en dan wordt er pas een beslissing gemaakt om een waarschuwing te doen.
En dat is verdacht.
Nee, dat is niet verdacht, dit is een nieuwsbericht, geen wetenschappelijk onderzoek of rapport.
> Jij lijkt er van uit te gaan dat het systeem simpelweg gebruikt wordt om beslissingen te nemen.

Ik ging er niet vanuit dat de tool werd gebruikt voor geautomatiseerde besluitvorming, mocht je dat bedoelen.

Maar er wordt toch vanuit deze tool wel de beslissing genomen om ergens aandacht aan te geven? Dat er nog een mens naar kijkt begrijp ik. Juist daarom zou je verwachten dat er interessante data is over het succespercentage.

Ik vind dat een nieuwsbericht over zo'n tool best iets mag zeggen over de effectiviteit van de tool. Andere nieuwsberichten over AI doen dat ook. Bijvoorbeeld iets als "deze gezichtsherkeningstool was 95% accuraat". Bij het zoeken naar zeldzame dingen is er in verhouding meestal weinig trainingsdata voorhanden, en dat zorgt altijd voor veel false positives en false positives. Mijn verwachting is vervolgens dat deze AI veel missers zal maken, en dat maakt de vraag naar informatie over het succespercentage relevant.

Er wordt nu slechts geïmpliceerd dat deze tool enorm nuttig is "want droeg bij aan een onderzoek". En we hebben dit:

> Tegelijkertijd zegt het instituut wel dat het model nooit 100 procent klopt en dat het slechts een hulpmiddel is.

Niet 100%.. ok.

Ik had best wat meer willen weten, temeer omdat de rest van het nieuwsbericht eigenlijk niks spannends zegt. De beschrijving hoe het algoritme is getraind is super generiek. Immers, alle AI wordt precies zo getraind. Daardoor leest het voor mij alsof er een persbericht is gekopieerd. Het leest voor mij nu meer als een advertorial, en dat vond ik 'verdacht'.

Was het echt niet mogelijk om even navraag te doen bij de politie?
Waarom is dat verdacht?
Je wil graag de false negatives zo laag mogelijk en tegelijk het aantal false positives een beetje in de hand houden. Tenminste als je elke positive wil uitzoeken (of waarschuwen).
Het alternatief is een gewone search, maar als je dat 1% van de berichten oplevert moet je er nog altijd 250.000 bekijken en uitzoeken.
Gegeven dat het aantal politie uren niet onbeperkt is vind ik het geen probleem dat je een ML gebruikt en een aantal relevante berichten mist.
inderdaad, ik herinner me diverse berichten over ontvoeringen die eigenlijk alleen de lokale pers haalden. vallen niet onder liquidaties, maar zijn net zo serieus.
Daarnaast zijn er vrij simpel gesteld "afrekeningen" die niet als zodanig herkend zijn. Verdachte autoongelukken zijn er altijd wel maar zonder bewijs blijft dat hooguit een verdachte dood.
En zo zijn er vast nog heel wat scenarios te bedenken.
"Hierdoor zijn volgens de politie tientallen mensen gewaarschuwd omdat ze mogelijk vermoord, zwaar mishandeld of ontvoerd zouden worden." Is er bewijs hiervan of dikke duimzuigerij?
... mogelijk ... Dat betekent dus dat men aanwijzingen had dat mensen ernstig gevaar liepen, maar niet in welke mate. Mishandelingen en ontvoeringen komen zelden in het nieuws. Dat is nu eenmaal een beroepsrisico en meestal probeert het slachtoffer dat stil te houden.
Je kunt geen wikipedia lijst als bron hiervoor gebruiken. Het gros van de afrekeningen hoor je niets van in de media. Het zijn er zo'n 25 per jaar. https://nos.nl/artikel/21...erwereld-meer-liquidaties
Bewering van politie dat zij tientallen mensen heeft behoed voor moord, mishandeling of ontvoering lijkt als je naar die cijfers kijkt nogal overdreven.
Dat kun je toch niet stellen? Wellicht zijn de cijfers zo laag juist door adequaat onderzoek en optreden door OM en de politie? Het verschil (met het verleden) is dat de platformen die criminelen gebruiken nu veelal digitaal zijn en de onderzoeks- en opsporingsmethodes dus mee moeten veranderen, maar politiewerk blijft nodig om de cijfers zo laag mogelijk te houden.

Edit: opmaak

[Reactie gewijzigd door Polydeukes op 23 juli 2024 04:57]

Elk jaar verdwijnen er mensen spoorloos en dan zijn alleen die mensen bekend die ook daadwerkelijk door iemand als vermist worden opgegeven. Daarnaast is die lijst vooral spraakmakende afrekeningen, er worden wel meer mensen vermoordt in het milieu dan wat je op die lijst vindt. Jantje die een ons jat van de verkeerde, of Pietje die zijn lening niet terug betaald, of iemand die te loslippig is geweest vindt je amper tot niet op die lijst terug. En net als overal zal er ook wel een hoop gepraat worden maar gebeurt er soms gewoon niets.

Daarnaast slaat de zin niet alleen op Nederland maar is die internationaal bedoelt.
De lijst, die je linkt, is verre van compleet. Alleen al binnen mijn stad, binnen de afgelopen 3 jaar, missen er 7 liquidaties.

Nog een voorbeeld, de liquidatie van Cor van Hout. Bij deze liquidatie zijn 2 mensen onder de grond gedrukt. Alleen Cor van Hout staat vermeldt.

[Reactie gewijzigd door Generaal Pep op 23 juli 2024 04:57]

"op een schaal van nul tot 1" :) da's wel erg zwartwit :D
Zoals gezegd, continu getal. Uitkomst van iets als een sigmoid, ReLu, tanh, etc, etc.
De sigmoid waarschijnlijk. ReLu en tanh zijn beide niet tussen de 0 en 1.
Ligt er maar net aan wat voor netwerk er gebruikt wordt. Het kan namelijk zijn dat er een linear model gebruikt wordt met een limiet van 0 tot 1 erna. Het is namelijk geen classificatie, maar een regressie van "bedreiging".
Ik vermoed dat dit classificatie is aangezien er hier een beslissing wordt gemaakt (is het bedreigend of niet, met een percentage zekerheid). Daarnaast heb ik het over de wiskunde achter de formules. Tanh loopt van -1 tot 1 en ReLu is f(x) = max(0,x).

Als het model overigens volledig lineair is, dan is het neurale netwerk wel overbodig.

[Reactie gewijzigd door Luminai op 23 juli 2024 04:57]

In een classificatie model gebruik je als activation function van de achterste layer eigenlijk altijd sigmoid.

Het voordeel is dat de output van een neuron dan een waarschijnlijkheid op positieve classificatie (0 … 1) gaat representeren na training.

In eerdere layers gebruik je vaak relu (als cut-off van signalen buiten een relevante range) of tanh (lijkt op sigmoid, traint lekker vanwege homogeen verloop, introduceert geen bias).
"Het model geeft ieder bericht een cijfer tussen de 0 en de 1 mee. Hoe dichter bij de 1, hoe groter de kans dat het om een bedreigend bericht gaat."

Dit staat in het bericht op forensischinstituut.nl. Dus dit zal zeer waarschijnlijk een getal achter de komma zijn :)
een cijfer is nooit met decimalen. dan is het een getal.

een getal kan uit meerdere cijfers bestaan, eventueel met een decimaal teken. Een getal cijfer is 1 numeriek teken.

[Reactie gewijzigd door TwiekertBOB op 23 juli 2024 04:57]

Een getal cijfer is 1 numeriek teken.
FTFY ;)
Zo bestaat de pincode ook uit een cijfer van vier getallen.
Nee een getal van 4 cijfers.

Een cijfer is een enkelvoudig symbool. Een getal een aanduiding van hoeveelheid. Een getal kan dus uit meerdere cijfers bestaan.

Een cijfer is echt alleen het symbool wat gebruikt wordt om een getal aan te geven.
Exact.

een cijfer staat tot getal als een letter staat tot woord.
Exact.

Sesamstraat had daar vroeger altijd een leuk item over. Dat deuntje zit nog altijd in m’n hoofd
Just niet. Op een schaal van 0 tot 1 betekend alle waarden tussen 0 en 1 (inclusief 0 en 1). Dit kun je zien als het percentage zekerheid dat het systeem geeft (0.8 = 80% zeker).
Er zitten een oneindige hoeveelheid waardes tussen 0 en 1 :P Uiteindelijk maakt het geen bal uit welke schaal je gebruikt.
Hangt er van af wat je vervolgens met de getal doet. Als je het gebruikt om er iets mee te vermenigvuldigen waarbij de uitkomst maximaal het getal is waarmee je vermenigvuldigt is 0...1 wel handig. Anders moet je daarna weer gaan delen.
Ik neem aan dat het hier gaat over decimale getallen. Dus als je bijvoorbeeld 0.9 terugkrijgt is het model erg zeker van zn zaak.
In dit geval zal het dus niet enkel het getal 0 of 1 zijn. Zie het als percentages waarbij 1 = 100%, oftewel een bericht vol met dreigende signaalwoorden, en bijv. 0.5 = 50% is een bericht dat voor de helft vol staat met dreigende woorden. Waarschijnlijk zal er een grens gekozen worden van bijv. 0.4> waarbij dus alle berichten met een waarde boven de 0.4 als 'zeer dreigend' / 'vereist aandacht' gemarkeerd worden.
Ben ik de enige die denkt dat je een best leuk grapje maakte, inclusief smiley's?
laat maar, ik nam je te serieus grgr

[Reactie gewijzigd door DeDooieVent op 23 juli 2024 04:57]

Tussen de 0 en 1 zitten nog steeds oneindig veel waarden. Met een schaal van 0 of 1 is het zwart/wit.
Als ze eerst 10.000 teksten met de hand een cijfer moeten geven voor het model is daar ook aardig wat tijd ingegaan. Het laat echter nog steeds zien dat de mens noodzakelijk is voor deep learning. Aan de hand van de menselijk ingegeven parameters gaat het systeem dan waarde bepalen. Het is en blijft echter een dom systeem dat geen taalbegrip heeft. Ik ga slapen, ik ga hem laten slapen. duidelijk voor de mens en nu als de mens zegt laatste is bedreigen weet het systeem een context. Er is echter zo veel context met zo veel onderwerpen dat het een aardig werk zal zijn.
Daarnaast analyseer maar eens de gebrekkkig nedderlands spreekende crimineel die zoms woord weglat waardoor context weer anders kan zijn.
Of ze gooien er eerst de spellingscontrole van word er overheen, dan krijg je zoiets:"Daarnaast analyseer maar eens de gebrekkig Nederlands sprekende crimineel die soms woord weglaat waardoor context weer anders kan zijn."
doe daar dan ook een sausje amsterdams, twents, limburg of ander deel overheen. Die crimineel typt misschien wel is dat dialect
Ik weet niet of je zondag Line of Duty hebt gezien maar daar had zo'n simpele check er voor kunnen zorgen dat de corrupte politieman sneller was gevonden :-)
Daadwerkelijk snappen van teksten inclusief grappen, taalfouten en sarcasme is een heilige graal in AI. Zal de komende 50 jaar nog niet gebeuren denk ik. Ik weet ook niet of dat ooit echt kan. Siri of Google kunnen je vast automatisch een miljoen pagina's over pizza vertellen, maar het zal nooit weten hoe het smaakt, of hoe het is om naar een lekkere pizza te verlangen, hoe is he om honger te hebben, herinneringen met pizza uit het verleden, zoals een leuke date die je had, etc.

[Reactie gewijzigd door Atmosfeer op 23 juli 2024 04:57]

Aan de ene kant denk ik ook dat dénken als een mens een paar stappen te ver is. Aan de andere kant... een kind leert ook dingen begrijpen. Ik heb van vrienden die wél kinderen hebben wel eens de opmerking gehad “zucht... een kind van 4 snapt nog geen sarcastische grapjes hoor....”.

Maar ergens gaat een kind het wel leren. Door maar zoveel mogelijk informatie op te nemen en kijken hoe de grote mensen het doen, daarmee context te leren begrijpen. Dat zou dan haast AI ook mogelijk moeten worden...

[Reactie gewijzigd door Dennisdn op 23 juli 2024 04:57]

Daarnaast analyseer maar eens de gebrekkkig nedderlands spreekende crimineel die zoms woord weglat waardoor context weer anders kan zijn.
Je zou het natuurlijk strafbaar kunnen maken om slecht Nederlands te schrijven... Dan maakt het weer niet uit... Kan je direct iedereen met taalfouten er uitfilteren en in de gevangenis stoppen, heb je die batch alvast gehad.

(Grapje dus he)
Je kunt wel patronen herkennen. Stel dat jij als 1 van de weinigen batch altijd als betch zou schrijven dan is er een aanknopingspunt om bepaalde berichten te correleren.
Die teksten waren bedoeld om het model de structuur van het Nederlands aan te leren, niet om gelijk een score van criminaliteit aan te leren. Dat laatste gebeurde pas later toen de teksten van criminelen werden toegevoegd.
Het is best mogelijk dat het model veel vals positieven had, maar als daar ook weer feedback over wordt gegeven zal dat afnemen, anders weet men best snel welke personen genegeerd kunnen worden.
Lijkt me wel in strijd met het recente EU-beleidsvoorstel voor het reguleren van kunstmatige intelligentie? nieuws: EU doet beleidsvoorstel voor reguleren van kunstmatige intelligentie
Op welke manier? De EU heeft bijvoorbeeld een categorie met AI-systemen die een 'onaanvaardbaar' risico zouden vormen voor de grondrechten en veiligheid van mensen. Maar dan zal er nog wel moeten blijken hoe het onaanvaardbaar is. Er zal hoe dan ook aantoonbaar moeten zijn in welke categorie het valt voor er conclusies getrokken kunnen worden.
Welke regel zou dan worden overtreden?
Dit is best cool en ik ben benieuwd hoe ze dit in de toekomst nog meer kunnen inzetten.

Natuurlijk wel in de context van een degelijk juridisch onderzoek en niet door middel van een sleepnet, maar als aan alle zorgvuldigheidseisen is voldaan, dan is er niets mis mee dat de politie op deze manier bronnen en bewijs onderzoekt.
De Politie in Nederland is heel hip.
Nou nog hopen dat ze de software van de Belastingdienst ook zo hip kunnen maken (dat het werkt).
Zoals vermeld in het artikel: "Het NFI wilde geen simpel zoekmodel; aan de hand van de context moet te bepalen zijn hoe bedreigend een resultaat is."
Door deep learning toe te passen kan de context mee worden gewogen, zonder dat de onderzoekers zelf hoeven te de definieëren wat de context "crimineel" maakt. Het is zeker mogelijk om dit zonder deep-learning te doen, maar blijkbaar wordt dat hier dus niet gedaan.

OT: Ik ben altijd benieuwd hoe de resultaten van z'n machine learning model zich verhouden tot een goed bedacht algoritme. Jammer genoeg worden die vergelijkingen nooit gegeven. Ik blijf hierdoor altijd een beetje skeptisch of ze hun methoden wel goed testen, en niet zich laten lijden door biassen.
Voor dat laatste zitten er nog genoeg vangnetten in het rechtssysteem. Zelfs een DNA match, maar verder geen bewijzen is geen reden voor een veroordeling.
Dat begrijp ik wel (en ben ik zeker ook blij mee). Maar ik heb het ook over het algemeen gebruik van machine learning. Er is een grote verschuiving aan het plaats vinden van traditionele statistische analyses naar analyse doormiddel van machine learning (wat in principe ook statistische analyse is, behalve dat we niet goed kunnen achterhalen welke grootheden/parameters relevant zijn voor de uitkomst. Deze zitten allemaal impliciet in het model).

Veel bedrijven springen nu al op de hypetrain en vertrouwen haast blindelings op machine learning. Nu worden dit soort dingen wel toegepast door data-"scientists", maar dit zijn niet echt scientists (ze werken naar een resultaat toe, niet naar een falsificatie/corroboratie van een hypothese. Jammer genoeg is de titel data-engineer al door een andere professie geclaimed).

Bij de meeste bedrijven is er geen geld/tijd om de verschillen tussen de nieuwere en de meer traditionele methodes te vergelijken. Het gaat erom dat ze een resultaat leveren aan stakeholders dat concreet is en passend lijkt, en waarmee de stakeholders op (korte termijn) blij mee worden gemaakt. Niet of de analyse echt deugt.

Ik vind dat we met z'n allen iets te snel en te enthousiast dingen overnemen, en maak mij door toch ook wel een beetje zorgen over (het kan zijn dat ik het helemaal fout heb natuurlijk en gewoon te cynisch/pessimistisch ben).

[Reactie gewijzigd door pofsok op 23 juli 2024 04:57]

OT: Ik ben altijd benieuwd hoe de resultaten van z'n machine learning model zich verhouden tot een goed bedacht algoritme. Jammer genoeg worden die vergelijkingen nooit gegeven. Ik blijf hierdoor altijd een beetje skeptisch of ze hun methoden wel goed testen, en niet zich laten lijden door biassen.
Idem. Als ze cijfers gehad hadden waaruit de superioriteit van hun model gebleken was, dan zouden ze daar trots mee snoeven. Dat ze dat niet doen zegt eigenlijk wel genoeg.
@pofsok
Klinkt voor mij als hip doen om hip te doen.
Enige wat ik zie is dat er idd dus een score wordt gegeven aan context, niet dat lager scorende zinnen niet zijn meegenomen of niet worden onderzocht.
Heb je de rest van het artikel wel gelezen?
Er wordt ook naar de context gekeken waarin de woorden staan.

Op dit item kan niet meer gereageerd worden.