Datum | |
---|---|
Tijd | |
Thema | |
Location |
|
Role | |
Description | |
More info |
- Artikel
Een gedistribueerde data-architectuur is vooral een kwestie van (anders) organiseren
- Data
Synthetische data is een fenomeen dat wél de tijdgeest meeheeft – maar niet zijn naam. Om met dat laatste te beginnen; synthetische data wordt ook wel omschreven als ‘data die kunstmatig is gegenereerd en niet gebaseerd is op echte gebeurtenissen’ of zelfs als ‘nepinformatie’.
Dat klinkt niet erg aantrekkelijk, maar dat is het zeker wel. In potentie, althans.
Met name bij het ontwikkelen van applicaties en het trainen machine learning-modellen kan synthetische data grote voordelen bieden. Zo kun je productiedata anonimiseren om ermee te testen. Het is zelfs mogelijk om bestaande datasets uit te breiden met (kunstmatig gegenereerde) nieuwe data, wat ook weer kansen biedt om te testen.
Maar hoe werkt het? Wat zijn voordelen, nadelen en hoe ga je ermee aan de slag? Daarover vertellen we je meer in dit artikel.
De hoeveelheid synthetische data in de wereld neemt exponentieel toe. Als we de voorspellingen van Gartner mogen geloven, dan gebruiken AI-modellen in 2030 meer kunstmatige data dan echte data.
Die toename is best te begrijpen. Bij de ontwikkeling van software of machine learning-modellen is het belangrijk om te kunnen testen en daarvoor is veel data nodig. Productiedata is lang niet altijd geschikt om mee te testen, zeker niet als het gaat om persoonsgegevens die privacygevoelig zijn.
Er zijn verschillende manieren om kunstmatige data te genereren. Het succes ervan valt of staat met de kwaliteit; hoe goed bootsen synthetische data eigenlijk (data uit) de echte wereld na? Als je gaat testen met kunstmatige data die niet lijkt op de echte data, ontstaan er al gauw problemen die kunnen leiden tot slecht presterende apps en systemen.
Een voorbeeld. Stel dat we een review-platform willen oprichten voor hotels, restaurants en bezienswaardigheden. Het succes van zo’n platform wordt bepaald door de kwaliteit van de ervaring die je kunt bieden; als gebruikers goede en relevante suggesties krijgen aangeboden, dan zullen ze de app vaker gebruiken, reviews invullen en het platform aanbevelen aan anderen.
Bij het ontwikkelen van het platform is het dus belangrijk om zo veel mogelijk data te verzamelen, zowel van aangesloten bedrijven, als reviews. Vervolgens moet je deze brondata goed aanbieden om de gebruikerservaring te optimaliseren. Daarvoor kun je onder meer ketentesten en regressietesten uitvoeren. Maar productiegegevens van gebruikers mag je niet zomaar gebruiken om te testen, zeker niet als het om persoonsgegevens.
Op basis van je echte datasets kun je synthetische data genereren die zo dicht mogelijk de werkelijkheid benadert. De namen van gebruikers, hun geboortedata, adres en ga zo maar door worden gefingeerd. Maar dat moet wel op zo’n manier gebeuren dat data ook realistisch zijn (en dus bruikbaar zijn om op te testen).
Dat is nog lastiger dan je zou denken. Stel, ons reviewplatform heeft vijf soorten horecagelegenheden: restaurants, clubs, cafés, hotels en fastfood. Als je een willekeurige verdeling gaat maken, dan zal waarschijnlijk elke categorie gemiddeld ongeveer 20 procent voorkomen. In werkelijkheid kan het best zo zijn dat je productiedata een hele andere verdeling laten zien, dat bijvoorbeeld ruim 50 procent van de aangesloten bedrijven in de categorie ‘restaurant’ vallen en dat slechts 2 procent ‘club’ is.
Nog een voorbeeld. Onder bezoekers van ‘echte’ clubs zijn de leeftijdscategorieën 18-25 en 25-35 jaar zwaarder vertegenwoordigd dan bijvoorbeeld 65-75 jaar. Als je die correlatie niet meegeeft aan het algoritme, dan krijg je een dataset die niet of nauwelijks bruikbaar is.
Deze verbanden liggen misschien voor de hand en zijn relatief eenvoudig te verhelpen. Je kunt ook te maken krijgen met onrealistische data die lastiger te corrigeren is in een algoritme. Stel dat er in onze database een club voorkomt met de naam Havenzicht en een restaurant met de naam Galaxy; mensen voelen aan dat dit onrealistisch is, maar hoe vertel je dit aan een algoritme?
De kwaliteit van de data is dus sterk afhankelijk van de kwaliteit van de algoritmes die je gebruikt om data te genereren. De ervaring leert dat het best wat tijd kan kosten om het goed te doen, zeker als je te maken hebt met complexe datasets. Het is nu eenmaal ingewikkeld om met algoritmes de volledige complexiteit van de echte wereld na te bootsen.
Gelukkig zijn er verschillende tools die je hierbij kunnen helpen. Naarmate het gebruik van synthetische data toeneemt, groeit ook het aantal tools dat je kunt gebruiken om data te genereren.
De meest complete tools zijn over het algemeen helaas best kostbaar. Voorbeelden zijn Tonic, Hazyen en Mostly AI; ze presenteren zich als ‘all-in-one’ oplossingen die je kunnen helpen on data te anonimiseren en kunstmatige data te genereren.
Gelukkig zijn er ook minder kostbare oplossingen; basic tools waar je zelf mee aan de slag kunt. Faker is een Python package dat nepdata voor je genereert (zoals willekeurige persoonsgegevens en bedrijfsnamen), maar je kunt er ook stress-testen mee uitvoeren of data anonimiseren. Ook kun je zelf een combinatie van persoonsgegevens doorgeven.
Er zijn ook tools die niet alleen helpen bij het genereren van data, maar ook bij het controleren of data realistisch is. Een voorbeeld hiervan is Data Synthetizer. Deze tool kun je gebruiken om kunstmatige (geanonimiseerde) data te genereren op basis van bestaande datasets. Eerst worden data geanalyseerd om er zeker van te zijn dat de synthetische data de juiste distributie en correlatie heeft. Nadat de data daadwerkelijk is gegenereerd, vergelijkt de tool deze ook nog met echte data om zo de betrouwbaarheid te toetsen. Synthetic Data Vault is een vergelijkbare tool die ongeveer hetzelfde kan.
Kortom: hoewel synthetische data veel kansen bieden, is het vooralsnog geen heilige graal. En als je er gebruik van maakt, is het nog niet eenvoudig om dit op de juiste manier te doen. Er zijn tools die daarbij kunnen helpen. Ze bieden vaak veel functionaliteit, maar kunnen vrij kostbaar zijn. Zelf tooling ontwikkelen is een mogelijk goedkopere optie, maar als je veel functionaliteit wilt hebben, dan kan dit best wel veel tijd kosten.
De ervaring leert dat samenwerking hierin met een domeinexpert helpt om de kwaliteit naar een hoger niveau te krijgen. Deze experts kunnen wijzen op verbanden die je zelf misschien niet had gezien – zoals een club die Havenzicht heet.