1 november 2023
‘Garbage in, garbage out’ is een gevleugelde uitdrukking geworden voor het concept dat gebrekkige invoergegevens leiden tot gebrekkige uitvoergegevens. Voorbeelden uit de praktijk zijn er in overvloed. Als een dataset temperatuurmetingen bevat in zowel graden Celsius als graden Fahrenheit zonder de juiste conversie, zal elke analyse op basis van die gegevens gebrekkig zijn. Als de invoergegevens van een aanbevelingssysteem voor cadeautjes fouten bevatten in de leeftijd van klanten, kan het per ongeluk kinderspeelgoed aanbevelen aan volwassenen.
In een tijd waarin steeds meer bedrijven, organisaties en overheden beslissingen baseren op data-analyse, is het van groot belang om te zorgen voor goede en schone datasets. Dat is waar Sebastian Schelter en zijn collega’s aan werken. Schelter is assistant professor aan het Informatica Instituut van de Universiteit van Amsterdam en werkt in het INtelligent Data Engineering Lab (INDElab). Academisch onderzoek dat hij in 2018 publiceerde, toen hij nog bij Amazon werkte, is nu de motor achter een aantal van Amazons datakwaliteitsdiensten. Bij de UvA breidt hij dat werk uit.
Wat zijn de grootste problemen met datasets?
‘Ontbrekende data is een groot probleem. Denk aan een Excel-sheet waar je in elke cel waarden moet invullen, maar sommige cellen zijn leeg. Misschien zijn er gegevens verloren gegaan, misschien zijn er gewoon geen gegevens verzameld. Dat is een veel voorkomend probleem. Het tweede grote probleem is dat sommige gegevens niet kloppen. Stel dat je gegevens hebt over de leeftijd van mensen en er blijkt iemand te zijn die duizend jaar oud is.
Een derde groot probleem met datasets zijn data-integratiefouten, die ontstaan door het combineren van verschillende datasets. Heel vaak leidt dit tot dubbelingen. Denk aan twee bedrijven die fuseren. Ze hebben allebei hun eigen adresbestanden en het kan zijn dat hetzelfde adres op een iets andere manier wordt gespeld: de ene database gebruikt ‘street’ en de andere ‘st.’. Of de spelling kan verschillen.
Het vierde grote probleem ten slotte heet ‘verwijzingsintegriteit’. Als je datasets hebt die naar elkaar verwijzen, moet je ervoor zorgen dat de verwijzing correct gebeurt. Als een bedrijf een dataset met factuurgegevens heeft en een bank heeft een dataset met bankrekeningnummers van hun klanten, dan wil je dat een bankrekeningnummer in de factuurdataset verwijst naar een bestaande bankrekening bij die bank, anders zou het verwijzen naar iets dat niet bestaat. Problemen met verwijzingen tussen twee datasets komen vaak voor.’
Datawetenschappers besteden veel van hun tijd aan het opschonen van gebrekkige datasets. De cijfers variëren, maar uit onderzoek blijkt dat dit tot tachtig procent van hun tijd is. Dat is een grote verspilling van tijd en talent.Sebastian Schelter
Hoe pakt jullie onderzoek deze problemen aan?
‘Datawetenschappers besteden veel van hun tijd aan het opschonen van gebrekkige datasets. De cijfers variëren, maar uit onderzoek blijkt dat dit tot tachtig procent van hun tijd is. Dat is een grote verspilling van tijd en talent. Om dit tegen te gaan, hebben we open source software ontwikkeld, genaamd Deequ. In plaats van dat datawetenschappers een programma moeten schrijven dat de datakwaliteit valideert, kunnen ze gewoon opschrijven hoe hun data eruit moeten zien. Ze kunnen bijvoorbeeld dingen voorschrijven als: ‘er mag geen data ontbreken in de kolom met burgerservicenummers’ of ‘de waarden in de leeftijdskolom mogen niet negatief zijn’. Vervolgens loopt Deequ op een efficiënte manier door de gegevens heen en vertelt of de test geslaagd is of niet. Vaak laat Deequ ook zien welke gegevens de test niet hebben doorstaan.’
Hoe wordt Deequ in de praktijk gebruikt?
‘Het oorspronkelijke wetenschappelijke artikel is geschreven toen ik bij Amazon werkte. Sindsdien is de opensource-implementatie van dit werk behoorlijk populair geworden voor diverse toepassingen in allerlei domeinen. Er is een Python-versie die meer dan vier miljoen downloads per maand heeft. Nadat ik bij Amazon wegging, bouwde het bedrijf twee clouddiensten op basis van Deequ, waarvan er één AWS Glue Data Quality heet. De cloud van Amazon is de meest gebruikte cloud ter wereld, dus veel bedrijven die er gebruik van maken, hebben toegang tot onze manier van gegevens opschonen.’
Welke onderzoek doen jullie momenteel om datasets op te schonen?
‘Op dit moment ontwikkelen we een manier om de datakwaliteit van streaming data te meten. Dat doen we in ons ICAI-lab ‘AI for Retail’, in samenwerking met bol.com. Deequ is ontwikkeld voor data in rust, maar veel praktijktoepassingen hebben een continue datastroom. De gegevens zijn dan al snel te groot om op te slaan, er kunnen privacyredenen zijn om ze niet op te slaan, of het kan gewoon te duur zijn om de gegevens op te slaan. Daarom hebben we StreamDQ gebouwd, dat kwaliteitscontroles kan uitvoeren op streaming data. Een grote uitdaging is dat je niet veel tijd kunt besteden aan het verwerken van de gegevens, anders wordt alles te veel vertraagd. Je kunt dus alleen bepaalde tests doen en soms moet je benaderingen gebruiken. We hebben een werkend prototype en dat zijn we nu aan het evalueren.’
Open source data validation library Deequ
De streaming versie StreamDQ ontwikkeld bij bol.com
De twee diensten in de Amazon cloud die bovenop Deequ zijn gebouwd:
AWS Glue Data Quality
AWS SageMaker Model Monitor