推荐系统如何给新用户提问题

简单地归类下,有两种方法:采用问问题的方式 和 利用已有的信息(比如用户配置)。本文先只讨论第一种方法。


推荐系统冷启动问题有个很“简单”的解决方案:给几个物品让用户评分,而且鉴于用户不喜欢一次评很多东西,通常只给很少的物品,比如5-10个。但这个问题其实不简单:如何选择这几个物品呢?随机给用户分配要评分的物品太不靠谱了。一个简单有效的方法是拿整个系统内最流行的物品给用户评分。就满意度来说,这样做足够了。因为流行的物品大部分人都喜欢。但是,从实现个性化推荐的角度来说,推荐系统不能从用户对流行物品的评分中获取多少用户偏好信息(因为直观上,流行物品用户基本都会喜欢)。因此,理想的启动query(给用户的问题),应该是后一个问题根据前一个问题的回答相应调整的,以尽可能多地获取用户的偏好信息。


所以上述情景很适合Active Learning。Active Learning是什么?其实它要解决的问题就是如何花最小的代价得到最大的利益。就像玩老虎机(假想一回),一次花1块钱。但你身上只带了5块,所以你热衷的问题是如何用这5块钱获得最大的利益(不考虑赚来的钱继续用来赌博)。假设现在有5台老虎机(A,B,C…),每台老虎机会给出不同的回报。你制定了一个策略:从A到E依次投硬币,看哪个吐出来的钱多。试到C机器,你发现它一次能吐出10块钱,所以你很开心地把剩下2两个硬币也都投了进去。于是,你赚了30块。但这时你才发现D机器一次能回报100元…  好了,故事结束。 这类叫做“Exploration”and “Exploitation”两难问题:是守住当前利益,还是花代价探索潜在的更高利益。Active Learning就是综合考虑uncertainty和exploitation,以做出一系列不错的决定。


看到这里,是不是觉得“给用户query”这个问题就是Exploration & Exploitation问题呢?于是[21]就提出了一种在MF模型中引入active learning的方案。回顾下,这里MF的目标是学到新用户对应的特征向量。我们看[21]如何做Exploitation和Exploration。①Exploration:作者期望最开始的几个物品评分对新用户的特征向量产生较大的影响,即探索不同的用户特征向量。鉴于gradient和预测error之间的关系,他选择模型预测的最小评分的物品给用户打分。②Exploitation:作者期望在新用户回答完几个问题之后,该用户的特征向量趋向于稳定。即守住当前的用户特征向量。于是,之后query的目的是不让用户的特征向量有较大改动。因此,他提出用具有最小Euclidean norm的物品提问。


不过这里有个问题:就算一个算法能很快地从query中学到新用户的特征向量表示,但若这个新用户无法回答这些query,那系统也是得不到任何反馈的[20]。因此,[20]提出在矩阵分解模型得到的潜语义空间中,寻找与当前用户u最相似的K个用户。然后拿这K个用户间最流行的物品让u评分。局限性,[20]自己也说了,它意在解决用户无法评分的情况,而没有考虑Exploration & Exploitation。这是作者实验的结果图(只有用户能回答query时,RMSE才会下降):

from [1]


而且可以看到,前5个query里,作者提出的方法(Proposed)与只推荐最流行物品方法(Most-Pop)的performance是完全一样的。直观地想,除非这K个最相似用户很小众且志趣相投,不然他们之间最流行的物品跟全局最流行物品是一样的。


Last but not least,[20]作者没有考虑寻找“K个最相似的用户和这K个用户间最流行的物品”的时间复杂度。按作者想法,新用户每回答一个问题,就要更新一次他的邻域。在用户数量很大的情况下(再加上网络延时),用户要等上好久才能进行第二次打分,不够实时。


总结:很有趣,结论恰恰跟直觉相反,将流行物品用于新用户提问的做法已经很不错了。


参考文献:

[20] Exploiting the Characteristics of Matrix Factorization for Active Learning in Recommender Systems
[21] Non-myopic Active Learning for Recommender Systems Based on Matrix Factorization

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值