论文部分内容阅读
随着互联网技术的高速发展,网络上的信息资源纷繁复杂并呈现爆炸式增长的趋势。推荐系统(Recommendation System,RS)由于具有信息过滤的特点,得到了各领域学者的不断研究。传统的推荐算法对用户偏好的挖掘主要通过分析用户的历史性,在项目候选池与用户池相对静止的场景下能够取得优秀的效果。目前,大量的推荐行为都是通过实时在线的方式完成的,这就要求推荐系统能够及时对用户反馈进行响应,并在一段时间做出连续推荐。传统推荐算法对这种在线环境的动态性难以适应,从而导致了“探索-利用”问题。多臂赌博机(Muit-Arm Bandit,MAB)能够动态处理数据,使用连续的反馈信息不断更新策略,很好地处理“探索-利用”的平衡问题。因此,本文将推荐问题建模为MAB问题,赌博机中的臂对应于要推荐的项目,奖励对应于用户是否点击了推荐的项目。虽然MAB具有优秀的理论支持和应用效果,但现存基于MAB的推荐算法仍具有一定的局限性。其一,每次推荐时仅推荐一个项目,这不符合日常生活中的推荐形式。第二,推荐的项目仅考虑其准确性,忽略了其他评测指标。本文为解决现存基于MAB推荐算法的这两个局限性,提出了基于排名多臂赌博机的推荐算法,试图在一个算法中同时解决这两个问题。1.针对传统MAB算法在每次推荐时仅推荐一个项目的问题,将排名多臂赌博机(Ranked Bandits)引入到算法设计中。Ranked Bandits算法将每个排名位置对应一个独立的实例化的MAB算法。2.无论是传统的MAB还是Ranked Bandits算法,其核心思想都是优化臂的选择,即仅关注推荐的准确性,忽略了其他指标。一个好的推荐系统除了推荐的准确性外,还需要关注其他评测指标,如多样性、新颖性等。因此,本文在引入Ranked Bandits算法的基础上,将算法的设计分成了四个子模块:标量化方法、指标选择、加权方案、MAB算法选择。本文选择了线性的加权求和法为准确性、多样性与新颖性三个指标进行加权,并根据.不同的情况,从用户与排名两个角度对这三个指标设置不同加权方案。值得注意的是,原则上任何MAB算法实例化后都能适用于本文提出的算法,但不同的MAB算法选择对算法的性能有所影响。因此为提高整体算法的性能,本文对现存的CONLINBA算法进行了改进,引入深度学习模型——堆栈降噪自动编码器(SDAE)代替LDA算法来获取项目特征,生成了新的实例化算法。最后,在两个公开的数据集Last.fm与Delicious上,对本文提出的基于排名多臂赌博机的推荐算法进行实验验证。实验结果表明,引入深度学习模型SDAE后生成的实例化算法在一定程度上优于LinUCB、MFLinUCB与CONLINBA算法,体现了 SDAE算法获取特征的优势;基于排名多臂赌博机的推荐算法在一定程度上优于仅关注准确性的Ranked Bandits算法,说明了同时考虑多个指标的算法对推荐性能产生了积极作用,符合对本文算法设计的期望。