Research and Development 1/^Archief/2008-2009/Spraaktechnologie/Fase1

Uit Werkplaats
Ga naar: navigatie, zoeken
Bagjoke.jpg

Research and Development 1

Patrick van Bommel
Sjaak Smetsers


 © comments




literatuur


Inleiding

Probleemstelling

Wat is er nodig voor een persoonlijk profiel dat geschikt is voor intelligente e-matching zoals toegepast bij een datingsite als Parship.nl of het geven van tips voor boeken/cd's bij Bol.com.


Opmerkingen:
  • Aardig onderwerp -- hier moeten jullie zeker iets van kunnen maken.
  • Deze twee vormen van e-matching lijken erg verschillend: zowel qua toepassing als gebruikte methode
  • In de oz-vraag zijn onderzoekselementen en variabelen niet duidelijk te herkennen. Gaan jullie bv met personen werken?
  • Het lijkt erop dat jullie een verband gaan onderzoeken tussen gebruikte (persoons)kenmerken en kwaliteit van de matching. Waaraan lees je die kwaliteit af (operationalisatie)?
  • Het verzamelen van (voldoende) gegevens zou best eens lastig kunnen worden. Hoe stellen jullie je dit voor?
  • De rest van deze pagina bevat onvoldoende uitwerkte aanknopingspunten: het lijkt meer een eerste verkenning.
  • Beantwoording van de vraag 'hoe werkt het' kan geen doel van het onderzoek zijn: zo'n vraag beantwoord je vóór het opstellen van een plan voor een echt onderzoek. Natuurlijk moet dat wel gebeuren, en kost het tijd. Wij kunnen echter pas iets zinnigs over het plan zeggen als jullie dat soort informatie op een rijtje hebben.
Erik Barendsen.jpg
Erik BarendsenResearch and Development 1 Remove this comment when resolved!


Theorie

We zoeken vooral naar voorbeelden van intelligentie profielen en bijbehorende zoekfuncties. Voorbeelden hiervan zijn te vinden op bijvoorbeeld datingsites. Daarnaast zijn er ook verschillende niveau's van zoeken (zie O&T vorig jaar). Wat wij willen is een zoeksysteem dat ook kan zoeken naar geschikte matches zonder de gebruiker precies weet wat zij wil. Dit is de lijst van dingen die we moeten weten om verder te kunnen met het onderzoek:

  • Hoe werken persoonlijke profielen?
    • Wat voor data wordt opgeslagen op persoonlijke profielen en hoe?
    • Wat is relevant, en wat niet, als je aan het matchen bent?
  • Hoe werkt e-matching?
    • Welke data wordt vergeleken?
      • Antwoord: Slope One is het algoritme dat Amazon.com gebruikt voor haar product aanbiedingen ('Users that bought this product also bought...'). Hier wordt uitgelegd dat er wordt gewerkt met een systeem van ratings, die vervolgens in eengewogen gemiddelde worden gebruikt om de relevantie uit te rekenen.
    • Hoeveel mogen de antwoorden afwijken?
    • Hoe weet een systeem welke profielen vergeleken moeten worden?
      • Wordt alles vergeleken, of slechts een deel?
  • Hoe kan e-matching intelligent worden gemaakt?
    • Wat is intelligentie in dit geval?
    • Bestaaat eendergelijk systeem al, en kan het gekoppeld worden aan een zoekfunctie?


Vervolgens moeten we:

  • profielen weergeven in een model
  • e-matching weergeven in een model
  • De 'intelligente stap' implenteren
  • Het geheel modelleren, op zo'n wijze dat het gebruikt kan worden door mensen die een dergelijk systeem willen bouwen

Voorbeelden e-matching:

  • http://www.bol.com (Als je een artikel (bijv. een boek) aan het bekijken bent krijg je meteen een lijstje met "Liefhebbers van dit boek bestelden ook".
  • http://www.relatieplanet.nl (Nurer heeft zich hiervoor aangemeld).
  • http://www.parship.nl (Michiel, Gaby en Nurer hebben zich alledrie aangemeld, in een poging het PARSHIP algoritme te doorgronden)

De literatuur die hierbij het meest van pas lijkt te komen zijn Collaborative Filtering en Recommender systems. Uiteraard zijn deze Wikipedia links weinig academisch van aard, en dient er meer (wetenschappelijk gegronde) literatuur te worden verzameld over deze onderwerpen. Ook moet iemand even uitzoeken of een onderzoek als dit al eens is uitgevoerd .

Onderzoek

Hypothese

De aanbevelingsmethode van bijvoorbeeld Bol.com kan verenigd worden met een heuristische zoekfunctie, die afgaat op overeenkomsten tussen twee profielen.
Een datingsite vergelijkt bijvoorbeeld twee profielen, en berekent de overlap. Vervolgens geeft de site aan welk profiel de hoogste overlap hebben. Internetwinkels zoals Bol.com en Bizzare.nl geven aan dat mensen die het product kochten waar de gebruiker in geïnteresseerd is, ook een aantal andere producten hebben gekocht. De site vergelijkt dus aankoopgedrag van gebruikers, en de producten die het meest samen voorkomen worden vervolgens getoond bij het product waar de gebruiker naar aan het kijken is.
In theorie zou het mogelijk moeten zijn om deze twee vormen van zoeken aan elkaar te koppelen.



Een hypothese is iets wat we aannemen, niet de vraag? Daarbij moet het algemener, zie mijn discussiepunt hier onderaan de pagina: een algemeen lerend systeem op basis van gemaakte matches. Of dit nu voor dating of voor woningzoeken toegepast wordt.
Gaby Schaap.jpg
Gaby SchaapResearch and Development 1 Remove this comment when resolved!



We begonnen met het idee om dit soort e-matching programma's op huizenmarkten toe te passen, maar zijn na het gesprek volgens mij te breed gaan denken wat het moeilijker maakt om preciese probleemstelling en hypotheses te formuleren. Misschien moeten we alsnog huizenmarkt als voorbeeld nemen om bijvoorbeeld een hypothese te formuleren. Het moet dus een bewering/stelling zijn die we gaan bewijzen of juist ontkrachten. "Intelligente e-matching programma's kunnen makkelijk op huizenmarkt worden toegepast". Als we het te algemeen houden is het volgens mij echt te moeilijk om een hypothese te formuleren.
Nurer Gergin.jpg
Nurer GerginResearch and Development 1 Remove this comment when resolved!


Onderzoeksplan

Een analyse maken van de mogelijkheid om deze manier van koppelen (die dus de eerste laag van feitelijke overeenkomsten overtreft) toe te passen op software waar sprake is van het zoeken en maken van matches.

Het analyseren van ogenschijnlijke toevalligheden die wellicht, nadat ze in kaart zijn gebracht, niet zo toevallig meer zijn.

"Opposites Attract" wordt er vaak gezegd, terwijl matchingprogramma's vaak juist zoeken naar duidelijke overeenkomsten (hobbies etc.)

Verder kunnen we wellicht bij een site als Parship, die zegt ánders te matchen, zelf een account aanmaken (hebben al wat los geprobeerd) om zo te kijken wat voor antwoorden we op de vragenlijsten geven en welke matches we terug krijgen. Vooralsnog, na een snelle poging, lijkt het erop dat ook deze matcher slechts een één op één matching doet: vissen + vissen = samen vissen.

Zie voor verdere informatie het kopje 'Discussie'.

Resultaat

een correct prototype?

Conclusie en discussie

Discussie

Wat ik me dus afvraag, is of bijvoorbeeld datingsites, leren van bepaalde 'matches'.

Je kunt natuurlijk allerlei profielen gaan 'matchen' die precies dezelfde hobbies hebben (zowel vissen als bowlen als strandwandelingen en romantische diners) maar wellicht probeert men ook / zou het mogelijk zijn matches te maken op basis van de geslaagde matches. Er zijn veel dating sites die om succesverhalen vragen geloof ik, en als je dan twee matchende profielen kunt invoeren en de gegevens daarvan worden verzameld en vergeleken, is het misschien mogelijk om inderdaad met een vorm van kansberekening, matches te maken die op het éérste gezicht niet direct bij elkaar lijken te passen. (omdat ze geen directe overeenkomst van 3 of meer hobbies hebben bijvoorbeeld).

Ditzelfde kan ook toegepast worden op huizen, waarbij de ene partij van de match een woningzoekende is, en de andere een woning.
Gaby Schaap.jpg
Gaby SchaapResearch and Development 1 Remove this comment when resolved!



Dit is volgens mij het meest interessante voor ons. Als ik het goed begrijp heb je het over het niet alleen maar blind staren naar een profiel, maar ook leren van geslaagde matches. Als iemand dus bijvoorbeeld in zijn profiel heeft staan dat hij een woning met 3 slaapkamers wil hebben, maar hij reageert ook wel eens op een 2 slaapkamers woning en komt daar hoog in het lijstje kan een intelligent systeem hier van leren en dus vaker alsnog een 2 slaapkamers woning aanbieden. Ik denk dat de meeste huidige systemen dit niet doen of niet kunnen, maar het moet toch best makkelijk toe te passen zijn.
Nurer Gergin.jpg
Nurer GerginResearch and Development 1 Remove this comment when resolved!



Het gaat dus niet alleen om dingen die een persoon ZELF eerder heeft gekozen/gezien/gekocht, maar ook om wat soortgelijke mensen (te zien aan profiel) ook leuk vinden
Gaby Schaap.jpg
Gaby SchaapResearch and Development 1 Remove this comment when resolved!



Zouden afkeuringen door de gebruikers onthouden worden door het systeem? Mogelijk waarbij iemand kan opgeven op welke eigenschap het faalde? Dan kan het systeem daar als het ware van leren.
Stefan Joosten.jpg
Stefan JoostenResearch and Development 1 Remove this comment when resolved!


<(^ ^)>
Het zou natuurlijk ook erg nuttig zijn als een systeem een manier heeft om afkeuringen bij te houden met reden, vervolgens die reden gebruiken om nieuwe kandidaten te vinden. "Een kandidaat, die verassend veel lijkt op u in veel opzichten, was geïnteresseerd in dit huis, maar wilde het niet hebben vanwege X. Ons systeem heeft echter gezien dat X voor u niet opgaat, dus willen we u graag uitnodigen voor een gesprek." etc. Op die manier help je niet alleen de gebruiker, maar ook de aanbieder, omdat deze sneller van zijn producten af is. Ziehier commerciële toepassingen!
Michiel van Lierop.jpg
Michiel van LieropResearch and Development 1 Remove this comment when resolved!


Parship:

  • Parship gebruikt profielen om personen aan elkaar te matchen. Elke gebruiker heeft een psychologische test gemaakt waaruit een psychologisch profiel voor de persoonlijkheid van de gebruiker wordt opgemaakt. Verder geeft een gebruiker aan wat diens interesses en gewoontes zijn, deze worden ook gevraagd tijdens de test.
  • Op deze drie punten (Persoonlijkheid, Interesses, Gewoontes) worden gebruikers vervolgens vergeleken. Als een gebruiker een profiel bezoekt, is zichtbaar wat de overlap is op de drie punten. De totale overlap wordt weergeven als een percentage.
  • Gebruikers kunnen zelf de aanbevolen profielen bezoeken en daar verder zoeken in de tabbladen Profiel, Zij/Hij over zichzelf, Vrije Tijd en Matching-resultaat. Voor zover bekend wordt deze informatie niet standaard vergeleken door Parship, met uitzondering van het tabblad Matching-resultaat, waar de resultaten van de psychologische tests naast elkaar worden gezet, zodat de gebruiker kan vergelijken tussen zichzelf en het bezochte profiel. Deze resultaten zijn gesorteerd in drie onderdelen, namelijk: Persoonlijkheidsstructuur, Verlangens & Aard en Gewoontes.
  • Gebruikers kunnen zelf op rudimentaire manier de zoekresultaten verscherpen, door aan te geven of zij op zoek zijn naar Partners van een bepaalde lengte, bepaalde leeftijd, wel of niet rokers, wel of geen kinderen hebbend, en locatie.
  • Als een gebruiker geïnteresseerd is kan er een zogenaamde "Glimlach" naar een persoon worden gestuurd. Deze "Glimlach" komt in het postvakje terecht van het profiel waarin de gebruiker geïnteresseerd is. De gebruiker kan hierbij aangeven wat de reden is om de Glimlach te versturen. Dit kan bijvoorbeeld zijn het kopje Hij/Zij over zichzelf, Ik zou graag willen..., Favoriete vakanties, Hobby's, etc., of een onderdeel uit Matching-resultaat, waar de resultaten van de psychologische test te zien zijn. Degene aan wie de Glimlach gestuurd wordt kan dus lezen waarom de gebruiker geïnteresseerd is.
  • De Glimlachjes worden niet gebruikt door Parship om zoekresultaten te vernauwen. Parship pikt het dus bijvoorbeeld niet op als een gebruiker consequent reageert op profielen waarin men zichzelf de attributen "Hoogopgeleid" en "Onafhankelijk" heeft toegewezen. Er is voor de gebruiker ook geen manier om de zoekmachine van Parship hierop te specificeren.

Collaborative Filtering

  • Amazon maakt gebruik van collaborative filtering om producten aan te bieden die waarschijnlijk ook interessant zijn voor de gebruiker. Zodra je een keer een aankoop bij Amazon.com hebt gedaan, houdt Amazon dat bij en begint je aanbevelingen te geven voor boeken die je misschien ook interesseren. Amazon geeft aanbevelingen op basis van je aankopen, maar je kan ook andere boeken een waardering geven van 1 tot 5 sterretjes die dan gebruikt worden voor de aanbevelingen.
  • Met Last.fm kan je registreren welke muziek je draait, met iTunes of welke player je ook gebruikt, en gebruikt dat om andere gebruikers te zoeken die dezelfde smaak in muziek hebben als jij. En daar worden dan ook weer aanbevelingen gedaan voor muziek die je nog niet kent. Ook hier is weer sprake van een soort van collaborative filtering.
  • Het probleem is dat een gebruiker is geïnteresseerd in een bepaald soort informatie (boeken die hij wil lezen, muziek die hij wil luisteren, enz), maar de gebruiker weet niet precies waar hij naar op zoek is. Als hij een goed idee had over waar hij naar op zoek is kon hij namelijk gewoon een search engine raadplegen. In deze situaties weet hij echter niet precies wat hij wil. De zoekvraag is dan iij eigenlijk, "laat mij de dingen zien die voor mij interessant zij". Collaborative filtering is een manier om dergelijke vragen te kunnen beantwoorden.
  • "Filtering" slaat op het filteren van informatie, dus het selecteren van de juiste informatie uit een grote verzameling. "Collaborative" slaat op het feit de de informatie die wordt gebruikt voor het filteren door alle gebruikers van het systeem samen wordt geleverd. In het voorbeeld van Amazon zijn dat de aankopen die jij en andere klanten hebben gedaan en de waardering die je aan boeken hebt gegeven. Bij last.fm is het de muziek die jij en de andere gebruikers hebben gedraaid.
  • Toepassingen van collaborative filtering:
    • Aanbevelingen van items die de gebruiker nog niet kent of niet aan gedacht heeft (Bol.com, Amazon.com)
    • Zoeken naar overeenkomsten en deze matchen (Last.fm, Relatieplanet.nl)

Voordelen:

  • Je hoeft niet meer met precieze zoekopdrachten te komen om te vinden wat je 'zoekt'.
  • Je krijgt tips waar je misschien anders nooit aan gedacht zou hebben


Nadelen:

  • Het is de 'smaak' van een erg breed publiek. Je krijgt veel uiteenlopende adviezen van mensen met een even zo brede interessescope.
  • Door bovenstaande is het moeilijk om een echt passend 'profiel' te maken per persoon.
  • Een algorithme dit wèl laten doen, kan alleen door hèèl veel extra randvoorwaarden en overeenkomsten mee te nemen. Dit zou nog wel eens teveel energie kunnen kosten voor wat het oplevert.

Conclusies

Uit Parship

Ondanks dat Parship voor een profielpagina redelijk ontwikkeld is, is er wel degelijk grote vooruitgang mogelijk. De voorsprong van de website ten opzichte van andere profielsites bestaat er voornamelijk uit dat Parship in het begin veel data over haar gebruikers verzameld. Dit initiële resultaat wordt vervolgens gebruikt om te zien of een gebruiker overeenkomsten vertoont met andere gebruikers. Degene met de meeste overeenkomsten worden aangemerkt als de beste kandidaten. Afgezien van het feit dat dit binnen de context waarin Parship functioneert behoorlijk zwak is (een ideale match zou dus zijn als iemand zichzelf gaat daten, terwijl dit voor veel mensen een absolute ramp zou zijn), is deze zoektechniek weinig inspirerend. Er wordt nog altijd gezocht op overlap, en niet op complementaire eigenschappen.
Een tweede punt is dat er niets wordt gedaan met de data die de gebruikers later doorspelen aan de website, door profielen te bezoeken, maar vooral door het aangeven van interesse in andere gebruikers. Als gebruikers consequent op dezelfde eigenschappen selecteren, wordt dit op een bepaald punt een duidelijk zichtbaar patroon. Dit patroon zou vervolgens gebruikt kunnen worden om de zoekresulaten te verfijnen, of de "geschiktheidspercentages" (die nu volledig op overlap werken) meer in overeenstemming te maken met de wensen van de gebruiker. Het is apart dat gebruikers hier ook niet op kunnen selecteren. Parship zou een grote en intelligente stap kunnen zetten door een dergelijke functie te implementeren.

Uit Collaborative Filtering

Het probleem dat een collaborative filtering algoritme probeert op te lossen is het voorspellen van de beoordeling van items voor een bepaalde gebruiker, gebaseerd op een verzameling van beoordelingen van andere gebruikers. Het gaat dus om het voorspellen van de beoordeling van een combinatie van gebruiker en item.

  • Om goed gebruik te kunnen maken van algoritmen die gebaseerd zijn op collaborative filtering heb je de volgende "dingen" nodig:
    • Grote hoeveelheid informatie (genoeg beoordelingen van gebruikers, genoeg aankopen, genoeg nummers die afgespeeld zijn op je iTunes enz.)
    • Om de grote hoeveelheid informatie te krijgen heb je dus ook een grote groep gebruikers nodig. Grotere groep levert meer informatie.
    • Een manier om te meten welke informatie de gebruikers interessant vinden (1-5 sterren zoals bij Amazon of gewoon d.m.v. een cijfer op een schaal van 1 tot 10 enz.).
    • Een correlatie tussen de items/informatie. Hoe hoger de correlatie hoe beter de aanbeveling/matching zal zijn. Als er weinig correlatie is en de gebruikers hebben "willekeurige interesses" zal het veel moeilijker of zelfs onmogelijk worden om een goede aanbeveling/matching te vinden.