• Stars
    star
    123
  • Rank 290,145 (Top 6 %)
  • Language
    Java
  • License
    GNU Affero Genera...
  • Created over 10 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Towards A Standardized Tag Recommender Benchmarking Framework

TagRec

Towards A Standardized Tag Recommender Benchmarking Framework

Description

The aim of TagRec (please cite) is to provide the community with a simple to use, generic tag-recommender framework written in Java to evaluate novel tag-recommender algorithms with a set of well-known std. IR metrics such as nDCG, MAP, MRR, Precision (P@k), Recall (R@k), F1-score (F1@k), Diversity (D), Serendipity (S), User Coverage (UC) and folksonomy datasets such as BibSonomy, CiteULike, LastFM, Flickr, MovieLens or Delicious and to benchmark the developed approaches against state-of-the-art tag-recommender algorithms such as MP, MP_r, MP_u, MP_u,r, CF, APR, FR, GIRP, GIRPTM, etc.

Furthermore, it contains algorithms to process datasets (e.g., p-core pruning, leave-one-out or 80/20 splitting, LDA topic creation and create input files for other recommender frameworks).

The software already contains four novel tag-recommender approaches based on cognitive science theory. The first one (3Layers) (Seitlinger et al, 2013) uses topic information and is based on the ALCOVE/MINERVA2 theories (Krutschke, 1992; Hintzman, 1984). The second one (BLL+C) (Kowald et al., 2014b) uses time information is based on the ACT-R theory (Anderson et al., 2004). The third one (3LT) (Kowald et al., 2015b) is a combination of the former two approaches and integrates the time component on the level of tags and topics. Finally, the fourth one (BLLac+MPr) extends the BLL+C algorithm with semantic correlations (Kowald et al., 2015a).

Apart from this, TagRec also contains algorithms for the personalized recommendation of resources / items in social tagging systems. In this respect TagRec includes a novel algorithm called CIRTT (Lacic et al., 2014) that integrates tag and time information using the BLL-equation coming from the ACT-R theory (Anderson et al, 2004). Furthermore, it contains another novel item-recommender called SUSTAIN+CFu (Seitlinger et al., 2015) that improves user-based CF via integrating the addentional focus of users via the SUSTAIN model (Love et al., 2004).

TagRec was also utilized for the recommendation of hashtags in Twitter (Kowald et al., 2017). Thus, it contains an initial set of algorithms for this task as well. For this, TagRec also contains a connection to the Apache Solr search engine framework. Finally, we also utilized TagRec for predicting and recommendation music preferences. Here, all tag recommendation algorithms can also be used for predicting music artists and genres.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Please cite the paper if you use this software in one of your publications.

Download

The source-code can be directly checked-out through this repository. It contains an Eclipse project to edit and build it and an already deployed .jar file for direct execution. Furthermore, the folder structure that is provided in the repository is needed, where csv is the input directory and metrics is the output directory in the data folder. Both of these directories contain subdirectories for the different datasets:

  • bib_core for BibSonomy
  • cul_core for CiteULike
  • del_core for Delicious
  • flickr_core for Flickr
  • ml_core for MovieLens
  • lastfm_core for LastFM
  • wiki_core for Wikipedia (based on bookmarks from Delicious)
  • twitter_core/researchers for the Twitter CompSci dataset
  • twitter_core/general for the Twitter Random dataset
  • afel for a dataset from the AFEL project

How-to-use

The tagrec .jar uses three parameters:

First the algorithm,

Tag-Recommender:

  • 3layers for 3Layers (based on ALCOVE/MINERVA2 theories) (Seitlinger et al., 2013)
  • 3LT for the time-based 3Layers on the levels of tags and topics (Kowald et al., 2014a)
  • bll_c for BLL and BLL+C (based on ACT-R theory) (Kowald et al., 2014b)
  • bll_c_ac for BLL and BLL+MPr together with semantic correlations (Trattner et al., 2014)
  • lda for Latent Dirichlet Allocation (Krestel et al., 2009)
  • cf for (user-based) Collaborative Filtering (Jäschke et al., 2007)
  • cfr for (resource-based and mixed) Collaborative Filtering (Jäschke et al., 2007)
  • fr for Adapted PageRank and FolkRank (Hotho et al., 2006)
  • girptm for GIRP and GIRPTM (Zhang et al., 2012)
  • mp for MostPopular tags (Jäschke et al., 2007)
  • mp_u_r for MostPopular tags by user and/or resource (Jäschke et al., 2007)

Resource-Recommender:

  • item_sustain for the improved CF approach based on the SUSTAIN model
  • item_cirtt for the tag- and time-based approach based on BLL (Lacic et al., 2014)
  • item_mp for MostPopular items
  • item_cbt for the content-based Filtering approach using Topics
  • item_cft for user-based Collaborative Filtering based on tag-profiles
  • item_cfb for user-based Collaborative Filtering based on user-item matrix
  • item_zheng for the tag- and time-based approach by Zheng et al. (2011)
  • item_huang for the tag- and time-based appraoch by Huang et al. (2014)

Hashtag-Recommender (Kowald et al., 2017):

  • hashtag_analysis for analyzing the temporal effects on hashtag reuse
  • hashtag_socialmp for MostPopular hashtags of the followees (i.e., MPs)
  • hashtag social_recency for recency-ranked hashtags of the followees (i.e., MRs)
  • hashtag_socialbll for BLL-ranked hashtags of the followees (i.e., BLLs)
  • hashtag_hybrid for BLLi,s
  • hashtag_cb_res for BLLi,s,c on the Twitter CompSci dataset and SOLR core
  • hashtag_cb_gen for BLLi,s,c on the Twitter Random dataset and SOLR core

Data-Processing:

  • stats for printing the dataset statistics
  • core for calculating p-cores on a dataset
  • split_l1o for splitting a dataset into training and test-sets using a leave-one-out method
  • split_8020 for splitting a dataset into training and test-sets using 80/20 split
  • lda_samples for creating LDA topics for the resources in a dataset
  • tensor_samples for creating samples for the FM and PITF methods implemented in PITF and FM algorithms
  • mymedialite_samples for creating samples for the WRMF method implemented in MyMediaLite
  • process_bibsonomy for converting the BibSonomy dataset into the TagRec format
  • process_citeulike for converting the CiteUlike dataset into the TagRec format
  • process_lastfm for converting the LastFM dataset into the TagRec format
  • process_ml for converting the MovieLens dataset into the TagRec format
  • process_del for converting the Delicious dataset into the TagRec format
  • process_flickr for converting the Flickr dataset into the TagRec format

, second the dataset(-directory):

  • bib for BibSonomy
  • cul for CiteULike
  • del for Delicious
  • flickr for Flickr
  • ml for MovieLens
  • lastfm for LastFM
  • wiki for Wikipedia (based on bookmarks from Delicious)
  • twitter_res for the Twitter CompSci dataset
  • twitter_gen for the Twitter Random dataset

and third the filename (without file extension)

Example: java -jar tagrec.jar bll_c bib bib_sample

Input format

The input-files have to be placed in the corresponding subdirectory and are in csv-format (file extension: .txt) with 5 columns (quotation marks are mandatory):

  • User
  • Resource
  • Timestamp in seconds
  • List of tags
  • List of categories (optional)

Example: "0";"13830";"986470059";"deri,web2.0,tutorial,www,conference";""

There are three files needed:

  • one file for training (with _train suffix)
  • one file for testing (with _test suffix)
  • one file that first contains the training-set and then the test-set (no suffix - is used for generating indices for the calculations)

Example: bib_sample_train.txt, bib_sample_test.txt, bib_sample.txt (combination of train and test file)

Output format

The output-file is generated in the corresponding subdirectory and is in csv-format with the following columns:

  • Recall
  • Precision
  • F1-score
  • Mean Reciprocal Rank
  • Mean Average Precision
  • Normalized Discounted Cummulative Gain
  • User Coverage
  • Diversity (in case of resource recommendations)
  • Serendipity (in case of resource recommendations)

for k = 1 to 10 (or 20) - each line is one k

Example: 0,5212146123336273;0,16408544726301685;0,22663857529082376 ...

Citation

Kowald, D., Kopeinik, S., & Lex, E. (2017). The TagRec Framework as a Toolkit for the Development of Tag-Based Recommender Systems. In Adjunct Publication of the 25th Conference on User Modeling, Adapation and Personalization (UMAP'2017). ACM.

Bibtex: @inproceedings{kowaldumap2017, author = {Kowald, Dominik and Kopeinik, Simone and Lex, Elisabeth}, title = {The TagRec Framework As a Toolkit for the Development of Tag-Based Recommender Systems}, booktitle = {Adjunct Publication of the 25th Conference on User Modeling, Adaptation and Personalization}, series = {UMAP '17}, year = {2017}, isbn = {978-1-4503-5067-9}, location = {Bratislava, Slovakia}, pages = {23--28}, numpages = {6}, url = {http://doi.acm.org/10.1145/3099023.3099069}, doi = {10.1145/3099023.3099069}, acmid = {3099069}, publisher = {ACM}, address = {New York, NY, USA}, keywords = {hashtag recommendation, recommendation evaluation, recommender framework, recommender systems, tag recommendation} }

Publications

References

  • A. Hotho, R. Jäschke, C. Schmitz, and G. Stumme. Information retrieval in folksonomies: Search and ranking. In The semantic web: research and applications. Springer, 2006.
  • L. Zhang, J. Tang, and M. Zhang. Integrating temporal usage pattern into personalized tag prediction. In Web Technologies and Applications. Springer, 2012.
  • R. Jäschke, L. Marinho, A. Hotho, L. Schmidt-Thieme, and G. Stumme. Tag recommendations in folksonomies. In Knowledge Discovery in Databases: PKDD 2007. Springer, 2007.
  • R. Krestel, P. Fankhauser, and W. Nejdl. Latent dirichlet allocation for tag recommendation. In Proceedings of the third ACM conference on Recommender systems. ACM, 2009.
  • J. R. Anderson, M. D. Byrne, S. Douglass, C. Lebiere, and Y. Qin. An integrated theory of the mind. Psychological Review, 111(4), 2004.
  • J. K. Kruschke et al. Alcove: An exemplar-based connectionist model of category learning. Psychological review, 99(1), 1992.
  • D. L Hintzman. Minerva 2: A simulation model of human memory. Behavior Research Methods, Instruments, & Computers 16 (2), 1984.
  • N. Zheng and Q. Li. A recommender system based on tag and time information for social tagging systems. Expert Syst. Appl., 2011.
  • C.-L. Huang, P.-H. Yeh, C.-W. Lin, and D.-C. Wu. Utilizing user tag-based interests in recommender systems for social resource sharing websites. Knowledge-Based Systems, 2014.
  • B. C. Love, D. L. Medin, and T. M. Gureckis. Sustain: A network model of category learning. Psychological review, 111(2):309, 2004.

Main contact and contributor

  • Dominik Kowald, Know-Center, dkowald [AT] know [MINUS] center [DOT] at (general contact)

Contacts and contributors

  • Simone Kopeinik, Know-Center, simone [DOT] [AT] tugraz [DOT] at (sustain resource recommender algorithm)
  • Emanuel Lacic, Know-Center, elacic [AT] know [MINUS] center [DOT] at (huang, zheng and CIRTT resource recommender algorithms)
  • Subhash Pujari, ISDS, Graz University of Technology, spujari [AT] student [DOT] tugraz [DOT] at (twitter hashtag recommender algorithms)
  • Elisabeth Lex, ISDS, Graz University of Technology, elisabeth [DOT] lex [AT] tugraz [DOT] at (general contact)
  • Markus Schedl, Johannes-Kepler University Linz, markus [DOT] schedl [AT] jku [DOT] at (music preference prediction algorithms)
  • Christoph Trattner, University of Bergen, Norway, christoph [DOT] trattner [AT] uib [DOT] no (general contact)

More Repositories

1

android-openid-connect

A sample Android app that communicates with a non-Google OpenID Connect provider.
Java
39
star
2

openid-connect-button

An OpenID Connect Button allowing arbitrary browser-based Web applications to authenticate and get access to user information using an external OpenID Connect Provider. The application itself must be registered as client at the OpenID Connect provider.
JavaScript
16
star
3

AchSo

Android video recording and annotation app for construction.
Java
14
star
4

SocialSemanticServer

Java
8
star
5

Cloud-Video-Transcoder

The Tethys Video Transcoder v2.0 project
HTML
4
star
6

LayersBox

A command line script to setup and configure a Layers Box.
Python
3
star
7

SocRec

SocRec - Towards a Scalable Social Recommender Engine
Java
3
star
8

BitsAndPieces

JavaScript
3
star
9

sardroid

Social augmented reality app (SoAR)
JavaScript
3
star
10

LAPPS

JavaScript
3
star
11

LivingDocumentsServer

Java
2
star
12

LayersAdapter

JavaScript
2
star
13

openldap-Dockerfiles

Shell
2
star
14

LD-Meteor

Living Documents implemented in Meteor (web framework)
JavaScript
2
star
15

Layers-Dockerfiles

This repo contains all the basic Dockfiles used in the Layers Box.
Java
2
star
16

Expert-Identification-Service

This services finds experts in Question-Answer forum like data structures. Experts are people with high level of knowledge which can contribute to novices. In Learning Layers project, social semantic server would require such a service for discovering the people with higher level of expertise.
Java
2
star
17

BBApp

A central place to access workplace learning tools and apps
JavaScript
1
star
18

KnowBrain

JavaScript
1
star
19

reflect-server-side

Reflect serverside install repo
PHP
1
star
20

eis-Dockerfiles

Expert Identification Service
Shell
1
star
21

reflect-app

Reflect mobile application Phonegap repo
Java
1
star
22

LivingDocumentsClient

JavaScript
1
star
23

sevianno

Role Widget for video annotations
JavaScript
1
star
24

layers-icons

Some SVG-based icons for Layers, to be used by Web Components.
HTML
1
star
25

SocialSemanticServerClientSide

JavaScript
1
star
26

OCD-Services

Here in this repository code and implementation regarding overlapping community detection (OCD) algorithms are brought. OCD services are useful finding communities of learners and overlapping learners among such communities. This service would contribute to scaling up information across communities of learners
Shell
1
star