LinUCB算法
回到推荐列表的场景,推荐系统为用户推荐物品。user和item都可以用一系列特征表示。用户特征包括用户的统计历史行为、人口学属性信息;物品特征包括描述信息、类别信息等等。在这种场景下,探索和利用也必须是个体用户级别上实施,因为不同用户看到相同的物品的反馈差异较大。
LinUCB算法是一种基于上下文特征(用户特征、物品特征)的UCB算法,基于特征进行探索和利用。该算法结合上下文特征,选择给用户的推荐物品,同时利用用户反馈及时修正选择策略,以达到最大化收益(提升点击率)的目标。
使用互斥线性模型的LinUCB
LinUCB算法假设推荐item的每次展现收益(是否点击)是和上下文特征成线性关系的,即:
E[rt,a|xt,a]=xTt,aθ∗a
其中 xt,a 表示用户特征和物品特征的合集, rt,a 表示第t次尝试的收益,a表示item, θ∗a 表示物品a的位置系数向量。可以看出各个item的模型参数是相互独立的(互斥)。
设 Da (d*m)表示为m个训练上下文, ca 表示每个上下文的实际收益,对训练数据 (Da,ca) 使用岭回归训练出的物品a的参数为:
θ̂ a=(DTaDa+Id)−1∗DTa∗ca
其中 Id 表示d*d的单位矩阵。其中在置信度 1−δ 下,模型收益与期望收益满足:
∣∣xTt,aθ̂ a−E[rt,a|xt,a]∣