推荐无处不在

推荐无处不在

解决方案goocz2025-01-10 14:02:5219A+A-

(本文作者:Thore Graepel,微软首席研究员)

我们在生活中常常需要好的建议。当你在寻找符合自己口味的书或者电影,甚至是在Facebook或是LinkedIn上寻找兴趣相似的人时,自动推荐系统都能帮到你。

在此之前,推荐系统大多是在大型互联网公司中使用,而微软即将发布的云计算机器学习平台(Azure ML), 将使得更多的个人和公司用上自动推荐系统,并使他们的客户从中受益。

推荐系统是如何工作的

一个推荐系统通常由两个部分构成:用户和产品。用户就是你希望给出建议的对象;产品则是指你希望推荐给用户的东西,如电影,书籍,网页,菜品,甚至是其他用户。

现在让我们举个具体的例子。假设我们希望根据用户群体对于餐厅的评分,以5分作为满分,来给某个用户推荐一个餐厅。简单来说,这项任务包含了两个步骤:

  • 预测这个用户对于每个餐厅的评分。
  • 从所有符合条件的餐厅中,选取该用户评分最高的餐厅进行推荐。

而问题的关键在于,对于该用户还没评过分的餐厅,我们该怎样去预测呢?机器学习就在这里派上用场了。

如何预测评分

为了建立一个机器学习的模型去预测某个用户对某产品的评分,我们首先需要搜集原始数据(即用户,产品以及对应的评价)。这就像是在建立一个庞大的矩阵,横轴为产品,纵轴为用户,矩阵的单元格则代表用户对产品的评价。结果如下图所示:

由于大部分用户只会对一小部分的餐厅做出评价,这样的矩阵将是一个稀疏矩阵(sparse matrix),即有很多单元格值为空的矩阵。根据这些数据,Azure ML用贝叶斯推荐系统(Bayesian RS)训练出一个模型,预测某个用户对某餐厅可能给出的评分。由于用户对于餐厅的评价不会仅限于评分,为了做出更准确的推荐,还有一些信息也不容忽视,如某餐厅的用户浏览量,订单数以及用户在该页面停留的时间。

这个推荐系统究竟是如何工作的呢?原来这个系统将用户和产品整合到一个潜在特质空间(latent trait space)中。如果用户(图中的蓝点)和产品(图中的红点)所代表的向量在一条线上,代表用户给该产品好评;反之,代表用户给出差评。在潜在特质空间中,相似的用户和相似的产品会被放在相近的地方,这样一来,就能推断出某一用户对某产品的可能评价。为了方便说明,我们只给出了二维的潜在特质空间图,而在实际运作时,我们则会将维数提升至20~100。值得说明的是,有时我们能从图中发现一些有意义的轴线,即所谓的特质。以下图为例,从上到下,用户群体从大人至小孩过渡,而从左到右,电影类别从主流到小众过渡。

对于新用户和新产品的处理

对于推荐系统,一个重要问题在于应对“空手起家”的情况。即新用户做出的评价太少,新产品被评价的次数也很少,这将导致预测不准。为了解决这个问题,除了ID以外,Azure ML的推荐系统还为用户和产品构建了一个初始特征向量。对于用户而言,如年龄,地理位置这样的个人信息都可以考虑在内;对于产品,以电影为例,就可以考虑影片类型,演员,导演,发行年份等信息。通过用户和产品初始数据上的相似性,我们的推荐系统就可以建立用户和产品间的联系。

了解更多

如果你对推荐系统中的数学理论感兴趣,可以参考论文Matchbox: Large Scale Bayesian Recommendations。

Azure ML即将发布,如果你很想建立自己的推荐系统,到时候可以自己尝试一番。下图所示的Azure ML Studio提供了一个推荐系统的模块,由功能强大的网页界面支持,如拖放文件等。它将使你的工作更加轻松。

事实上,Azure ML的推荐系统整合了两种最有效的预测模型——基于内容的过滤和协同过滤。通过将这个系统推广,我们希望自动推荐系统能在更多场合中得到应用,并让用户时刻受益。

点击这里复制本文地址 以上内容由goocz整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!

果子教程网 © All Rights Reserved.  蜀ICP备2024111239号-5