1 of 7

DRSNJM

Project Update and Prototype Demo

2 of 7

Machine Learning Extension

  • Objective: Provide recommendations for new games that are similar to a game that the user liked��
  • User will enter game name in a text search and will be returned with a list of games in order of "similarity" score

3 of 7

User Perspective

  • User searches for game by name
  • Query on MongoDB of games
  • Game ID returned to Redis
  • Redis contains sorted sets of Game IDs for each game
  • Sort weight is the "similarity" value
  • Contains (1000 choose 2)*2 records

UI

Redis Datastore

MongoDB

4 of 7

Expert Perspective

  • Expert presented grid of games
  • Expert selects which games they are familiar with
  • Expert is then presented two of those games and asked how likely they would be to recommend the second if a player enjoyed the first
  • Slider input with values (0 = would never recommend, 1 = would definitely recommend)

5 of 7

Expert Perspective

  • Recommendation values stored in a separated MongoDB
  • Expert should not be presented same game twice
  • Game combinations may have more than one rating by separate users, so some sort of authentication is necessary
  • Ratings across experts will be averaged to generate training set

6 of 7

Machine Learning Backend

  • When this training set is developed:�{ GameIDA, GameIDB, Similarity } �we can then train a machine learning system to provide suggestions in a similar way in which the experts provided suggestions
  • In order to accomplish this, game records must be converted into vectors
  • Some values translate well (ex. # players), however values such as category will need to be converted to binary (ex. 0 = not in category A, 1 = in category A) or via other methods

7 of 7

Machine Learning Backend

  • A script will be written to periodically run the training algorithm as the experts add to the training set over time
  • Once the network has been sufficiently trained, the vector values for every game combination must be fed through the network
  • This is not trivial: (1000 choose 2)*2 input space
  • Must be done offline or in background process
  • Output => Redis store for fast access