Git Product home page Git Product logo

minion's Introduction

Minion

Minion is a personalized recommendation engine based on multi agent platform Jadex. It's kind of a creative way to build recommendation engine. The Recommendation algorithm is the classic collobrative filtering algorithm based on Mahout.

Multi Agents

The Minion system consists of 8 agents, all of them are built with the BDIAgent, BDI is Belief, Desire(Goal) and Intention(Plan).
Multi Agent System(MAS) is different from object-oriented system, which is usually single Thread and based on passive call. MAS system is concurrent, and each Agent is intellent, sociality, autonomy and focus on its BDI. Based on Multi Agent, the recommendation engine can be more personalized.
Meanwhile, Agent Oriented programming model is a creative method, the system can be more loose coupling.

The Agents in the Minion system:

  • UserBDI
    Provide a simple UserInterface to get user input and behaviors, make request to RecommenderBDI to get Recommended items.
  • RecommenderBDI
    Controll the whole process of generating recommendations. Make use of the services provided by DataMiningBDI, SearchBDI and RecommendationBuildBDI.
  • DataMiningBDI
    Make Request to StrategyBDI to get algorithm strategy. If strategy is UserCF, then request UserCFBDI to do DataMining job, else if is ItemCF, request ItemCFBDI to do datamining job.
  • StrategyBDI
    Make algorithm strategy based on the self similarity of the items which the user has rated. Now the self similarity is calcuated by stadard deviation.
  • ItemCFBDI
    Data mining with ItemCF algorithm.
  • UserCFBDI
    Data mining with UserCF algorithm.
  • SearchBDI
    Since the Recommended Items generated by DataMiningBDI is not detail enough. The SearchBDI search Database to generated details about the recommended items.
  • RecommendationBuildBDI
    Build recommendation results for Display.

BTW, these agents is communicated with active components using service interface with goal delegation.
See more about the mechanism on Jadex Tutorial

Related Technology

  1. Jadex BDI Version 3
  2. Apache Mahout
  3. MySQL
  4. Maven
  5. J2SE 1.6

The Data Set

The Minion system adopts the MovieLens 1M dataset.

Installation

The following steps is available for MacOS or Linux system.

1.git clone https://github.com/lgrcyanny/Minion

2.Install MySQL

3.Download MovieLens 1M dataset

4.Create database movielens
Import the movielens.sql into database:

$ mysql -u root -proot movielens < movielens.sql

5.Import the 1M data into database

$ mysql -u root -p
mysql>  load data local infile 'ratings.dat' into table tbl_ratings fields terminated by '::'  enclosed by '' lines terminated by '\n' (userid, movieid, rating, timestamp);
mysql>  load data local infile 'movies.dat' into table tbl_movies fields terminated by '::'  enclosed by '' lines terminated by '\n' (movieid, title, genres);
mysql>  load data local infile 'users.dat' into table tbl_users fields terminated by '::'  enclosed by '' lines terminated by '\n' (userid, gender, age, occupation, zipcode);

6.Download [Eclipse IDE for Java EE DevelopersEclipse IDE for Java EE Developers](http://www.eclipse.org/downloads/)

7.Run maven build on Minion project, then all dependencies will be downloaded automatically.

8.Run Minion Application
Open Run configurations, choose project: mas-recomm-engine, Main class jadex.base.Starter

9.After the Jadex Control Center(JCC) opened, add the classpath which is like "mas-recomm-engine-0.0.1-SNAPSHOT.jar"

10.Start "RecommendationService.application.xml"

The installation is complicated, good luck and be careful.

minion's People

Contributors

lgrcyanny avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.