2

This application has it's roots in public transport. Users opening the application and looking at the departure times of buses for specific stops (page 1) or planning a journey from location A to B with a journey planner(page 2). Two separate pages, two separate functions.

Page 1 you can say the user is familiar with the route, as they only need to know the departure and page 2 vice versa they do not know the route, and need a journey planner to assist them.

I am trying to make an application that displays one of the pages to the user depending on specific variables (which will make up a state). The page that the application shows to the user is dependent on former rewards on those specific states given the actions of the user; the user will either 1) stay on the page first shown, which will result in + reward or 2) navigate to the other page, which will result in - reward.

In simple terms, I would like to display the correct page to the user when the user enters the application, so the user does not have to navigate there themselves.

The features I get to play with include the following:

location
time of day
day of week
   |----- monday
   |----- tuesday
   |----- wednesday
   |----- thursday
   |----- friday
   |----- saturday
   |----- sunday
week of month
   |----- 1
   |----- 2
   |----- 3
   |----- 4
month of year
   |----- january
   |----- february
   |----- march
   |----- april
   |----- may
   |----- june
   |----- july
   |----- august
   |----- september
   |----- october
   |----- november
   |----- december
action
   |----- page 1
   |----- page 2

An example of using this set would be the following:

The user enters the application and the application displays page 1 (default page). The user stays on the page, reward is given to the state.

{
    location: '12th Example Street, Somecity',
    timestamp: '2015-03-03 08:31:12', // <--- this includes day, week, month, year etc. as you can see
    action: page1
}

As most commuters have 7-4 jobs it's very routine. Monday to Friday the user usually takes the bus to work every morning and then back at home. He knows his route so page 1 would be optimal to be displayed. This user on a non-specific Friday night however is out at a pub and has a pint too, ends up at an after party in the middle of who-knows-where resulting in trying to get home, page 2 would be optimal for him Saturday morning.

As learning goes, the application must learn before making assumptions, it must also respond to change in routine. A user might change job or move. It's safe to say that if the user does not know where they are that page 2 should be displayed, if the application is confident that the user knows where he is going page 1 is the better choice.

Now my question. Which algorithm/method would be best suited for this task. Spending time on one just to realize that it was a complete waste is nothing but a total bummer. I've done supervised learning before however that won't cut it for obvious reasons.

Is this a (recurrent?) reinforcement learning or unsupervised learning problem and how should I tackle it?

Any comments on anything is welcome! I always like to better myself.

Nick Walker
  • 790
  • 6
  • 19
basickarl
  • 37,187
  • 64
  • 214
  • 335

0 Answers0