• No results found

Bron van informatie

Echo Nest biedt de mogelijkheid audio-bestanden(11) alsmede video’s(12) te zoeken van een artiest. Dit gaat dus niet op niveau van tracks. Het voordeel hieraan is dat het volledig open staat om deze muziek te gebruiken. Deze bestanden zijn namelijk gevonden op publieke plaatsen. Om deze redenen zal Echo Nest een betere partij zijn voor het kunnen afspelen van audio-bestanden.

Invloed van wereld

Het enige platform dat iets kan vertellen over wat de wereld vindt van een bepaalde artiest is Echo Nest.

Zoals eerder gezegd verzamelt dat platform zijn data door het gehele Web te crawlen, op zoek naar muziek-gerelateerde informatie. Doordat het al deze informatie kan interpreteren trekt het conclusies over bijvoorbeeld de bekendheid en de populariteit van een artiest. Wanneer er namelijk veel over een artiest wordt gepraat op het Web, zal deze ook bekender zijn. Echo Nest biedt deze functionaliteiten aan onder de namen “Familiarity” en “Hotttnesss”, wat respectievelijk bekendheid en populariteit betekent.

de keuze is gemaakt

Van de drie platforms blijkt 7digital niet bruikbaar. De data waarin wordt voorzien is te beperkt en om gegevens van artiesten te achterhalen dient eerst zijn identiteitsnummer bekend te zijn. Dit zou een omslachtige werkwijze zijn, waarbij er het dubbele aantal calls moeten worden gedaan.

Last.FM is een belangrijke partij en voorziet in het startpunt van het systeem. Het weet namelijk de muzieksmaak van de gebruiker. Dit is het startpunt het systeem en dus cruciaal

Echo Nest is de partij die vooral voor de aanvullende gegevens zorgt. Het weet de bekendheid en populariteit van de artiesten. Daarnaast heeft het toegang tot muziekbestanden van deze artiesten. Samen met Last.

FM zullen zij dus zorgen voor de benodigde informatie. In fig. 3.3 staat schematisch weergegeven waar elk platform voor gebruikt zal worden.

Fig. 3.3 - Schematische weergave muziekplatforms

11 http://developer.echonest.com/docs/v4/artist.html#audio

12 http://developer.echonest.com/docs/v4/artist.html#video Bron van informatie | 14

15 | HET ALGORITME

Het algoritme

“Nu zowel het gebruikersprofiel als het artiestenprofiel bekend zijn, is de data geschikt om met elkaar vergeleken te worden.”

In hoofdstuk 2 zijn de doelen van het systeem bepaalt. Daarbij kwam sterk naar voren dat een persoonlijke aanpak gewenst is. In hoofdstuk 3 werd duidelijk welk muziekplatform er gebruikt gaat worden per doel om aan de benodigde data te komen. In dit hoofdstuk worden beiden hoofdstukken gecombineerd en zal er toegelicht worden hoe de uiteindelijke aanbeveling op de line-up van een festival bepaald wordt.

Hiervoor wordt uitgelegd hoe elk muziekplatform specifiek gebruikt gaat worden. Maar ook zullen de wiskundige berekeningen, welke tot een aanbeveling komen, worden toegelicht. Ter ondersteuning zal in dit hoofdstuk gebruik worden gemaakt van een voorbeeldsituatie. Deze is te vinden in bijlage 4, 5 en 6.

gebruikersprofiel

Een aanbeveling wordt altijd gegeven op basis van bestaande gegevens. Wanneer er namelijk geen eerdere gegevens over interesses bekend zijn, kan het systeem onmogelijk weten waar de gebruiker van houdt. Een dergelijke aanbeveling zou dan dus puur op willekeurige basis zijn. In het geval van dit uiteindelijke aanbeve-lingssysteem is de muzieksmaak van de gebruiker het startpunt. Dit is alles wat er van de gebruiker bekend is en het representeert exact de muziek waar de gebruiker van houdt. Zoals in hoofdstuk 3 omschreven staat, wordt de muzieksmaak van Last.FM herleidt. Dit is echter slechts een lijst met namen van artiesten.

Deze informatie is niet direct bruikbaar om een aanbeveling te doen, maar zal wel als startpunt dienen.

Van de gebruiker zal er namelijk een profiel van tags worden gecreëerd.

Tags als basis

In aanbevelingssystemen spelen tags al lange tijd een belangrijke rol. Een tag omschrijft namelijk een aspect van een “ding”. Dit is in feite op alles toepasbaar, zoals muziek, films en producten. Alle tags bij elkaar beschrijven het volledige “ding”. In het geval van muziek bestaan de tags van een artiest voornamelijk uit speelstijlen, zoals blues, rock en pop. Deze kenmerken dus de artiest. Doordat deze informatie bekend is, kan een systeem daarvan gebruik maken om deze tags met elkaar te vergelijken en op deze manier een overeenkomst te achterhalen. In dit geval draait het om een vergelijking tussen de gebruiker en een artiest. Van de artiesten zijn de tags bekend, maar van de gebruiker niet. Deze zijn dus niet met elkaar te vergelijken. Om ervoor te zorgen dat dit toch mogelijk is zal een tag-profiel van de gebruiker worden gemaakt. Dit wordt bereikt door van elke artiest uit de muzieksmaak de tags te indexeren. Hieruit komt een zelfde soort profiel als van de artiest al bekend is.

Het Algoritme | 16

Hierdoor zijn zij toch met elkaar te vergelijken en kan de overeenkomst berekend worden. Echter, simpelweg twee tags met elkaar vergelijken zegt nog vrij weinig. Het feit dat bij beiden bijvoorbeeld de tag “Rock”

voorkomt, zegt alleen dat beiden met rock in aanraking zijn gekomen, maar niet hoe belangrijk dit is. Daarom zullen de tags van Echo Nest worden gebruikt. Dit platform haalt zijn tags namelijk van het volledige Web, wat het onafhankelijk maakt. Daarnaast berekent het van elke tag hoe belangrijk deze is voor de artiest.

Categorie Frequentie Distributie

Om het gebruikersprofiel te creëren, zal gebruik worden gemaakt van de techniek “Categorie Frequentie Distributie”(13). Hiermee kan worden berekend hoe zwaar een tag meeweegt in het geheel, ook wel relatieve frequentie genoemd. Deze frequentie geeft namelijk aan hoeveel de gebruiker van bijvoorbeeld rock houdt.

Door dit van alle tags te berekenen wordt er een profiel geschetst. Dit profiel kan later vergeleken worden met een artiest, om zodoende de overeenkomst tussen beiden te bepalen.

Om de relatieve frequentie van een tag te achterhalen dient allereerst de totale frequentie te worden berekend. Dit is noodzakelijk om te bepalen hoe belangrijk een tag is in het grote geheel. Om dit verder toe te lichten zal gebruik worden gemaakt van het voorbeeld uit bijlage 4 en 5. Hierin is van een willekeurige Last.FM-gebruiker de top tien artiesten genomen. Van elk van deze artiesten zijn de tien hoogste tags genomen. Ter illustratie is in fig. 4.1 een gedeelte van zowel bijlage 4 als 5 te zien.

Top 10 tags Mayer John Bareilles Sara Jason Mraz patrol Snow Clark Alain Frequentie Rel. Freq.

Pop rock 1,000 1,000 1,000 0,864 0,794 4,657 0,055

Soft Rock 0,995 0,931 0,979 0,886 4,611 0,055

Easy Listening 0,969 0,870 0,988 0,746 3,574 0,043

Frequentie per tag

Het is dus zaak om de relatieve frequentie van elke tag te berekenen. Dan is immers duidelijk hoe belangrijk een bepaalde tag is. De tabel “Top 10 tags” (zie fig. 4.1) geven de tags weer van elke artiest. Om tot een relatieve frequentie te komen, zal eerst de totale frequentie moeten worden berekend. Om deze te kunnen berekenen dienen de frequenties per tag bij elkaar opgeteld te worden. Om achter deze frequentie te komen dienen de tags te worden geclusterd en bij elkaar te worden opgeteld. In het geval van “pop rock”

ziet deze berekening er als volgt uit:

De tag “pop rock” komt dus in totaal op een frequentie van 4,657. Dit zegt nu nog niets. Het gewicht is namelijk afhankelijk van de frequentie van alle andere tags. Wanneer de gebruiker namelijk veel muziek luistert kan een frequentie van 4,657 laag zijn, maar als hij weinig muziek luistert zou dit een hoge frequentie kunnen zijn. Oftewel, deze waarde is slechts relatief.

13 http://www.1000stores.net/Frequency%20Distribution.cfm Fig. 4.1 - Snippet top 10 tags van bijlage 4 en 5

Frequentie = 1 + 1 + 1 + 0,864 + 0,794 = 4,657

17 | Het Algoritme

Totale frequentie

De frequentie van “pop rock” is dus 4,657. Dezelfde berekening zal ook voor alle andere tags moeten worden uitgevoerd. Doordat dan van elke tag de frequentie bepaald is, kan de totale frequentie worden berekend. Deze wordt berekend door simpelweg alle frequenties bij elkaar op te tellen. In dit voorbeeld komt dat uit op het getal 84,013.

Relatieve frequentie per tag

Nu de totale frequentie is bepaald, kan de relatieve frequentie worden berekend. Dit betekent dat er dus bepaald gaat worden hoe zwaar een tag in het geheel meeweegt. Aangezien de totale frequentie altijd 100% is, kan de relatieve frequentie berekend worden door de frequentie relatief te stellen aan de totale frequentie. In het geval van de tag “pop rock” zou dit de volgende berekening opleveren:

Het wordt hierdoor dus duidelijk dat de tag “pop rock” een relatieve frequentie heeft van 0,055. Dezelfde berekening wordt uitgevoerd voor alle andere tags. De som van alle de relatieve frequenties komt altijd op 1 uit. Het is namelijk een getal op een schaal van 0 tot 1, waarbij 1 het totale weergeeft.

Het gebruikersprofiel is nu gecreëerd. Het is immers duidelijk hoeveel de gebruiker van bijvoorbeeld rock houdt. De volgende stap die gezet moet worden heeft betrekking tot de artiest. Het betreft het creëren van het artiestenprofiel.

Artiestenprofiel

De muziek van een artiest is nooit te plaatsen in één tag. Muziek is namelijk zo veelzijdig dat er altijd nog andere invloeden en eigenschappen te ontdekken zijn. Dit betekent dat er bij alle artiesten sprake is van een verzameling aan tags. Het uiteindelijke doel is dat een artiest vergeleken kan worden met het gebruiker-sprofiel. Uit deze vergelijking dient duidelijk te worden wat de overeenkomst tussen beiden is. Om deze vergelijking echter te kunnen maken, dienen de type data hetzelfde te zijn. Appels zijn immers niet met peren te vergelijken en daarom is het noodzakelijk om ook van elke artiest een tag-profiel te creëren. Om dit te verduidelijken zal dit proces worden geïllustreerd aan de hand van een voorbeeld-artiest; John Mayer.

Zoals eerder al vermeld is worden de tags van Echo Nest herleidt. Die informatie is namelijk gebaseerd op wat er over het gehele Web wordt gezegd over artiesten(14). In tegenstelling tot Last.FM waar alle informatie afkomstig is van een relatief kleine groep muziekliefhebbers. Echo Nest geeft voor John Mayer 28 tags terug. Ook weer in fig. 4.1 zijn de drie hoogste verwerkt.

14 http://the.echonest.com/company/ Het Algoritme | 18

Doordat elke tag nu slechts één keer voorkomt, in tegenstelling tot het gebruikersprofiel, is het niet nodig de frequentie per tag te berekenen. De totale frequentie kan dus direct berekend worden. Net als bij het gebruikersprofiel moet hiervoor de frequentie van elke tag bij elkaar worden opgeteld. In het geval van John Mayer komt dit uit op 9,294.

Tot slot zal de relatieve frequentie worden uitgerekend. Dit is immers hetgeen dat vergeleken gaat worden met de gebruiker. Ook nu betekent dit dat de frequentie relatief gesteld moet worden aan de totale frequentie. In het geval van “pop rock” is dit:

Op deze manier wordt de relatieve frequentie van elke tag berekend en ontstaat er een tag-profiel. Nu is dus duidelijk hoe zwaar elke tag meeweegt in de stijl van John Mayer.

Overeenkomst gebruiker en artiest

Nu zowel het gebruikersprofiel als het artiestenprofiel bekend zijn, is de data geschikt om met elkaar vergeleken te worden. Het doel ervan is erachter te komen wat de overeenkomst is tussen de gebruiker en een artiest. Hiervoor zullen van beiden de tags met elkaar worden vergeleken. Deze vergelijking wordt uitgevoerd aan de hand van de techniek “City Distance Block”(15). Deze techniek berekent het verschil tussen twee punten. Des te kleiner de uitkomst, des te dichter de twee punten bij elkaar liggen. Oftewel, hoe kleiner het verschil is tussen de tags van de gebruiker en de artiest, hoe groter de overeenkomst is tussen beiden. De uitkomst van de aanbeveling zal dus een getal zijn, welke de overeenkomst aangeeft tussen gebruiker en artiest. Ter verduidelijking van deze theorie zal weer de artiest John Mayer als voorbeeld gebruikt worden. Ook worden weer de gegevens van fig. 4.1 gebruikt en die van bijlage 6.

Allereerst moeten dus de tags van de artiest worden vergeleken met die van de gebruiker. Daarvoor wordt de relatieve frequentie gebruikt die eerder in dit hoofdstuk al berekend zijn. Per tag zal het verschil tussen beiden worden berekend. Zoals te zien is, bevat John Mayer onder andere de tag “pop rock”. De relatieve frequentie is 0,108. Bij de gebruiker heeft de tag “pop rock” een relatieve frequentie van 0,055. De City Distance Block-waarde is dus:

15 http://people.revoledu.com/kardi/tutorial/Similarity/CityBlockDistance.html

Relatieve frequentie = 1 / 9,294 = 0,108

= (0,108 - 0,055) = 0,052

19 | Het Algoritme

Het verschil tussen de gebruiker en de artiest wat betreft de tag “pop rock” is dus 0,052. Deze berekening dient voor alle tags van de artiest te worden gemaakt. Hieruit volgt een lijst met verschillen tussen de tags. Nu alle verschillen bekend zijn is er nog één stap te voldoen. Het streven is immers om één getal als resultaat te krijgen en op dit moment is er een lijst aan getallen bekend. Om dit op te lossen zal middels de techniek “Arithmetic Mean”(16) de verschillen worden samengevoegd tot een gemiddeld getal. De som die hieruit volgt is:

Het verschil tussen de gebruiker en John Mayer is dus 0,051. Dit is dus een overeenkomst van:

Dit is een zeer grote overeenkomst. Maar dat is niet raar, gezien het feit dat John Mayer volgens Last.FM de meest beluisterde artiest is van de gebruiker.

Deze overeenkomst is ook in kaart te brengen. In fig. 4.2 (zie blz. 21) staat de overeenkomst tussen de gebruiker en John Mayer geïllustreerd. Hiervoor wordt de artiest met de gebruiker vergeleken. De vier belangrijkste tags worden vergeleken met die van de gebruiker. Het gele veld is het gebied waarin beiden met elkaar overeenkomen. Bij John Mayer is dit zeer groot, aangezien dat de meest gewaarde artiest is volgens Last.FM. De tags komen dus in grote mate met elkaar overeen.

In fig. 4.3 is eenzelfde schema gemaakt van de artiest Volbeat. De gebruiker kent deze nog niet en blijkt ook niet bij hem in de smaak te vallen. Dat blijkt uit de vergelijking van de tags. De gebruiker heeft nagenoeg geen overeenkomst met deze artiest, waardoor het gele overeenkomst-veld zeer klein is.

16 http://mathworld.wolfram.com/ArithmeticMean.html

= (0,052 + 0,052 + 0,062 + 0,042 + 0,089 + 0,032 + 0,054 + 0,0550 + 0,049 + 0,025) / 10 = 0,051

1 - 0,051 = 0,949

Het Algoritme | 20

Fig. 4.2 - Overeenkomst gebruiker met John Mayer

Fig. 4.3 - Overeenkomst gebruiker met Volbeat

21 | Het Algoritme

Invloed van het Web

Wat betreft het aanbevelen staat er nog één doel open. Er is namelijk slechts naar de beluisterde muziek van de gebruiker gekeken, maar ook datgene wat er op het Web wordt gezegd zal invloed hebben. Oftewel, wat vindt de rest van de wereld van deze artiest en hoe bekend is hij eigenlijk? Hiervoor zullen er twee functionaliteiten van Echo Nest worden gebruikt; Familiarity en Hotttnesss.

De bekendheid van een artiest

Echo Nest beschikt over verscheidene soorten data van meer dan 1,6 miljoen artiesten(17). Zo weet het onder andere hoe bekend een artiest is in de wereld, of zoals Echo Nest het noemt: Familiarity(18). Dit wordt gedaan door dagelijks miljoenen artikelen op het Web te crawlen en de tekst ervan te interpreteren. Hoe vaker er op bijvoorbeeld blogs over een artiest wordt geschreven, hoe bekender deze is.

Om achter de Familiarity van John Mayer te komen dient er een service-call te worden gedaan naar de API van Echo Nest. Deze API geeft een JSON-response, zoals weergegeven in figuur 4.4.

Zoals te zien is geeft Echo Nest een getal terug op een schaal van 0 tot 1. John Mayer heeft in dit geval een familiarity van 0,865. Dit cijfer dient gecombineerd te worden met de uitkomst van de eerder beschreven aanbeveling gebaseerd op het gebruikersprofiel. Doordat beide cijfers van hetzelfde type zijn hoeft hier geen conversie meer plaats te vinden.

De populariteit van een artiest.

Naast de bekendheid van een artiest kan dus ook de populariteit worden achterhaald, of zoals Echo Nest het noemt: Hotttnesss(19). Dat bekendheid van een artiest geeft namelijk aan hoeveel er over hem geschreven wordt, maar het zegt niets over wát er geschreven wordt. Het kan immers ook negatief zijn. De Hotttnesss ondervangt dit door te bepalen op welke manier er over de artiest wordt gepraat; positief of negatief.

Ook deze API-functionaliteit geeft een JSON-response terug, zoals in figuur 4.5 te zien is.

artist: {

familiarity: 0.8657255445714988, id: “ARZENOX1187B98A645”,

name: “John Mayer”

}

Fig. 4.4 - JSON response Familiarity

17 http://blog.echonest.com/post/6566331252/artist-entity-extraction-for-all-opening-our-puddle

18 http://developer.echonest.com/docs/v4/artist.html#familiarity

19 http://developer.echonest.com/docs/v4/artist.html#hotttnesss

artist: {

hotttnesss: 0.5559164298774739, id: “ARZENOX1187B98A645”,

name: “John Mayer”

}

Fig. 4.5 - JSON response Hotttnesss

Het Algoritme | 22

Ook dit getal ligt op een schaal van 0 tot 1. Het hoeft daardoor geen conversie te ondergaan om gecombineerd te kunnen worden met de aanbeveling op het gebruikersprofiel.

De uiteindelijke score

Nu zijn alle cijfers bekend om de uiteindelijke aanbeveling te kunnen geven. Ten eerste is er de overeenkomst tussen John Mayer en het gebruikersprofiel. Ten tweede is ook bekend hoe de wereld John Mayer ziet, namelijk zijn bekendheid en populariteit. Deze drie cijfers dienen samengevoegd te worden tot één cijfer.

Hier kan echter niet simpelweg een gemiddelde uit worden getrokken. Niet alle onderdelen zijn namelijk even belangrijk. Afhankelijk van de gestelde doelen zijn de onderdelen in meer of mindere mate belangrijk.

Om dit op te lossen zal er gebruik gemaakt worden van de techniek “Weighted Mean”(20). Daarmee kan namelijk aan elk betrokken cijfer een gewicht worden meegegeven. Dit gewicht geeft aan hoeveel belangrijker het ene cijfer ten opzichte van het andere is.

Er is geen wetenschappelijke berekening om achter deze gewichten te komen. Het is afhankelijk van de situatie en hoe belangrijk elk onderdeel in het geheel is. Oftewel, wat is het doel van de uitkomst en hoeveel draagt elk onderdeel hieraan bij?

Eén van de belangrijkere doelen is een persoonlijk toegespitste aanbeveling. Het draait er immers om dat een gebruiker aanbevelingen op de line-up van een festival krijgt, zodat hij deze beter kan inplannen. Om deze reden is het gebruikersprofiel de belangrijkste factor in de aanbeveling. De invloed van de wereld is een extra toevoeging en mag daarom de rest niet teveel beïnvloeden. Daarom is ervoor gekozen het gebruikersprofiel 4 keer mee te laten wegen en de Familiarity en Hotttnesss beiden 1 keer.

Dit komt uit op de volgende berekening:

De uiteindelijke aanbeveling die gegeven wordt voor John Mayer aan de gebruiker is dus 0,870.

Hoe alternatiever, hoe beter!

In deze scriptie wordt ervan uitgegaan dat de gebruiker een zo perfect mogelijke aanbeveling krijgt, volledig toegespitst op zijn muzieksmaak. Echter, doordat de bekendheid en de populariteit bekend zijn van de artiest zou ook het tegenovergestelde als doel gesteld kunnen worden. Wanneer de gebruiker namelijk juist op zoek is naar onbekende bandjes, zou een lagere bekendheid in het voordeel kunnen werken bij de aanbeveling. Op deze manier kunnen ontwikkelaars, welke deze API zouden gebruiken, de mogelijkheid hebben om hier speels mee om te gaan.

In deze scriptie wordt ervan uitgegaan dat de gebruiker een zo perfect mogelijke aanbeveling krijgt, volledig toegespitst op zijn muzieksmaak. Echter, doordat de bekendheid en de populariteit bekend zijn van de artiest zou ook het tegenovergestelde als doel gesteld kunnen worden. Wanneer de gebruiker namelijk juist op zoek is naar onbekende bandjes, zou een lagere bekendheid in het voordeel kunnen werken bij de aanbeveling. Op deze manier kunnen ontwikkelaars, welke deze API zouden gebruiken, de mogelijkheid hebben om hier speels mee om te gaan.