欢迎来到云栖网

免费注册

你对推荐算法的认知,也许都是错的

云栖网 2018-01-16 16:29 来源:中国网

云栖网:前几天写过一篇「哪些职业容易被机器算法取代」,很多人不以为然:我天天上网,怎么没感到机器算法呢?真那么智能,注册个账户又是密码又是安全问题两步验证,怎么不搞智能一点呢?

现阶段的机器算法,并不是指具备高等智能的机器人,也不是有人类情感的仿生人,不过算法确实在我们的生活中发挥着各种各样的作用。比如你打开浏览器在网上闲逛的时候,你会发现某个网站的某个广告会出现一个你心仪品牌的羽毛球鞋的图片,点进去之后你发现可以直接购买这款鞋子,出现这样的推荐是因为你前几天在这个网站上买了一只同品牌的羽毛球拍。为了学习人工智能,你买了一本《深度学习》,在付款的时候,你会发现页面下方会冒出了几本《机器学习实战》《Python机器学习》的书,你忍不住又买了一本……

这就是算法的力量,确切的说,是推荐算法在起作用。

随着信息技术和互联网的发展,人们逐渐从信息匮乏的盲区走入了信息过载(informationoverload)的时代。以推荐算法为核心技术的推荐系统凭借其个性化推荐和有效降低信息噪音的特点开始被广泛使用,比如国外的Google、Facebook和国内的今日头条。

不过,就像谈到程序员和工程师就会想到修电脑的一样,很多人,尤其是非IT领域从业者,对算法的理解游走在「算数」与「魔法」两个边缘,有很大的认知误区。下面我主要以内容推荐领域的今日头条和商品推荐领域的亚马逊为例,跟大家聊聊推荐算法,帮助读者更好的理解这个时代的互联网生活。

误区一:推荐算法是根据用户点击率来推荐

这可能算是对算法最大的误解之一了。

我们经常说,推荐算法实现了个性化推荐效果,每个人看到的东西都是不一样的。这个说法忽略了一个重要的事实:大多数人喜欢的东西实际上高度类似,比如最火的流行歌曲、最新的明星八卦。

多年前今日头条出现,喊出了你感兴趣的才是头条。门户网站之所以觉得很平常没有跟进,也是陷入了算法等于点击的陷阱——按照热度排新闻,是各大门户网站早就有的功能,有什么新鲜的呢?

真正能挖掘长尾的个性化推荐,其实是反点击的,否则很难实现个性化的需求挖掘。系统需要跟进更多的用户信息维度和多种算法模型来发现和挖掘长尾需求。《长尾理论》曾经举过一个著名的例子。1988年,乔·辛普森写了一本登山类的书籍《触及巅峰》,但销量一直很普通。10年后,另一本讲述登山灾难的书《进入稀薄空气》引起了美国出版业的轰动。亚马逊发现有读者在评价《进入稀薄空气》时提到了《触及巅峰》,同时给出了高评价,于是将《触及巅峰》推荐给了《进入稀薄空气》的深度读者。很快,《触及巅峰》在经过十年的惨淡销量后,获得了巨大的成功。

实际上,亚马逊做的事情就是算法推荐现在做的事。推荐过程不仅要考虑用户的阅读轨迹,同时还要考虑用户的性别,年龄,甚至手机机型等信息,同时还要综合考虑新闻的时效性、以及地理位置等信息对内容进行相应推荐。而如果只看点击(销量),《触及巅峰》可能永远也不会获得推荐。

误区二:冰箱都买完了还推荐冰箱,点了不喜欢还推荐,算法一点都不聪明

假如你的微信只有一个好友联系人,会觉得朋友圈好玩吗?

朋友圈需要更多的好友,算法推荐也需要更多的数据。对新用户来说,一个系统或者平台可以推荐的内容是天文数字。以淘宝为例,2013年的时候,淘宝在线商品数就超过了8亿,8亿个候选,推哪一个?

这时候,点击或者浏览过的商品/文章,显然权重是最高的。对直接销售物品的电商来说更是如此,所以无论是国外的亚马逊还是国内的淘宝、京东,实践下来,当前浏览内容都是最重要的推荐因素。

而且,买过冰箱推荐冰箱,也未必是算法笨,这可能只是一个简单的策略问题——你买了冰箱,周围的朋友可能会咨询你冰箱的问题;如果你看到了更喜欢的新款冰箱,很可能在退货时间内选择了退了原来商家的冰箱,买个新冰箱。并且这个策略很可能造成最后的销售数据的极大提升。

对相关新闻点击「不敢兴趣」也类似。当你第一次对奥巴马演讲点击「不感兴趣」时,系统不知道你是对奥巴马不感兴趣还是对演讲不感兴趣,或者单纯不喜欢这次的演讲主题,所以反而会继续给你推荐相关的话题,从整体数据来看,这样的推荐策略有时候是更优的。

当然,个性化推荐为了防止过渡拟合出现,会根据读者的阅读纪录通过严谨的数学理论分析计算,推测出同类用户偏好,依兴趣标签的关联程度,推测出同类用户其他偏好,并进行「联想式」的推荐。比如当机器发现阅读「总统大选」相关信息的用户群体中,有很大部分人都在同时关注「股票」信息,那么机器就会把「股票」信息推荐给那部分关注「总统大选」但尚未关注「股票」信息的人,而不会单一推荐「总统大选」的信息。

误区三:推荐算法会导致「信息茧房」

有一种论调是,由于算法只给你推送你喜欢的内容,从而造成了信息茧房。

展开来说,这个论调包括两层,一是大家只关心自己的小世界,看不到更重要、更有意义的公共事件。二是算法越来越懂你,你喜欢特朗普,就只给你推荐特朗普好的新闻。最终的结果,造成了「信息茧房」和偏食。

这其实是不成立的。在实际情况中,算法很难实现「信息茧房」。公共事件之所以成为公共事业,是因为其公共性,这决定了其天然具有穿透性,所有算法都会对此类事件赋予极高的权重,否则这将违反算法准确性的初衷。

其次,关于态度倾向。因为每个人可能感兴趣的文章非常多,用专业话就是数据非常稀疏,所以对算法来说,正向情绪和负向情绪,都是对某一个话题的正相关,这种相关性本身大于情绪。这句话翻译过来就是,无论你讨厌特朗普还是喜欢特朗普,在数据意义上的表现,都是对特朗普这个话题高度相关的。对于算法来说,正常情况下,所有关于特朗普的重要内容,都会被优先推荐给你。

从哲学思辨的角度来看,「信息茧房」或许有其意义,但从实际操作中,不可能出现这样的极端情况。另外,互联网时代,由于信息的极大丰富,任何选择都会对信息本身进行过滤和筛选。你的微博、朋友圈也是「信息茧房」——因为你看到的都是朋友们关心的。

误区四:推荐算法技术含量不高按照算法模型拿Cookie信息套一下就行

首先,严格来说,算法是解决问题的一个过程,包括特定输入与特定输出。我们讲的数学公式只是算法的理论基础,无论是推荐算法还是深度学习网络不仅仅需要理论基础,也就是公式,还要有相应的数学模型实现,并且这个实现过程是动态的,需要不断调整的。

实际上算法的自我修正和学习是非常重要的,比如阿尔法狗就是不断的和人类对弈来优化自身模型来提高算法准确性。推荐算法也不例外,个性化推荐会随着用户的阅读轨迹、用户的行为记录进行反馈优化,逐步提高其准确性。公开资料显示,今日头条每个星期都会对算法模型进行一些优化和调整,近一年内今日头条的算法进行了4次比较大的模型迭代。亚马逊在过去二十年间也对推荐系统进行了无数次改进和优化,才有今天非常精准的推荐结果。

PC时代的推荐非常原始,无非是拿浏览器里的Cookie数据进行关键词匹配。很多人会觉得,现在的算法不也这样么,无非是多了一些用户年龄属性,性别属性,偏好属性,然后套入公式,性别*0.3+年龄*0.5+偏好*0.2,再加上一些地理位置等属性,就可以进行推荐了。

实际上,这大概是二十年前推荐1.0时代的做法。如今推荐系统建立、使用和优化是一个非常复杂的过程。比如推荐系统的建立方式就包括基于用户、基于关联规则和基于模型的推荐。现在做的好的推荐系统都不会只采用某一种推荐的机制和策略,往往是结合多种推荐方法,以达到更好的推荐效果。

误区五:推荐算法发展的很快,未来可以洞察人性,无所不能

推荐算法的出现提高了信息分发效率,很好的解决了信息过载的问题。尽管个性化推荐需要用到一定的用户特征,但都是以公开特征和定向内容为主,很难全面的刻画出一个人,了解人性更是谈何容易。真正做到了解人性,就需要算法比你还了解你自己,以现在的科技水平,算法想要达到科幻小说里的洞悉人性是不可能的。

更重要的是,任何算法都会有反例。简单说,如果一个分类算法单纯按照头发长短区分男女,有些男生头发比较长就会出现分类错误。作为新技术,机器推荐还有不完美的地方,仍然需优化和改进,这也是众多科学家努力的方向。当然,从比例上看优秀的算法肯定对绝大多数的案例进行正确分类,并有效的推荐给用户。

误区六:算法都是公开的,竞争壁垒不高

首先,数据是非常重要的壁垒。真正应用到工业的推荐系统需要大量数据进行建模计算的。并非简单的少量的数据即可,一般情况下需要上亿的数据和上亿的属性特征进行推荐,没有数据只有理论基础都是纸上谈兵。

因此,如果想要做出一套好的推荐系统模型,需要在大数据的基础上建立非常庞大和成熟的工程师团队。Google、微软聘用了大量的高端人才进行推荐算法优化,无非是针对一些特定的知识点做专门的FeatureEngineering,国内的今日头条也有近半数的员工都是技术工程师。

一些算法可能会在推荐算法的相关比赛中取得非常好的结果,但并不是说这就是一个最优的算法模型。很可能是机器把样本数据的所有特征都学习到了,获得了过多的局部特征和假特征,形成过拟合。当你用它识别新的数据样本的时就会发现,推荐准确率有可能非常低。

算法模型必须经过大量数据的学习和演化,没有任何一种机器模型可以被当做权威规则来使用。算法的学习和演化本身也是一种壁垒。换句话说,哪怕张一鸣自己离开今日头条,重新做一套推荐算法,也无法达到现在今日头条推荐算法的水平。

如果你是一位工程师,如果你读到了这里,还会觉得数据、算法和数学不重要嘛?不说了,我去学习算法去了。