大悟读书网 > 经济管理 > 人工智能革命:历史、当下与未来 > 知人知面更知心 ——推荐系统

知人知面更知心 ——推荐系统

降维算法的应用开启了人工智能对推荐系统的改造。人工智能对推荐系统最深刻的变革,就是不再把推荐系统看作是独立的推荐结果的组合,而是整体的人机交互行为,通过引入时间维度来达到系统和用户的动态优化。

为了理解降维算法,我们还是举个关于打分的例子:如果有人在豆瓣上给《全球通史》打了5星,给《人类简史》和《枪炮、病菌与钢铁》打了4星,给《看见》打了3星,给《冰与火之歌》打了2星,给《幻城》打了1星,系统就会从中勾勒出这个人模糊的肖像:历史爱好者,喜欢读非虚构类作品,讨厌玄幻小说。读者读过的书可能成百上千,但他选书的标准完全可以用十个以内的特征来描述,降维算法的作用就是从千百本书中提取出这十个特征。通过与这些特征进行比对,推荐算法能够迅速确定这位读者是否会喜欢一本新书。这种更为一般性的呈现使得推荐算法能准确地发现有着相似但不同喜好的用户。

雅虎首页“今日模块”的推荐工作是较早采用强化学习的推荐系统之一,它最初使用的算法是对于每个页面请求,系统以较大的概率选择当前点击率最高的文章推送给用户,而以较小的概率在其他文章中随机选择一篇来推送。这种算法实现简单,但其推荐精度也有限。对这一算法的改进是对每个文章的点击率的估计及其置信区间同时建模,然后每次选择点击率的估计值与其标准差的和最大的那个文章。这个看起来很复杂的描述实质上就是对用户喜欢的文章和没看过的文章进行平衡,引导用户探索未知类别,进而开发新的关注点。这种算法已被证明对系统和用户的长期交互流程优化有显著效果,雅虎新闻和领英网站的广告系统都是基于这种算法实施推荐。在此基础上,深度学习和神经网络也被应用在了推荐系统的设计中,并取得了良好的效果。

随着机器学习的发展,这个问题的解决方案逐渐浮出水面——将物品的特征简单化、抽象化,将多数复杂的特征转换为少数一般的特征,这个过程被称为降维(Dimensionality Reduc-tion)。降维的概念来源于数学中的矩阵论,它能将一个复杂矩阵用稀疏的特征值表示,因而在通信理论与信号处理中得到了广泛应用,其思想也被借鉴到计算机科学与其他领域的应用之中。

在推荐系统上用功最深的企业之一是美国著名的在线流媒体公司Netflix——热播美剧《纸牌屋(Houseof Cards)》和《黑镜》第三季的制片方。2006年到2009年,Netflix斥资百万美元发起了Netflix Prize竞赛,绝对是推荐系统领域最具标志性的事件,这次比赛不仅为推荐系统领域的研究工作广纳贤才,也有效地打通了产学研之间的层层壁垒,使这项技术从学术圈的自说自话深入到商业界的核心腹地。

即便如此,对物品的协同也存在它的问题:死板。它能够发现喜欢同一样物品的人,却不能找出喜欢同一类物品的人。法国印象派大师克劳德·莫奈(Claude Monet)可谓“睡莲专业户”,其《睡莲》系列画作包含惊人的251幅作品!一群莫奈的拥趸很可能喜欢各不相同的睡莲,可协同推荐算法却识别不出他们的共同爱好。

相比之下,对物品的协同就靠谱得多。这种算法依据同一用户对不同物品的打分差异来生成物品之间的距离。豆瓣上给波兰导演克日什托夫·基耶洛夫斯基(Krzysztof Kielowski)打高分的用户很可能也喜欢希腊导演提奥多罗斯·安哲罗普洛斯(Theod-oros Angelopoulos)的作品,同时对迈克尔·贝(Michael Bay)或是詹姆斯·卡梅隆(James Cameron)的商业巨制嗤之以鼻。显然,两位欧洲导演的小众文艺片就处于同一个邻集之中。一对物品之间的距离通常是根据成百上千万的用户的评分计算得出,具有相对稳定的特点,因而推荐系统可以预先计算距离并更快地生成推荐结果。

图8-6 Netflix用户界面

协同算法可以分为对用户的协同和对物品的协同。用户协同计算的是用户之间的相似度:根据他们对同一物品的打分差异来计算他们之间的距离。如果两个豆瓣用户张三和李四都给电影《小时代》打了三星,说明他们的品位类似,对应一个较小的距离;如果一个打了五星一个打了一星,他们的距离就拉大了。距离相近的用户被划分在同一个邻集中,同一个邻集中的用户就具有较高的相关性。但这种用户关联策略的劣势在于难以有效地形成邻集:不同的豆瓣用户兴趣不同,可能根本没有交集;好不容易有个共同评分的电影,却是跟风叫好或是扔番茄的商业大片。这种邻集对于推荐系统来说就没有什么参考价值可言了。

当然,从比赛中受益最大的还是Netflix自身。Netflix新一代推荐系统的承载形式是“会员首页”,约三分之二的视频观看量都是从首页导入的。Netflix之所以敢于使用推荐系统来驱动首页,就是因为对自身推荐技术的高度自信。而这些技术,恰恰来源于Netflix Prize竞赛。

在现实世界里,我们是一个个有血有肉的真实的人,而在推荐系统中,我们是一个个有1有0的二进制的“人”——一串很长的数字。这串数字中存储着你点击的每个链接、你浏览的每个主题以及你消费的每件商品。多年以来,推荐系统正是通过有效地采集和分析这些数据来决定向你推送哪些产品或是服务。早期的推荐系统只根据对象用户的所有行为做出推荐,但随着计算机处理能力的进化和数据的爆炸式增长,协同过滤(Collaborative Filtering)给推荐系统带来了翻天覆地的变化。协同过滤将物品之间的关联性引入评价体系中,达到了更好的精确度。

Netflix推荐系统的核心是个性化视频打分,它是针对每个用户给出个性化推荐结果的基础——结合用户以往的观影数据,就可以通过降维得出观影特征,再根据这些特征完成个性化的推送。除了个性化打分之外,龙虎榜和正在流行也是重要的推荐选择。龙虎榜的作用是在个性化推送中进一步优中选优,正在流行则是借助近期趋势来预测用户的行为——在情人节期间推送几部浪漫的爱情片显然是不错的选择。而基于观看历史的推荐则应用了物物协同过滤:计算两部影片的相似度来决定推荐与否。这里的相似度可以从内容角度进行度量,也可以从行为角度进行度量。

在前文中提及,推荐系统正在蚕食我们思考的权利与愿望。它们根据我们的搜索关键词、浏览历史与交易记录来推测我们的喜好,进而推送我们可能愿意为之打开腰包的商品或服务。推荐系统的设计初衷是帮助在线零售商提高销售额,现在却变成了互联网领域竞相争夺的大蛋糕。互联网的飞速发展让数据成为价值的金矿,推荐系统正是借大数据的东风,凭借创新的算法从金矿里开采出实打实的真金白银。

Netflix对推荐系统的评价可谓精当:“推荐系统帮助Netflix赢得关键时刻:当一个会员访问Netflix时,Netflix希望能够帮助他在几秒钟之内就找到他感兴趣的影片,以免他去寻找别的乐子。”据估算,个性化推荐系统每年为Netflix节省的费用可达10亿美金,这正是人工智能所带来的商业福利。