论文读书笔记-collaborativefiltering with temporal dynamics



简介:这篇论文介绍了在时间动态性下的协同过滤算法。考虑一个顾客买商品的例子,随着顾客不断选择新的商品,顾客的行为模型会发生持续不断的改变。为了应对这种改变,通常的做法是使用时间窗口(一段时间内认为不变)或者不断衰减(越旧的信息权重越小)方法,但是这些方法都丢失了大量的数据实例,准确性很差,而这篇文章在协同过滤的基础上做了改进,提出了基于协同过滤的时间动态性算法。


下面是本文的一些要点:

  1. 建立时间动态性模型的一些难点

-需要考虑到新产品和服务的出现,这些改变会影响顾客的行为,比如过节期间行为会发生改变

-在单个用户层次上去判断时间的改变可用的数据较少,比如一个用户一个月才买一次东西;故需要从全局角度考虑时间的改变,一个网站上面所有用户在某个时间段内的购买情况

-原有的推荐系统对于用户行为没有一个时间动态性的变化模型,但是获取用户行为的时间变化性对于提高推荐的准确性有很大帮助


  1. 一些前提假设

m个用户,n个物品

用户用u,v这些字母表示,物品用i,j这些字母表示

t代表时间

评价rui(t)表示用户u在第t日对物品i的评价,r^ui(t)代表对于rui(t)的预测值

RMSE



  1. 三种方法

-instanceselection:抛弃那些对于系统当前状态无关的实例

-instanceweighting:依据实例间的相关性设定他们的权重

-ensemblelearning:根据之前的数据预测当前的结果,越接近当前的数据权重越大

但是以上三种方法仍然存在一些问题,我们想要做到的是下面几条:

-我们的模型不仅仅针对用户当前的行为,而是针对用户整个时间周期

-需要考虑多个改变因素,一些是基于用户的,一些是基于物品的

-需要建立一个单一框架,在更高层次上进行分析,而不是仅仅针对单个用户或物品

-我们并不需要预测未来较长一段时期的用户行为


4、协同过滤相关知识

根据协同过滤,每个用户对应一个向量pu,每个物品对应一个向量qi,预测值为这两个向量乘积。但是这种方法忽略了用户之间,物品之间,用户与物品之间的关系,改进的方法是加入基准评价值,bui=mu+bu+bimu是所有评价的均值,bu为用户偏差,bi为物品偏差,预测值如下:




5、考虑时间变化的协同过滤(baselinepredictor

考虑两个变化性的因素:每个物品的受欢迎程度会随着时间变化而改变;用户也会改变他们的评价标准。也就意味着bui会随着时间变化:

bui(t)=mu+bu(t)+bi(t)

bui(t)表明第t天用户u对于物品i的基准评价

bu(t)bi(t)是随着时间改变的具体函数值

在每个时间段内使用一个不同的值,但是对时间分割需要做一个权衡,分得过细该时间段内的数据点就会不够,分得太粗精确度降低。

-对于物品:bi(t)=bi+bi_Bin(t),Bin(t)为时间对应的函数

-对于用户:假设某个用户的评分均值为tu,变化率dev_u(t)=sign(t-tu)|t-tu|^beita|t-tu|表示时间距离,bu(t)=bu+alpha_u*dev_u(t)

另一种方法是使用样条函数,假设用户有ku次评分,{t1...t_ku}bu(t)可以写成:



为了更加准确,再添加一个参数用来表示用户每天的变化情况:

bu(t)=bu+alpha_u*dev_u(t)+bu,t



于是bui(t)=mu+bu+alpha_u*dev_u(t)+bu,t+bi+bi_Bin(t)

目标函数如下:



如果再考虑一段时期内的变化,加入新的参数:

bi(t)=bi+bi_Bin(t)+bi_period(t)

bu(t)=bu+alpha_u*dev_u(t)+bu,t+bu_period(t)



如果不同的用户有不同评价度:

bui(t)=mu+bu+alpha_u*dev_u(t)+bu,t+(bi+bi_Bin(t))*cu(t)

cu(t)是一个和时间相关的度量向量。



6、考虑时间变化的协同过滤(factormodel

因为用户的喜好会随着时间变化,需要在用户偏好中考虑时间因素

pu,k(t)=pu,k+alpha_u,k*dev_u(t)+pu,k,tk



7、相邻模型的时间动态性

相邻模型不同于上面介绍的矩阵分解模型,不考虑时间动态性的模型如下:



wij,cij衡量的是物品i和物品j的相关性,知道物品j的评分信息去预测物品i的评分。考虑时间后:



目标函数如下:




  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值