Meet Yambda: One of the world’s largest open datasets for RecSys. Recommender-algoritmen helpen mensen de juiste producten, films, muziek en meer te ontdekken. ze zijn de ruggengraat van diensten, van online winkels tot streamingplatforms. De meeste open-source datasets zijn echter klein of verouderd, omdat bedrijven die terabytes aan gegevens accumuleren ze zelden openbaar beschikbaar maken vanwege privacyproblemen. Deze dataset bevat 4,79 miljard geanonimiseerde gebruikersinteracties, verzameld uit 10 maanden gebruikersactiviteit. We chose the Music service because it’s the largest subscription-based streaming service in Russia, with an average monthly audience of 28 million users. Een aanzienlijk deel van de dataset omvat geaggregeerde luisters, likes en dislikes, evenals track attributen die afkomstig zijn van het gepersonaliseerde aanbevelingssysteem. Alle gebruikers- en trackgegevens worden geanonimiseerd: de dataset bevat alleen numerieke identificatoren, waardoor de privacy van de gebruiker wordt gewaarborgd. Mijn Vibe Releasing large open datasets like Yambda helps solve several problems. Access to high-quality, large-scale data opens new avenues for scientific research and engages young researchers keen to apply machine learning to real-world challenges. Ik ben Alexander Ploshkin en ik leid de ontwikkeling van personalisatiekwaliteit bij Yandex. In dit artikel zal ik uitleggen wat de dataset is, hoe we het hebben verzameld en hoe u deze kunt gebruiken om nieuwe aanbevelingsalgoritmen te evalueren. Laten we beginnen! Waarom zijn grootschalige open datasets belangrijk? Recommender systems are experiencing a true renaissance in recent years. Tech companies are increasingly adopting transformer-based models, inspired by the success of large language models (LLMs) in other domains. Wat we hebben geleerd van computervisie en natuurlijke taalverwerking is dat gegevensvolume cruciaal is voor hoe goed deze methoden werken: transformatoren zijn niet erg effectief op kleine datasets, maar worden bijna essentieel zodra ze scalen tot miljarden tokens. Truly large-scale open datasets are a rarity in the recommender systems domain. Bekende datasets zoals LFM-1B, LFM-2B en de Music Listening Histories Dataset (27B) zijn na verloop van tijd niet beschikbaar geworden vanwege licentiebeperkingen. Momenteel wordt het record voor het aantal gebruikersinteracties gehouden door de advertentiedataset van Criteo, met ongeveer 4 miljard gebeurtenissen.Dit creëert een uitdaging voor onderzoekers: de meeste hebben geen toegang tot web-scale-diensten, wat betekent dat ze algoritmen niet kunnen testen onder omstandigheden die lijken op real-world-implementaties. Populaire datasets zoals MovieLens, Steam of de Netflix Prize bevatten op zijn best tientallen miljoenen interacties en richten zich meestal op expliciete feedback, zoals ratings en beoordelingen. Ondertussen werken productie-aanbevelingssystemen met veel meer gevarieerde en nuancerde signalen: klikken, likes, volledige luisteren, weergaven, aankopen, enzovoort. There’s another critical issue: the lack of temporal dynamics. Many datasets don’t allow for an honest chronological split between training and test sets, which is crucial for evaluating algorithms that aim to predict the future, not just explain the past. Om deze uitdagingen aan te pakken en de ontwikkeling van nieuwe algoritmen in aanbevelingssystemen te ondersteunen, lanceren we Yambda. Deze dataset is momenteel de grootste open bron voor gebruikersinteracties in het aanbevelingsdomein. What’s inside Yambda? De dataset bevat interacties van 1 miljoen gebruikers met meer dan 9 miljoen muzieksporen van de muziekdienst, met in totaal 4,79 miljard evenementen. Ten eerste, om duidelijk te zijn: alle evenementen worden geanonimiseerd. The dataset uses only numeric identifiers for users, tracks, albums, and artists. This is to ensure privacy and protect user data. De dataset bevat belangrijke impliciete en expliciete gebruikersacties: Luisteren: De gebruiker luisterde naar een muziektrack. Zoals: De gebruiker hield van een track (“thumbs up”). The user removed a like. Unlike: The user disliked a track (“thumbs down”). Dislike: Undislike: De gebruiker heeft een dislike verwijderd. Om de dataset toegankelijker te maken, hebben we ook kleinere monsters vrijgegeven met respectievelijk 480 miljoen en 48 miljoen gebeurtenissen. Samenvattende statistieken voor deze subsets zijn te vinden in de onderstaande tabel: The data is stored in Apache Parquet format, which is natively supported by Python data analysis libraries such as Pandas and Polars. For ease of use, the dataset is fully replicated in two formats: Flat: Elke rij vertegenwoordigt een enkele interactie tussen een gebruiker en een track. Sequentieel: Elke rij bevat de volledige interactiegeschiedenis van een enkele gebruiker. The dataset structure is as follows: A key feature of Yambda is the Deze vlag helpt onderscheid te maken tussen gebruikersacties die op natuurlijke wijze hebben plaatsgevonden en acties die zijn veroorzaakt door aanbevelingen. is_organic Als Dit betekent dat de gebeurtenis werd veroorzaakt door een aanbeveling. is_organic = 0 Bijvoorbeeld in een gepersonaliseerde muziekstroom of een aanbevolen afspeellijst.Alle andere gebeurtenissen worden als organisch beschouwd, wat betekent dat de gebruiker de inhoud zelf heeft ontdekt. The table below provides statistics on recommendation-driven events: Gebruikersinteractiegeschiedenis is de sleutel tot het maken van gepersonaliseerde aanbevelingen.Het vangt zowel langetermijnvoorkeuren als tijdelijke interesses die kunnen veranderen met de context. Om u te helpen de gegevensstructuur beter te begrijpen, volgen hier enkele snelle statistieken over onze dataset: De bovenstaande grafieken tonen aan dat de lengte van de gebruikersgeschiedenis een zware distributie volgt. Dit betekent dat terwijl de meeste gebruikers relatief weinig interacties hebben, een kleine maar belangrijke groep zeer lange interactiegeschiedenis heeft. This is especially important to account for when building recommendation models, to avoid overfitting to highly active users and to maintain quality for the “heavy tail” of the less engaged users. In contrast, the distribution across tracks tells a very different story. Deze grafiek toont duidelijk de onbalans tussen de zeer populaire nummers en een groot volume niche-inhoud: meer dan 90% van de nummers kreeg minder dan 100 nummers gedurende de gehele gegevensverzamelingsperiode. Desalniettemin moeten aanbevelingssystemen met de gehele catalogus omgaan om zelfs low-popularity tracks die goed afstemmen op de individuele gebruikersvoorkeuren te openen. Gebruik Yambda om algoritmische prestaties te evalueren Academische studies over de kwaliteit van de aanbevelingsalgoritme gebruiken vaak het Leave-one-Out-schema (LOO), waarbij een enkele gebruikersactie wordt vastgehouden voor testen en de rest wordt gebruikt voor training. Deze methode komt echter met twee ernstige nadelen: Tijdelijke inconsistentie: Testgebeurtenissen kunnen acties omvatten die vóór de acties in de trainingsset plaatsvonden. : Inactive users affect the evaluation metrics just as much as active ones, which can skew the results. Equal weighting of users Om de evaluatieomstandigheden dichter bij de real-world aanbevelingssysteem scenario's te brengen, stellen we een alternatief voor: . global temporal split Deze eenvoudige methode selecteert een punt in de tijd (T), waarbij alle daaropvolgende gebeurtenissen uit de trainingsset worden uitgesloten. Dit zorgt ervoor dat het model wordt getest op historische gegevens en wordt getest op toekomstige gegevens, die een echte productieomgeving nabootsen. Voor onze evaluatie hebben we één dag van de gegevens gereserveerd als de holdout set om twee belangrijke redenen: Zelfs een enkele dagwaarde van gegevens levert voldoende volume om de prestaties van het algoritme betrouwbaar te beoordelen. Modellen in de real-world productie hebben verschillende kenmerken: sommige vereisen frequente stat-updates (bijvoorbeeld op populariteit gebaseerde aanbevelingen), andere worden periodiek fijngesteld of opnieuw getraind (boosting, matrix factorisatie, tweetorenmodellen), en sommige zijn afhankelijk van voortdurend bijgewerkte gebruikersinteractiegeschiedenis (recurrent en transformator-gebaseerde modellen). Vanuit ons perspectief is een eendaags venster de optimale evaluatieperiode om modellen statisch te houden en tegelijkertijd kortetermijntrends vast te leggen. Het nadeel van deze aanpak is dat het niet rekening houdt met langetermijnpatronen, zoals wekelijkse verschuivingen in muziek luisteren gedrag. Baselijn We hebben verschillende populaire aanbevelingsalgoritmen op Yambda geëvalueerd om basislijnen te stellen voor toekomstig onderzoek en vergelijking. De algoritmen die we hebben getest zijn: MostPop, DecayPop, ItemKNN, iALS, BPR, SANSA en SASRec. For evaluation, we used the following metrics: NDCG@k (Normalized Discounted Cumulative Gain), die de kwaliteit van de rangschikking in aanbevelingen meet. Recall@k, die het vermogen van het algoritme beoordeelt om relevante aanbevelingen uit de totale pool te halen. Coverage@k, wat aangeeft hoe breed de aanbevelingscatalogus wordt vertegenwoordigd. Results are provided in tables, and the code is available on . Hugging Face Hugging Face Conclusion Yambda kan waardevol zijn voor onderzoek naar aanbevelingsalgoritmen op grootschalige gegevens, waar zowel prestaties als het vermogen om gedragsdynamiek te modelleren cruciaal zijn. De dataset is beschikbaar in drie versies: een volledige set met 5 miljard gebeurtenissen, en kleinere subsets met 500 miljoen en 50 miljoen gebeurtenissen. Ontwikkelaars en onderzoekers kunnen de versie kiezen die het beste past bij hun project en computationele middelen.Zowel de dataset als de evaluatiecode zijn beschikbaar op . Hugging Face Omhelzen van het gezicht Omhelzen van het gezicht We hopen dat deze dataset nuttig blijkt in uw experimenten en onderzoek! Bedankt voor het lezen!