`

推荐系统的那点事

阅读更多

推荐系统的误区

回想起来,我也算是国内接触推荐系统较早的人之一了,最近和人聊天,觉得不少人对推荐系统有所误解,以为需要多么高大上的算法才能搭建起来的,我只想说我经常说的那句话【不是这样的】,所以有了这篇文章。

第一次接触【推荐系统】是在两年前在某高校的互联网信息处理实验室的时候,那时候,【机器学习】和【大数据】都是新概念,但是差不多半年后,【大数据】的概念就开始风靡全球了,到现在已经被爆炒得面目全非。

那年还因此买了一本项亮的书《推荐系统实践》,那本书和现在的很多热门书籍一样,都是跟着概念热起来的。 虽然有一些作者自己的实战经验在里面,但是总体上来说并没有太多值得重复翻开的地方。

几乎所有宣扬【推荐系统】的人,都要拿【啤酒和尿布】,【亚马逊推荐占营收20%】之类的经典例子来说力证推荐系统的牛逼之处。到处宣扬【推荐系统】插上【机器学习】等算法的翅膀,就能让电子商务变得精准无比,能智能的猜出用户想买的东西。

殊不知,其实这两个例子和所谓的【算法】其实关系不大。

1. 啤酒和尿布

首先是【啤酒和尿布】,超市的人员发现买啤酒的男人容易顺手买尿布。这其实是一种数据分析,是根据数据统计加上人工分析得出,是一种以经验来改善销售的行为。和【机器学习】【数据挖掘】等算法的关系不大。 刚接触【推荐系统】的时候,【协同过滤算法】大热, 我也曾经迷恋得研究过该算法,以为发现了什么宝贝一样。但是实际上,在工程中【协同过滤】出来的效果往往惨不忍睹,所谓的【算法工程师】每天能做的就是在那调整【协同过滤】算法的相关参数,然后看看第二天的点击率有没有上升。然后调整到最后你会发现,牛逼哄哄的【协同过滤】其实还不如简简单单的【看了又看】效果来的好,虽然协同过滤算法本质上也是一种【看了又看】的思想。

2. 亚马逊的推荐系统

亚马逊的推荐系统占了营收比,我记得是20%,不知道现在上升了还是下降了。这个说辞会让很多人误以为只要你搞好了推荐系统,你的营收就能上升20%以上一样。其实不然,对于亚马逊来说,为什么推荐能起到这么高的销量,一个很重要的原因在于,【亚马逊的首页点击率高的部分位置划分给了推荐系统的】,从广告学上讲,广告位置的好坏极大的决定了广告的销量。这个很容易理解,假设你的产品的广告牌能挂上天 安门城楼的话,你觉得你还需要担心该产品的销量吗?

当然不可否定的是亚马逊的推荐系统应该是很牛逼的,但是这并不说明他们采用的【推荐算法】非常牛逼。推荐系统我认为其实和搜索系统并无太大差异,我一直认为推荐系统其实只是一个个性化的搜索引擎。之前在【秘密】上很火的有个爆料是:“360搜索的Rank刚开始就是用【机器学习】的算法去做,屎一样的效果,是我把百度的基于规则的算法偷过去之后才变好的。” ,这个爆料出来不少人讽刺【基于规则】,觉得这是在黑百度的算法。 其实不是这样的,记得当时阿里搜索挖了一个谷歌搜索的员工,该人在阿里分享的时候就说过:【谷歌的搜索效果比别人好的原因就是规则库牛逼,关于算法使用的都是成熟的人尽皆知的算法,并没什么新奇酷的算法】。 可能也是这个原因,谷歌研究院的科学家几乎全是【工程师背景】出身的。还记得上次【CCF推荐系统前言讲座】,刚开始叫了几个学院派的讲师在那大讲特讲各种酷炫掉渣天的算法,然后淘宝的大数据负责人车品觉 上台之后直接来了句【我们实验出各种算法效果不太好,还不如最基本的 关联规则效果来的好】直接把前面的学院派专家们打脸打得都肿了。

我心目中的推荐系统

不管是电商,或者是新闻,都有【个性化推荐】和【热门推荐】的取舍。一个商品热门或者点击量高是有其原因的。所以将热门的东西推荐给用户是非常合情合理的,因为既然热门,也侧面说明了很大概率上该用户也会喜欢该商品。而【个性化推荐】本质上是为了解决【长尾】问题,把那些不热门的东西,但是很可能符合某特定用户品味的商品【挖掘】出来,推荐给特定的用户群。

首先,在推荐中,醒目的推荐位应该是【热门推荐】或者【人工推荐】,【人工推荐】是指比如在体育新闻中,巴萨夺冠之类的大新闻是直接让编辑来【人工推荐】即可,就是此新闻一出,马上登上头条,而不是在那磨磨唧唧的计算特征值,计算相似度,计算是否符合用户兴趣。 对于推荐中的【冷启动】,最理想的推荐就是【相关推荐】。说到这里,整个推荐系统的 80% 已经搭建完毕,【热门推荐+人工推荐+相关推荐】,这三者都是【个性化】都没什么关系,也算法关系也不大,但是这三者效果的好坏就决定了整个系统推荐效果好坏的 80% 。好多人连最基本的这三者都没有做好,就开始想一步登天,很可惜,这样的捷径是不存在的。 接下来是 20% 的【个性化】的做法,如上所说,个性化是为了解决【长尾】问题,正是因为长尾占商品的 20% ,所以在此我认为【个性化】其实也只有 20% 。要解决个性化,首先就是要对用户分析,最成熟的办法就是对用户打标签(是否让你想起来社交网络为什么经常让你选用合适的标签描述自己,没错,就是为了分析你)。

其实,给用户打标签,逼格更高的说法叫【用户特征提取】或者【用户行为分析】。说到这两个词,那些所谓的算法工程师可能就会开始扯什么高大上的算法,机器学习,自然语言处理,数据挖掘等各种算法。其实在我看来,算法很大情况根本派不上用场,我认为这方面的关键在于【数据统计 + 人工分析】。将用户的浏览记录等记录下来,统计他最常点击的东西,最常去的频道,然后给他打上这些频道或者商品的标签。或者收集更详细的信息,比如年龄,打上【青少年,男人,女人,老人】等标签,根据这些标签进行推荐。比如当推荐护肤的商品时,就可以偏向于女人,推荐运动产品时,就可以偏向于男人和青少年,推荐保健品时,就可以偏向于老年人。所以,光看年龄这个标签的维度,就可以做很多文章。所以标签库的设计和积累,是非常广泛和重要的,而这方面需要大量依赖于【人工分析】,而不是看论文调算法能做到的。 就好比现在的中文分词,拼到最后大家都在比词库的积累,谁的词库好,谁的效果就好,【搜狗】的【拼音输入法】效果好也是因为词库比别人好。

最后就是根据标签的定向推荐,这个推荐概率是有【权重设置】在里面,就比如刚才对年龄这个维度的权重,是需要给予对应的权重值,如何给定呢?其实就是【拍脑袋】,当然,如果有某些公司已经得出经验值了直接可以拿来用就会更好。但是在拍完脑袋之后需要做的就是观察点击率变化,查Bad Case,然后再对权重进行调整,也就是根据评测和反馈来调整,没有【评测和反馈】,整个系统等于是一个黑盒,谈何优化?在我看来,【推荐系统】本质上首先是一个系统,需要不断的对各种效果进行【评测】,查各种【Bad Case】,而这些都不是看论文可以学到的东西。

总结

  1. 实力派的【算法工程师】往往都是ABC[always be coding],这样的算法工程师才能根据实际问题建立模型或者建立规则库,是真正能解决问题的人。往往是一些有研究背景,经验丰富的研究员,更加重视工程,因为工程架构上一些恰当合理的设计,效果往往就能远远高过于模型算法优化。
  2. 学院派的【算法工程师】往往是为了算法而算法,而不是为了解决推荐系统的问题去找最适合算法。这也是为什么大公司经常招了一些博士毕业的算法工程师后,不是研究算法而是让他们整天在那看数据报表?【因为发现算法没啥好研究,只能让他们在那看看报表找找规律了。】
  3. 【几乎所有所谓的智能推荐算法都是花拳绣腿】
  4. 当一个做推荐系统的部门开始重视【数据清理,数据标柱,效果评测,数据统计,数据分析】这些所谓的脏活累活,这样的推荐系统才会有救。
  5. 儿童节快乐

转自:http://yanyiwu.com/work/2014/06/01/tuijian-xitong-de-nadianshi.html

分享到:
评论

相关推荐

    政企信息管理系统BAMS v2.0.zip

    增删改查一键生成,别去做那些重复的事了,让我们把更多的时间留在对业务的分析优化上。 希望BAMS能够对那些正在或即将开发自己团队的J2EE应用快速开发平台的个人或公司能有所启发!   交流QQ群:306624464   ...

    ARM 嵌入式LINUX 系统构建与驱动开发

    13 还有很多事东西着你玩 呵呵 十二 关于JTAG访真器 JTAG访真器现在用的多是简板的,一个244那种,用的没什么不好。 按照并口定义不同分几种,建议选WIFFLER定义的,因为支持的软件多。这个网上多的是,不多说了。 ...

    yershop开源网店系统 v3.8.2.zip

    标签是模板开发最常用且使用频次最高的一部分,系统在设计上考虑了每一点可以简化的设计,那怕是一个标点的省略,让你的二次开发书写更加的高效。 5、灵活的插件机制 插件开发是一个系统必不可少的部分,一个很好...

    Linux操作系统基础教程

    Linux 操作系统基础教程 清华大学信息学院计算机系 目 录 前言..........................................................................................................................................

    聊聊鉴权那些事(推荐)

    在系统级项目开发时常常会遇到一个问题就是鉴权,身为一个前端来说可能我们距离鉴权可能比较远,一般来说我们也只是去应用,并没有对权限这一部分进行深入的理解。 什么是鉴权 鉴权:是指验证用户是否拥有访问系统的...

    【关于 NLP】 那些你不知道的事-Python开发

    研读顶会论文,复现论文相关代码 【关于 NLP】 那些你不知道的事 作者:杨夕 ...个人介绍:大佬们好,我叫杨夕,该项目主要是本人在研读...推荐系统 学习篇 竞赛篇 GCN_study学习篇 ML 小白入门篇 Java 实战篇 百度百科

    2023全球软件开发北京大会(公开)PPT汇总(80份).zip

    大型活动中,Web 场景动效的那些事儿 代码快照x覆盖率:洞察研发体系的最后100米 电商搜索和推荐场景下的MLOps实践 世界杯中 RTC 的技术挑战与实现 多云环境下的应用管理与交付实践 前端基建是如何炼成的 工程师成长...

    vfp6.0系统免费下载

    vf6.0,要考二级没系统的下哈 Microsoft Visual FoxPro 6.0 for Windows 的常见问题 这些是有关 Microsoft Visual FoxPro 最常见的问题。在您求助 Microsoft 产品支持服务之前,请先查阅这张列表。 若想打印这些...

    【推荐】最新区块链安全解决方案和实践集合.zip

    【推荐】最新区块链安全解决方案和实践集合,共45份,包括: 2020区块链技术架构安全要求; 2020企业级区块链安全白皮书;...智能合安全的那些事; AI芯的产设计与安全设计; TUSI身份区块链介绍;

    servicon-web:Serviçon-用于非正式服务签约的Web系统

    还将在平台内进行可能的推荐系统的创新。 目标听众 该应用程序的目标受众是那些虽然在该领域知识不多的人,但仍可以为需要他们的人提供服务。 一旦注册,双方之间的整个联系过程将几乎自动化。 营利 获利的主要来源...

    复习_全国_研究生入学考试::glowing_star:复习考研的那些事儿(清华912考研)~~

    复习考研的那些事儿~~ 这里我将记录我考研的全过程,包括看过的书,写过的笔记,读过的杂志,推荐的番剧,电影,以及我在生活中一些零碎的记录和思考。 也许这一切对你们可能一无是处,但对我而言,这将会是人生中...

    开源bbs源码java-Android-ProGuard:Android分享:代码混淆那些事

    Android分享:代码混淆那些事 前言 是一个开源的Java代码混淆器。它可以混淆Android项目里面的java代码,对的,你没看错,仅仅是java代码。它是无法混淆Native代码,资源文件drawable、xml等。 ProGuard作用 压缩: ...

    计算机程序的正确定义

     注意事项:自己完成一个模拟的小型软件项目,强烈推荐做一个MIS(管理信息系统)软件,参考用书推荐:  1、“中小型信息管理系统开发实例系列丛书”,人民邮电出版社,它的例子详实有效。  2、 以它为基础再...

    降低权限 dropmyright

    经过沟通,认错,博取同情,提出需求等一系列流程后,FTP大哥向我推荐Symantec的杀软+防火墙,安装完毕后扫描系统,当时在PC中就查出上千的病毒文件,看着这触目惊心的画面,小编心想还是重将吧,这次重装WINDOWS ...

    开心农场java源码百度文库-wxgztj:推荐技术微信公众号

    iProgrammer,「程序员的那些事」是最受欢迎的程序员、IT 技术和 IT 行业相关的微信公众号之一,分享 IT 技术资讯、经典文章和书籍、热门课程、高薪职位、职场和趣文,传播极客精神,更有难得一见的 IT 相亲活动。 ...

    FinalData OEM V2.0 简体中文版

    微软的windows平台提供了回收站来保护那些你不小心删除的文件。在windows平台删除文件,这些文件首先会移动道回收站,如果需要,你可以从那里面恢复数据。 如果,你通过([Shift]-[Delete])等方式,没有删除到回收站...

    终极离线工具1.exe

    那我也没什么办法 因为基本网吧都可以停用的,这点我这网吧不能停用,真J8火 如果能停用的 我也讲一讲如何防被捉,如果收费端没有了的话,后面还有个运行 pubwin2007,这时候会跳出一个pubwin2007的窗口,然后卡号...

    热门RSS源 ompl文件

    49. 互联网的那点事 四月 3 50. 极客公园-GeekPark 四月 4 51. 刘韧Blog 十月 10, 2008 52. 善用佳软 四月 1 53. 树洞 八月 6, 2012 54. 天涯海阁|Web2.0Share 四月 4 55. 鲜果日志 九月 27, 2012 56. ...

    您可能没有权限使用网络资源。请与这台服务器的管理员联系以查明您是否有访问权限。拒绝访问解决方法

    和别人的计算机ping也通,但用IP地址查找也找不到,他并没开防火墙之类的,这究竟是怎么回事?请各位指点迷津,等ing... ________________________________________ Windows网上邻居互访的基本条件: 1) 双方...

    编程狂人第十二期

    游戏公司的那些奇葩事 前端开发 跨域方法汇总 JavaScript多文件下载 写一个更好的Javascript DOM库 Hybrid APP开发者一定不要错过的框架和工具 编程语言 Python超级程序员使用的开发工具 基于Capistrano工具的...

Global site tag (gtag.js) - Google Analytics