不过,聚类是一种比较弱的个性化推荐,因为这种方法的本质是识别用户组,并对这个组内的用户推荐相同的内容。
当我们有足够数据时,最好使用聚类作为第一步,来缩减协同过滤算法中相关邻居的选择范围。这个方法还能挺高复杂推荐系统的性能。
每个聚类都会根据其中用户的偏好,来分配一组典型的偏好。每个聚类中的用户,都会收到为这个聚类计算出的推荐内容。
深度学习
在过去的十年中,神经网络已经取得了巨大的飞跃。如今,神经网络已经得以广泛应用,并逐渐取代传统的机器学习方法。
接下来,我要介绍一下YouTube如何使用深度学习方法来做个性化推荐。
毫无疑问,由于体量庞大、动态库和各种观察不到的外部因素,为YouTube用户提供推荐内容是一项非常具有挑战性的任务。
根据Deep Neural Netorks for YouTube Remendations( sstaticgoogleusercontentmediaresearchgooglerupubsarchive45530pdf ),YouTube的推荐系统算法由两个神经网络组成:一个用于候选生成,一个用于排序。如果你没时间仔细研究论文,可以看看我们下面给出的简短总结。
以用户的浏览历史为输入,候选生成网络可以显着减小可推荐的视频数量,从庞大的库中选出一组最相关的视频。这样生成的候选视频与用户的相关性最高,然后我们会对用户评分进行预测。
这个网络的目标,只是通过协同过滤提供更广泛的个性化。
进行到这一步,我们得到一组规模更小但相关性更高的内容。我们的目标是仔细分析这些候选内容,以便做出最佳的选择。
这个任务由排序网络完成。
所谓排序就是根据视频描述数据和用户行为信息,使用设计好的目标函数为每个视频打分,得分最高的视频会呈献给用户。
通过这两步,我们可以从非常庞大的视频库中选择视频,并面向用户进行有针对性的推荐。这个方法还能让我们把其他来源的内容也容纳进来。
推荐任务是一个极端的多类分类问题。这个预测问题的实质,是基于用户(U)和语境(C),在给定的时间t精确地从库(V)中上百万的视频类(i)中,对特定的视频观看(Wt)情况进行分类。
建立推荐系统前该知道的要点
如果你有一个庞大的数据库,而且准备提供在线的推荐,最好把这个任务拆分成两个子问题:
- 选择Top N个候选;
- 排序。
如衡量推荐模型的质量?
除了标准质量指标之外,还有一些针对推荐问题的指标:比如说召回率与准确率(senikipediaorgikiInformation_retrievalPrecision_at_K)。还有一些其他的指标,见软件工程中的推荐系统一书第12章(ictsineduaupersonaljgrundypapersrsse2014pdf)。
如果你正在使用分类算法解决推荐问题,应该考虑生成负例样本。如果用户购买了推荐的商品,你应该将其添加为正例样本,而其他列为负例样本。
要从在线得分和离线得分两个方面考察算法质量。一个只基于历史数据的训练模型,可能会导致低水平的推荐,因为算法没办法与时俱进。
推荐阅读
个性化推荐在产品里都能用在哪呢?
量子位曾报道过知乎、Quora、Airbnb是如何使用机器学习技术的,推荐系统是其中的重头戏:
完
一则通知
量子位读者5群开放申请,对人工智能感兴趣的朋友,可以添加量子位小助手的qbitbot2,申请入群,一起研讨人工智能。
另外,量子位大咖云集的自动驾驶技术群,仅接纳研究自动驾驶相关领域的在校学生或一线工程师。申请方式:添加qbitbot2为好友,备注自动驾驶申请加入~招聘
量子位正在招募编辑记者等岗位,工作地点在中关村。相关细节,请在公众号对话界面,回复:招聘。