Intelligent Agents Assignment 1 (Individual Assignment)
Case: Recommendation system
An online shoe store plans to develop a recommendation system. The system should:
- actively acquire the user preference information,
- acts as a server to provide the recommendation information per request.
You are required to build a prototype of the recommendation system using Python or Java programming language. File interface will be adopted in the prototype to simulate both actions mentioned above. So, the prototype will process different input files and produce the corresponding output files whenever appropriate. There are two types of input files, one is user preference files and the other is recommendation request files. The requirements are as follows:
- Recommendation Model Updating (user preference file)
Simulation: The agent collects information from users actively and users give user preference files as the feedback.
Input file
- Directory: <application path>/input
- Filename: UPyyyymmddhhmmss.csv
- The file contains three columns in a row separated by commas, (userID, itemID, score [1-5])
Processed input file
- Directory: <application path>/processed
- Filename: UPyyyymmddhhmmss.csv
- The input file should be moved to the above directory.
Processing requirement
- After processing, the updated information should be reflected in the result of the recommendation request processing shortly, e.g. the data model to be used by the recommendation request processing should be updated accordingly.
- yyyymmddhhmmss is the timestamp of the request. The agent should handle the oldest user preference file first.
- Processed file should be moved to the directory <application path>/processed.
- Recommendation Request Processing (recommendation request file)
Simulation: An agent receives a recommendation request file and it should try to provide a recommendation by creating a recommendation file as soon as possible.
Input file
- Directory: <application path>/input
- Filename: RRyyyymmddhhmmss.csv
- The file contains one row with one column (userID).
Output file
- Original file
- Directory: <application path>/processed
- Filename: RRyyyymmddhhmmss.csv
- The input file should be moved to another directory.
- Response file
- Directory: <application path>/output
- Filename: RRyyyymmddhhmmssout.csv
- The file contains two columns in a row (userID and a recommended item list separated by commas).
Processing requirement
- Appropriate recommendation logic such as collaborative filtering logic should be used. Any appropriate library can be adopted.
- yyyymmddhhmmss is the timestamp of the request. The agent should handle the oldest request first.
- Evaluation
A proper evaluation such as (root-mean-square error / precision / recall) should be conducted for the recommendation module. The approach and the result should be discussed in the report.
- Other requirements
- Two types of files should be handled separately whenever possible.
- For the processing of recommendation request file, the response time and the processing time should be as short as possible.
- The information in the user preference file should be updated into the system as early as possible.
- If there is any conflict, recommendation file should be processed first.
- The following processing information should be provided either in a log file or to the output console. Other useful information can be added, but no debug message should be provided with this information.
14:23:12.254 Model updating start: UPyyyymmddhhmmss.csv
14:23:14.250 Model updating end: UPyyyymmddhhmmss.csv
14:23:17.324 Request processing start: RRyyyymmddhhmmss.csv
14:23:17.854 Request processing end: RRyyyymmddhhmmss.csv
- Maintain a file to reflect the content of the most up-to-date model of the user preference information.
Filename: d:/310CT/processed/currentModel.csv
Content format: Same format as the user preference file, i.e. the file contains three columns in a row separated by commas, (userID, itemID, score [1 5]).
Marking Criteria
The assessment will be according to the following criteria:
- Proper implementation of progress control
- The efficiency, sequence and file movement have been handled properly.
- Proper priority control of file uploading and model updating.
(30%)
- Proper implementation of recommendation logic
- Proper recommendation logic implemented.
- Different scenarios can be supported with reasonable response time.
(30%)
- Evaluation of the recommendation module
(15%)
- Provision of design documentation to show
- How to invoke the program with different scenarios
- Concise algorithm explanation
- System design and library selection discussion (strength and weakness)
- Evaluation discussion
- Test result examples
(Maximum 5 pages for a-d)
(25%)
Reviews
There are no reviews yet.