查看原文
其他

干货 | 全球顶级算法赛事Top5选手,跟你聊聊推荐系统领域的“战斗机”

朱麟 携程技术中心 2019-05-01

作者简介

 

朱麟,携程酒店研发部排序算法组资深算法工程师,主要负责携程酒店排序相关的AI项目,多年行业相关经验。博士毕业于中国科技大学,专注于推荐系统算法的应用和研发。


摘要


随着人工智能和大数据技术的飞速发展,推荐系统近年来非常流行,应用于各行各业。推荐的对象包括:电影、音乐、新闻、书籍、学术论文、搜索查询、分众分类、以及其他产品。

 

推荐系统产生推荐列表的方式通常有两种:协同过滤和基于内容的推荐,近年来很多基于这些方法的创新层出不穷。


携程酒店研发部排序推荐算法团队也在该领域的实践中作了很多有意义的探索,并在业务中得到应用。带着这些积累,我们在今年参加了一些关于推荐系统的国际知名数据挖掘竞赛,2018 ACM WSDM挑战赛和2018 ACM RecSys 挑战赛, 均取得Top5的好成绩。

 

以下将结合两次比赛的实际内容,谈谈我们所采用的算法策略和心得。

 

一、比赛简介

 

2018年ACM WSDM竞赛[1],作为网络数据挖掘顶级学术会议WSDM的一部分,由ACM和亚洲顶级的音乐流媒体服商KKBOX联合举办。 比赛目标是搭建一个推荐系统,通过预测在一定时间内用户再次点播历史收听过歌曲给用户进行推荐,竞赛使用的数据集由音乐流媒体平台KKBOX提供,包含以下信息:用户、歌曲的metadata,听歌活动与App的信息等等。

 

2018年ACM RecSys竞赛[2],作为推荐系统顶级会议RecSys的一部分,由ACM和国际知名音乐服务商Spotify联合举办。比赛的目标是搭建一个推荐系统,自动延续用户歌单。竞赛所用的数据集由Spotify提供,包含以下信息:用户、歌曲的元数据,,一百万个用户自建的歌单以及这些歌单的元数据。

 

二、方法创新

 

1、对于特征工程的创新


坊间常说:“数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已”。可见特征工程在机器学习过程占有非常重要的地位。

 

在ACM WSDM竞赛中,我们在特征工程上做了充分的探索 ,除了构造常规的类别和统计特征,值得一提的是我们挖掘出了蕴藏在数据中的时序信息。考虑到给定的数据集是按出现的时间顺序排序的,所以尽管没有给明显的时间戳,我们依然可以从两方面探索考虑到输入数据的时间序列特性的特征:

 

1.1 物品的“年龄”相关特征


不像通常推荐比赛的设定,物品集和用户集都被假设是固定的,在KKBOX提供的为期两年的数据集(2016和2017)中,新发的歌曲被不断地加入到音乐库,新的用户也不断地使用KKBOX,可以理解为新的物品和用户不断加入到已有推荐系统。


一方面,推荐近期新发歌曲是非常重要的,因为在实际中用户往往偏好新的内容;另一方面,考虑歌曲的“年龄”和用户的“年龄”对偏差纠正也是很重要的,这是因为大量的物品和用户在数据集中不是“均一”分布的。


基于这些观测,我们首先构造了一些特征来衡量对应的客户/歌曲/艺术家/作曲家/谱曲家在此次用户-歌曲听歌活动前的出现时间。相似地,我们也构造了一些特征,表示对应客户/歌曲/艺术家/作曲家/谱曲家在此次用户-歌曲听歌活动后出现频率。


1.2 “会话”特征


对于在线流系统的推荐任务而言,通常从基于会话的角度来考虑用户和系统/物品更为有益。会话是一组发生在给定时间间隔内的相互联系。


举个例子,一个用户可能在较短的时期内,会不时地听属于同一个艺术家或者同一个风格的音乐,识别这样的会话很有可能提高推荐准确率。


之前提到过,在此次竞赛中,听歌活动的时间戳并没有被直接给出,因此取而代之的是,我们贪心地将临近的属于同一个用户的听歌记录归为一个会话。


基于估计的会话,我们构造了三种特征,分别衡量用户在数据集中参与会话的数量,用户在一个会话中平均听歌数量,当前会话含有的歌曲数量。

 

在ACM RecSys中,我们考虑到出现在同一歌单的歌曲共现的性质,借用word2vec的思路,将歌单当作句子,将歌曲当作单词进行训练,得到每一首歌的embedding,并基于这些embedding计算歌曲间相似度作为特征。

 

2、对于模型的创新


在实际的推荐系统应用中,各种机器学习方法百家齐放。能够基于已有方法,针对不同的实际问题作出自己的创新,集百家所长,往往能带来更优异的结果。


2.1 解决冷启动问题


冷启动问题是协同过滤推荐算法中被广泛关注的一个经典问题,常常为实际推荐系统带来严重的挑战,它的存在严重影响了推荐系统的推荐质量。对于电子商务推荐系统,每天都有大量的新用户访问系统,每天都有相当数量的新项目添加到系统中冷启动。


在ACM WSDM竞赛中,我们亦遇到了同样的挑战。


在模型里,客户和歌曲都被表示成类别特征,所以此环境下的冷启动问题可以被理解成带有高基数的类别特征的“维度诅咒”:因为训练集的有限,不太可能观察到每个这样类别特征的可能的值,所以,如果学习模型过于依赖这些不大可靠的类别特征提供的信息,特征可能不能很好地推广到未来的测试集上。


在本次竞赛中,我们尝试通过借助去噪自编码和dropout的思想来改善这种问题,并且在没有高基数类别特征,像用户id,歌曲id,艺术家名字,作曲家,谱曲家等等的情况下重新训练模型。在这样去掉不可靠特征的情况下训练出的模型,和原模型融合后会得到更好的实验表现。

 

2.2 创新协同过滤


作为推荐系统经典方法的协同过滤可以分为基于用户和基于物品两种。


基于物品的协同过滤简单来说是利用某兴趣相投的群体的喜好来推荐用户感兴趣的信息,应用很广。但是,基于物品的协同过滤也存在缺点,往往会更倾向推荐热门的物品,使得一些小众的物品得不到重视而较少被推荐。

 

在2018 ACM RecSys Challenge中,我们针对基于物品的协同过滤进行一些改进,得到了较为不错的模型效果。


该竞赛的挑战目标,是开发出一个自动延续歌单系统。比赛提供的数据集可以简要概括成两部分,第一部分是百万歌单数据集(MPD), 包含一百万个由用户创建的歌单和相关的元数据,比如歌单的名字,描述,艺术家/专辑/歌曲的数量等多种统计信息。


第二部分是一万个未完成的歌单和相关元数据, 分别含有1-250首歌不等歌单。评测指标是对该一万个未完成的歌单,从比赛给定的一百万首歌曲预测出最可能在该歌单的500首歌曲。


我们推荐的核心思想是假设给歌单u自动延续(推荐),将和歌单每首歌曲平均相似度最高的歌曲选出,来自动延续歌单。如何衡量这些歌曲和歌单的相似度?


一个简单直接的方法是,计算歌曲和歌单每首歌曲平均相似度。在参考一些以前的工作后,我们将该计算分为了以下三步:


(a)  计算每首歌的特征向量


对于每首歌曲,我们都可以得到它的特征向量, 已知数据集中有一百万的歌单,那么代表每首歌的特征向量将为一百万维,每一维的计算可见以下公式:


                           

T(u) - 歌单u的歌曲集合

T(v) – 对于任何包含歌曲i的歌单的歌曲集合                      

- 超参,控制着长歌单的影响


(b)  计算歌曲i和歌曲j的相似度



       P(i) – 含有歌曲i的歌单集合

       P(j) – 含有歌曲j的歌单集合      

 - 超参,控制着热门歌曲的影响


(c)  歌曲i和歌单u的相似度


通过(a)和(b)计算得到歌曲与歌曲之间的相似度,对于一个未完成的歌单u,我们计算歌曲i和歌单u中每一首歌曲的相似度,加权平均分即为该歌曲与歌单u的相似度。



至此,我们实现了基于物品的协同过滤推荐,通过超参α和超参β得以控制当歌单较长以及物品过于热门的影响,但是该方法步骤(c)中的加权平均计算歌曲与歌单相似度过于平等得看待所有的特征,使得相对的特征重要性被忽略了只能得到次优解。


针对以上问题,我们提出判别式重新加权方法(Discriminative Reweighting)进一步改进。

 

2.3 判别式重新加权


我们采用的判别式重新加权算法主要借鉴了SLIM算法。


SLIM(Sparse Linear Model) [3],中文名是稀疏线性推荐算法,该方法基于物品相似度的推广形式, 以M表示评分矩阵,S表示相似度矩阵,在计算评分时作为对应物品的权重,优化目标即为使得M和MS差值最小,同时通过添加对权重的正则使得权重更加稀疏以此达到更好的模型推荐效果。


相似SLIM模型,对于以上平均看待权重而忽略特征重要性的问题,通过求解以下L2正则SVC问题,我们可以有效地学习到更多具有判别意义的权重,从而学得更精准的歌曲和歌单的相似度:



其中标签表示i是否属于T(u)。


2.4 判别式重排序与模型集成


如今推荐系统领域,乃至机器学习各领域,常常用多种不同类别的模型集成来完成推荐,比如Facebook利用XGBoost和LogisticRegression集成,得到的模型在点击率得以极大的提升。多模型集成不仅能充分挖掘数据特性,也能更好综合预测结果,提升模型表现。


在ACM RecSys挑战赛中,考虑到协同过滤方法仅仅依靠歌曲和歌曲,歌曲和歌单共同出现的频率来计算相似度,但还有其他数据,像歌曲名,歌单名等等的信息我们尚未使用,因此我们集成了原有的协同过滤模型和GDBT,将协同过滤做粗排,筛选出初步的候选集,然后通过元数据构造特征,与协同过滤计算的概率分特征一起,通过GDBT进一步作精排,得到最终的推荐结果。


在ACM WSDM Cup中,通过嵌入式模型,如Factorization Machine[4]或深度神经网络,将类别id嵌入低维度空间来表示潜在的偏好,这种方法能推广到先前未观测到的类别特征对,因此除了基于特征工程的分类模型-Gradient Descent Boosting Tree(GDBT),我们还采用了factorization machine来学习每个用户歌曲对的潜在因素,并基于观测到的似然值而排序给定的歌曲。

 

三、总结

 

在推荐系统领域,通过对数据集不断挖掘更为有效的特征,针对已有方法在特定问题上的创新,以及更充分有效挖掘数据特性的模型集成往往能带来更加优质的推荐,带来更好效益的模型,更充分发挥人工智能的优势去服务广大的消费者。

 

在携程的日常服务中,个性化的推荐算法以及不断提升的推荐质量,也将为旅行者带去更良好的消费体验,找到让每一位旅行者都满意的旅行产品。


(携程酒店研发部陈毅鸿,何博文对本文亦有贡献)

 

参考文献:


[1]  Y.Chen, X. Xie, S.-D. Lin, and A. Chiu, "WSDM Cup 2018: Music Recommendationand Churn Prediction," in WSDM,Marina Del Rey, CA, USA, 2018, pp. 8-9.

[2]  C.-W. Chen, P. Lamere, M. Schedl, and H.Zamani, "Recsys challenge 2018: automatic music playlistcontinuation," in RecSys, 2018,pp. 527-528.

[3]  X. Ning and G. Karypis, "Slim: Sparselinear methods for top-n recommender systems," in ICDM, 2011, pp. 497-506.

[4]  S. Rendle, "Factorization machines,"in ICDM, 2010, pp. 995-1000.


【推荐阅读】



 


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存