Products in this case study: 

15 miljoen

berichten die dagelijks via de app worden verstuurd

1.55 miljoen

actieve leervoorbeelden geannoteerd per maand

Yubo is een social media-app die tieners en jongvolwassenen nieuwe mensen laat ontmoeten via live streaming en messaging.
Industries: 
Founded: 
2015
Headquarters: 
Parijs, Frankrijk
Size: 
11 - 50

De klant

Het bescheiden Yubo-team baant de weg voor slim gebouwde apps met veel power en ondersteunt momenteel meer dan 50 miljoen geregistreerde gebruikers (en meer). Het team blijft continu bouwen aan een veilige, schaalbare applicatie waar qua infrastructuur is gekozen voor een combinatie van dedicated servers van Leaseweb en op maat gemaakte AI-systemen. Download de volledige Yubo zaak hier.

Belangrijkste eisen

  • Schaalbaarheid: Yubo krijgt snel meer gebruikers, dus hebben ze infrastructuur nodig die mee kan groeien
  • Veilig netwerk: Yubo-gesprekken kunnen privé-inhoud bevatten, dus de infrastructuur moet absoluut werken met private networking en ondersteuning voor end-to-end gegevensversleuteling

Onze oplossing

  • Dedicated high performance servers
  • Private networking voor onderlinge verbindingen van servers in datacenters van Leaseweb voor verhoogde schaalbaarheid en beveiliging
  • High performance CPU's (E5-2650v2) voor analysetaken en standaard CPU's (E3-1240) voor proxyservers
  • SSD-opslag voor optimale snelheid bij het ophalen, verwerken en uitwisselen van gegevens
  • Diensten in de Verenigde Staten, Nederland en Australië

Benichoux en zijn team (bijgenaamd 'Team Profanity') bouwden het AI-moderatieplatform verder op basis van bare metal servers, waarbij ze de gegevens definiëren en filteren totdat deze verwerkbaar en werkbaar zijn.

De uitdaging

Yubo moest de veiligheid van zijn gebruikers garanderen door de inhoud te modereren – voornamelijk tekst, afbeeldingen en livestreams (de zogeheten 'lives'). Arthur Patora, medeoprichter & CTO van Yubo: "Het is onze missie om mensen met elkaar te verbinden en hen in staat te stellen om in real time contact te maken met mensen die ze niet kennen. Hiervoor moeten we de app zo veilig mogelijk maken. Alles wat we doen is om onze gebruikers te empoweren."

Hiervoor creëerde Yubo tal van geïntegreerde functies in de app waarmee gebruikers hun eigen profielen en 'lives' kunnen modereren. Voor de rest koos het team voor kunstmatige intelligentie. Yubo gebruikt AI vooral voor gezichtsherkenning, identiteitsverificatie en tekstanalyse. Naarmate de app groeide, evolueerde ook de taal van de gebruikers en begon deze een eigen leven te leiden.

"In het begin gebruikten we een externe API, maar die kon niet alles bieden wat we nodig hadden", vertelt Patora. "We hadden te veel verzoeken voor algoritmewijziging per iteratie en het overgrote deel van onze content is kort. Daar kunnen tools voor tekstmoderatie niet goed mee omgaan, omdat ze voornamelijk op artikelen zijn getraind."

Tekstmoderatie werd een kostbaar probleem dat veel resources verslond. "We begonnen zelfs in API-interfaces de ongewenste woorden in te typen die we op de app vonden en die onze menselijke moderatoren de hele dag voorbij zagen komen", legt Patora uit. Dat was niet vol te houden en niet schaalbaar. "Toen beseften we dat we ons eigen systeem moesten bouwen."

"Als de moderatie down is, dan ligt alles plat. Het is een nachtmerrie."

Arthur Patora, mede-oprichter & CTO, Yubo

Meer dan alleen tekstmoderatie

Maar hoe uniek is de tekst in Yubo? Alexis Benichoux, Machine Learning Specialist bij Yubo, licht het probleem toe:

  • Het is lastig te herkennen welke taal er wordt gesproken, omdat veel gebruikers verschillende talen tegelijk gebruiken. Een gebruiker kan bijvoorbeeld iets zeggen dat in het Zweeds aanvaardbaar is, maar dat in het Engels wordt gemarkeerd omdat het woord in het Engels een andere betekenis heeft.
  • De meeste berichten zijn heel kort en veel korte uitdrukkingen uit de jeugdtaal kunnen in de ene taal gebruikelijk zijn, maar in een andere taal iets heel anders betekenen.
  • Sommige talen lijken erg op elkaar, zoals Spaans en Portugees.
  • Dan is er ook nog internetjargon en zelfs "Yubo-taal", die specifiek is voor de app.
  • In veel berichten worden emoji's gebruikt – een bericht bestaan uit drie losse letters en een emoji.
  • Opzettelijke spelfouten van scheldwoorden of verboden inhoud komen vaak voor; ook hiermee moet rekening worden gehouden.

"Tekstmoderatie bij Yubo is niet echt taalverwerking, het is iets heel specifieks."

Alexis Benichoux, Machine Learning Specialist bij Yubo

De oplossing

Yubo besloot een eigen moderatieplatform te creëren en zocht daarvoor een oplossing met dedicated servers bij Leaseweb. Het bedrijf had in het verleden geëxperimenteerd met andere cloudoplossingen van derden, maar stapte uiteindelijk over op dedicated servers vanwege de lagere kosten en het hoge schaalbaarheidspotentieel. "We waren oorspronkelijk gebouwd op Google Cloud," vertelt Patora, "maar dat werd al snel veel te duur." Met de overstap van Google naar Leaseweb bespaarde Yubo meer dan 80% op de infrastructuurkosten. Dit geld kon het bedrijf vervolgens weer investeren in hun werknemers, het nieuwe moderatieplatform en de app.

Systeemarchitectuur

De modellen zijn gebaseerd op twee soorten inhoud: internetinhoud (voornamelijk bestaand uit hoge volumes met veel slang) en internettrollen. Hiervoor kunnen snelle API's in productie worden ingezet om de inhoud te modereren. Het tweede type inhoud zijn toxische gebruikers en bedriegers die zich voordoen als iemand anders. Om dit goed te kunnen filteren is meer machine learning en kennis nodig. Hoewel het volume van dit soort inhoud lager is, is het potentieel veel schadelijker voor de app en de gebruikers. Inhoud met een laag volume wordt asynchroon behandeld met diepgaandere algoritmen, terwijl er voor inhoud met een hoog volume snel reagerende API's nodig zijn.

Zodra het inhoudstype is geïdentificeerd, komt het in een gegevensstroom die uit verschillende modellen bestaat. Er zijn verschillende beperkingen voor iedere taal, iedere categorie en iedere functie. Er zijn ongeveer 120 modellen in productie, hoofdzakelijk gebaseerd op CBOW+fasttext en NBSVM. Een chat-bericht wordt bijvoorbeeld door ten minste drie modellen gefilterd. Een typische pijplijn ziet er als volgt uit: 

1. Woordstambepaling, lemmatisering, ontsluiering

                    ∂σ уαℓℓ ωαηηα вє ƒяιєη∂ѕ -> (doen, jij, willen, zijn, vriend)

2. Taalherkenning
3. Herkenning van persoonlijke informatie
4. Filtering van scheldwoorden/ongewenst taalgebruik

Gegevensstroom

  • Training van het model.

     Gegevens van Yubo worden gebruikt om modellen continu opnieuw te trainen. Dit gebeurt offline en checkpoints worden naar data buckets gestuurd om door frontend-API's te worden geserveerd.

    • Gegevens: het team begint met een schone dataset, die geheel buiten de productie kan liggen. Er worden geen gegevens van buitenaf gebruikt, alles komt van Yubo. 
    • Annotatie: er is een app voor annotatie door gebruikers en voor annotatiecampagnes. 
    • Modellering: er bestaan verschillende modellen voor verschillende functies (zoals chatten, bewerken van de biografie, uploaden van afbeeldingen, enz.). 
  • Productie: het model wordt gecategoriseerd en in geschikte productieomgevingen worden ingezet. 
    • Inhoud met hoog volume: snelle reacties nodig (messaging, enz.) – inzet van API's, berekeningen worden uitgevoerd op GPU's. 

   

    • Inhoud met laag volume: er is meer verwerkingstijd nodig (onderzoek naar een giftige gebruiker, meer context nodig, etc.) – inzet van Redis-wachtrijen, feedback uit leerproces wordt ingeleerd en uitgerold. Werken met intelligent model met supervised learning. 

  

Supervised to active learning

"Aan de voorkant bestaat de architectuur uit getrainde modellen," legt Benichoux uit, "en dan is er een groot backend-gedeelte. Het team is vooral bezig met het trainen en implementeren van modellen, dus het is supervised learning, maar binnen het grote geheel proberen we om daar ook actief leren bij in te bouwen. Dus we gebruiken menselijke moderatie – alles wat we kunnen krijgen, ook al is het erg traag om dat aan te passen – maar zo beoordelen we inhoud, en we krijgen menselijke rapporten. Soms kan een beoordeling zelfs weken duren. Zo bereiken we langzaam maar zeker verbeteringen in de toepassing van ons algoritme voor supervised learning."

Het resultaat

Yubo's is pas twee jaar geleden begonnen aan zijn architectuur voor tekstmoderatie en het is nu al een van de meest intelligente systemen die er zijn. Naast andere initiatieven is Yubo een partnerschap aangegaan met National Center for Missing & Exploited Children (NCMEC), een Amerikaanse NGO die zich bezighoudt met de opsporing van vermiste kinderen. Met deze organisatie worden gegevens gedeeld wanneer er een vermoeden is van illegale activiteiten waarbij minderjarigen betrokken zijn.

Naast de technische middelen die de veiligheid van de gebruikers garanderen, wordt Yubo ook ondersteund door een Veiligheidsraad van vooraanstaande internationale deskundigen. Deze raad (met deskundigen bijvoorbeeld van Thorn en Interpol) komt meerdere keren per jaar bijeen om alle productkenmerken door te nemen en de aanwezige veiligheidsvoorzieningen te evalueren.

Elke dag worden de algoritmen intelligenter en groeit het aantal gebruikers (en de infrastructuur) van Yubo. Het team houdt de zaken stabiel en ongecompliceerd terwijl het elke dag duizenden nieuwe gebruikers veilig met elkaar verbindt – en bewijst dat schaalbaarheid niet ten koste moet gaan van veiligheid.

De toekomst

Yubo kan exponentieel schalen. De volgende stap is nu om snel talent te werven om het groeiende bedrijf te ondersteunen. En met een horizontaal schaalbare architectuur met innovatieve AI-systemen, aangedreven door dedicated servers van Leaseweb, zal Yubo veel meer talent nodig hebben.


De volgende stap? Wereldheerschappij!