该应用程序源于公共交通。用户打开应用程序并查看特定站点的巴士发车时间(第 1 页)或使用旅程计划器计划从位置 A 到 B 的旅程(第 2 页)。两个独立的页面,两个独立的功能。
第 1 页可以说用户对路线很熟悉,因为他们只需要知道出发地,第 2 页反之,他们不知道路线,需要行程规划师来协助他们。
我正在尝试制作一个应用程序,根据特定变量(这将构成一个状态)向用户显示其中一个页面。应用程序向用户显示的页面取决于给定用户行为对那些特定状态的先前奖励;用户将要么 1) 停留在第一个显示的页面上,这将导致 + 奖励或 2) 导航到另一个页面,这将导致 - 奖励。
简单来说,我想在用户进入应用程序时向用户显示正确的页面,这样用户就不必自己导航到那里。
我可以使用的功能包括以下内容:
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
使用此集合的示例如下:
用户进入应用程序,应用程序显示第 1 页(默认页面)。用户停留在页面上,给予状态奖励。
{
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
}
由于大多数通勤者有 7-4 份工作,这是非常例行的。周一至周五,用户通常每天早上乘公共汽车上班,然后回到家中。他知道他的路线,因此第 1 页最适合显示。这位用户在一个非特定的周五晚上在酒吧外出,也喝了一品脱,最后在谁知道的中间参加了一个派对,导致试图回家,第 2 页对他来说是最佳选择星期六早上。
随着学习的进行,应用程序必须在做出假设之前进行学习,它还必须响应常规的变化。用户可能会换工作或搬家。可以肯定地说,如果用户不知道他们在哪里,那么应该显示第 2 页,如果应用程序确信用户知道他要去哪里,第 1 页是更好的选择。
现在我的问题。哪种算法/方法最适合这项任务。花时间在一个人身上只是为了意识到这完全是一种浪费,这只不过是一种无赖。我之前做过监督学习,但是由于显而易见的原因,这不会削减它。
这是一个(经常出现的?)强化学习或无监督学习问题,我应该如何解决它?
欢迎对任何事情发表评论!我总是喜欢让自己变得更好。