10 likes | 138 Views
Graph RAT A framework for integrating social and content data By Daniel McEnnis University of Waikato. To what extent do social and/or cultural data improve recommendations. Pattern Algorithm Source Destination Property .* CrawlLastFM .* ReadAudioFiles
E N D
Graph RAT A framework for integrating social and content data By Daniel McEnnis University of Waikato To what extent do social and/or cultural data improve recommendations. PatternAlgorithmSourceDestinationProperty .* CrawlLastFM .* ReadAudioFiles .* AggregateOnActor user NA social .* AggregateByLinkProperty song artist content .* AggregateByLinkProperty artist user content .* Weka Classifer user artist content .* Fmeasure user artist NA .* CombineProperty user profile social .* Weka Classifier user artist social .* Fmeasure user artist NA .* AggregateByLink tag user tagVector .* Weka Cluster user NA tagVector Cluster GraphTriples NA NA graph Cluster GraphToActor NA user culture .* CombineProperty user culture social .* Weka Classifier user artist culture .* Fmeasure user artist NA System Overview Low Level Functionality The core data structure is a graph, much as Scheme uses binary trees. This graph has different classes of nodes called modes and different classes of links called relations. Furthermore, graphs can have sub-graphs that are strict subsets of their parents. Graphs, links, and nodes can have properties. A property is an object with a unique ID on a given component with one or more immutable Java objects attached. Any Java object, including Weka Instance objects, can be used as a property. Algorithms and Schedulers Algorithms execute over a graph, performing a simple operation at each step. The main classes are import, aggregator, similarity, classifier, clusterer, export, display, and evaluator algorithms. Schedulers determine what algorithms execute over which sub-graphs in what order. By default, algorithms are executed sequentially against sub-graphs whose ID match a given regular expression. The scheduler can be executed at the command line from an XML file or built dynamically via a GUI interface. Sample Programs To what extent do artists cluster into genres PatternAlgorithmSourceDestinationProperty .* CrawlLastFM .* ReadAudioFiles .* AddReference artist genre .* AggregateOnActor user NA profile .* AggregateByLinkProperty user artist profile .* AggregateByLinkProperty song artist content .* AggregateOnActor artist NA all .* Weka Clusterer artist NA all Cluster AggregateByLink genre artist cluster Cluster PropertyToLink artist genre NA .* FMeasure artist genre NA Are genres culturally independent? PatternAlgorithmSourceDestinationProperty .* CrawlLastFM .* ReadAudioFiles .* AddReference artist genre .* AggregateByLink tag user tagVector .* AggregateByLinkProperty song artist content .* AggregateByLinkProperty artist user content .* AggregateOnActor user NA all .* Weka Clusterer user NA tagVector Cluster AggregateByLinkProperty user artist clusterData Cluster Weka Classifier artist genre clusterData Cluster FMeasure user artist NA Cluster GraphToActor NA user NA .* AggregateByLinkProperty user artist data .* WekaClassifer user artist data .* PropertyToLink artist genre NA .* FMeasure artist genre NA .* GraphToActor NA artist NA .* Difference data clusterData difference .* AggregateByGraph user difference References Daniel McEnnis and David Bainbridge. 2008. Technical Report 07/ 2008. Waikato University, Hamilton, New Zealand. www.cs.waikato.ac.nz/pubs/wp/2008/uow-cs-wp-2008-07.pdf Daniel McEnnis. 2008. Towards a music recommendation system. New Zealand Computer Science Research Students Conference. Project Website: http://graph-rat.sourceforge.net