13.4. 在线学习
本文最后更新于 2024年1月27日 下午
在线学习
在线学习(Online learning)可以针对于连续的数据流进行学习。
今天,许多大型网站或者许多大型网络公司,使用不同版本的在线学习机制算法,从大批的涌入又离开网站的用户身上进行学习。
## 梯度下降的在线学习
对于数据流,在线学习采用了类似于随机梯度下降/小批量梯度下降的方式进行学习。在线学习的更新方程为:
\[θ_j:=θ_j-α(h_θ(x)-y)x\]
和随机梯度下降/小批量梯度下降相同,在线学习的每一次参数迭代只会使用一个或者一小批样本\((x,y)\)。
与随机梯度下降/小批量梯度下降不同的是,在线学习舍弃了数据集的概念,样本是一次性的:在线学习机制将数据集转化为数据流——一旦样本被学习,这些样本将被舍弃并且永远都不会使用。新的样本将更新原有的样本\((x,y)\),因此在线学习始终学习的是最新的样本。
这样的更新机制在线学习可以变化地适应用户的偏好。算法可以针对用户的当前行为不断地更新模型以适应用户。
不过,在线学习要求一个源源不断拥有庞大数据量的数据流,倘若没有这么大的数据流,最好还是应用数据集的概念采用定期学习的模式。
案例:点击率预测问题(CTR problem)
假设一个在线商店,用户搜索关键词会自动推荐10件与关键词相关的商品。用户可能点击其中的一个链接查看(视作对这个商品感兴趣),也可能不会查看。
设商品的特征向量\(x\),它表示这个商品具有的一些关键词在各个维度的匹配程度。
设用户的点击为\(y\),\(y=1\)表示用户点击了这件商品的链接,\(y=0\)表示用户没有点击。
当用户访问网站时,会一次性得到10个样本。在线学习可以对用户点击某一个商品的概率\(p(y=1|x;θ)\)进行实时建模,进行连续的学习,模型会在用户点击时不断地更新以适应用户的取向。