强化学习有一些决策过程。
例如在横幅广告这个任务中,网站就是它的 agent ,是可以采取一些行动的。
这个网站可以观察到用户们所浏览的网页,并且能够采取一个行动。
它的 action 就是,挑选一个横幅,然后运行网页时就展示这个横幅广告。
最后代理会拿到 feedback,就是这个用户是否点击了这个横幅广告。
其他的例子,例如药物治疗方面。
病人去看医生,医生就是这个代理,医生观察一些症状,并给出一个治疗方案,然后会得到一个反馈,病人是否在治疗之后感觉好一些了等等。
再比如开个网店卖书,你有了一定的用户基础的,他们有一些个人数据,
你想要卖尽可能多的书给他们,你也想让他们满意,这样可以让他们想买书,
这个问题中,如果想优化收入和用户满意度,要如何定义 agent 呢?
agent 会包含些什么?
可以采取一些什么行动?
会得到什么样的反馈?
想要优化的是什么?
可以include的:用户的很多feature,他的兴趣,年龄,性别,之前买过的书,是否喜欢这些书,如果可能的话,还可以包括他的社交账号,
action可以是:当他访问你的页面时,你要向用户推荐特定的书
feedback可以是:你的用户是否喜欢这本书,或者你拿到了多少收入
这个问题通常叫做:多臂强盗问题 (multi armed bandit problem),名字来源于赌博
你可以假设,你并没有尝试给每个用户都推荐最佳的横幅广告,相当于是一场赌博,
这种情况下,展示横幅广告就好比拉动老虎机的控制杆,
这时你希望找到那个能给你带来最大回报的老虎机,或者找到用什么样的strategy来展示横幅可以让用户点击或者购买进而获得最高利润,
同理在推荐系统中也是如此,展示横幅并不一定要直接获得收入,你可以推荐一些电影,那么他可能就会变得开心,整体的幸福值就提升。
而且你的 agent 是会影响环境的,在线广告这个例子中,你采取的任何一种行为都会影响你的用户基础,
当你想要给一些用户展示横幅,但用户在点击后并不满意,虽然开始时可能会发现点击率提高了,但之后你会失去你的用户基础,因为他们不满意你的广告活动。所以有时可以获得一些粉丝甚至忠粉,也可能由于一些激进的广告失去一些粉丝,进而收入也变少。