最近公司一直让优化以前的推荐系统,于是就查看了,大量的推荐系统的文章,有一些新的信息推荐给大家。
第一次接触【推荐系统】是在前两年的互联网论坛上,那时候,【机器学习】和【大数据】都是新概念,但是差不多半年后,【大数据】的概念就开始风靡全球了,到现在已经被爆炒得面目全非。
因此买了一些推荐系统的书记,现在的很多热门书籍一样,都是跟着概念热起来的。 虽然有一些作者自己的实战经验在里面,但是总体上来说并没有太多值得重复翻开的地方。
几乎所有宣扬【推荐系统】的人,都要拿【啤酒和尿布】,【亚马逊推荐占营收20%】之类的经典例子来说力证推荐系统的牛逼之处。到处宣扬【推荐系统】插上【机器学习】等算法的翅膀,就能让电子商务变得精准无比,能智能的猜出用户想买的东西。
殊不知,其实这两个例子和所谓的【算法】其实关系不大。

  1. 啤酒和尿布
    首先是【啤酒和尿布】,超市的人员发现买啤酒的男人容易顺手买尿布。这其实是一种数据分析,是根据数据统计加上人工分析得出,是一种以经验来改善销售的行为。和【机器学习】【数据挖掘】等算法的关系不大。 刚接触【推荐系统】的时候,【协同过滤算法】大热, 我也曾经迷恋得研究过该算法,以为发现了什么宝贝一样。但是实际上,在工程中【协同过滤】出来的效果往往惨不忍睹,所谓的【算法工程师】每天能做的就是在那调整【协同过滤】算法的相关参数,然后看看第二天的点击率有没有上升。然后调整到最后你会发现,牛逼哄哄的【协同过滤】其实还不如简简单单的【看了又看】效果来的好,虽然协同过滤算法本质上也是一种【看了又看】的思想。
  2. 亚马逊的推荐系统
    亚马逊的推荐系统占了营收比,我记得是20%,不知道现在上升了还是下降了。这个说辞会让很多人误以为只要你搞好了推荐系统,你的营收就能上升20%以上一样。其实不然,对于亚马逊来说,为什么推荐能起到这么高的销量,一个很重要的原因在于,【亚马逊的首页点击率高的部分位置划分给了推荐系统的】,从广告学上讲,广告位置的好坏极大的决定了广告的销量。这个很容易理解,假设你的产品的广告牌能挂上天安门城楼的话,你觉得你还需要担心该产品的销量吗?
    当然不可否定的是亚马逊的推荐系统应该是很牛逼的,但是这并不说明他们采用的【推荐算法】非常牛逼。推荐系统我认为其实和搜索系统并无太大差异,我一直认为推荐系统其实只是一个个性化的搜索引擎。之前在【秘密】上很火的有个爆料是:“360搜索的Rank刚开始就是用【机器学习】的算法去做,屎一样的效果,是我把百度的基于规则的算法偷过去之后才变好的。” ,这个爆料出来不少人讽刺【基于规则】,觉得这是在黑百度的算法。 其实不是这样的,记得当时阿里搜索挖了一个谷歌搜索的员工,该人在阿里分享的时候就说过:【谷歌的搜索效果比别人好的原因就是规则库牛逼,关于算法使用的都是成熟的人尽皆知的算法,并没什么新奇酷的算法】。 可能也是这个原因,谷歌研究院的科学家几乎全是【工程师背景】出身的。还记得上次【CCF推荐系统前言讲座】,刚开始叫了几个学院派的讲师在那大讲特讲各种酷炫掉渣天的算法,然后淘宝的大数据负责人车品觉 上台之后直接来了句【我们实验出各种算法效果不太好,还不如最基本的 关联规则 效果来的好】直接把前面的学院派专家们打脸打得都肿了。
    我心目中的推荐系统
    不管是电商,或者是新闻,都有【个性化推荐】和【热门推荐】的取舍。一个商品热门或者点击量高是有其原因的。所以将热门的东西推荐给用户是非常合情合理的,因为既然热门,也侧面说明了很大概率上该用户也会喜欢该商品。而【个性化推荐】本质上是为了解决【长尾】问题,把那些不热门的东西,但是很可能符合某特定用户品味的商品【挖掘】出来,推荐给特定的用户群。
    首先,在推荐中,醒目的推荐位应该是【热门推荐】或者【人工推荐】,【人工推荐】是指比如在体育新闻中,巴萨夺冠之类的大新闻是直接让编辑来【人工推荐】即可,就是此新闻一出,马上登上头条,而不是在那磨磨唧唧的计算特征值,计算相似度,计算是否符合用户兴趣。 对于推荐中的【冷启动】,最理想的推荐就是【相关推荐】。说到这里,整个推荐系统的 80% 已经搭建完毕,【热门推荐+人工推荐+相关推荐】,这三者都是【个性化】都没什么关系,也算法关系也不大,但是这三者效果的好坏就决定了整个系统推荐效果好坏的 80% 。好多人连最基本的这三者都没有做好,就开始想一步登天,很可惜,这样的捷径是不存在的。 接下来是 20% 的【个性化】的做法,如上所说,个性化是为了解决【长尾】问题,正是因为长尾占商品的 20% ,所以在此我认为【个性化】其实也只有 20% 。要解决个性化,首先就是要对用户分析,最成熟的办法就是对用户打标签(是否让你想起来社交网络为什么经常让你选用合适的标签描述自己,没错,就是为了分析你)。
    其实,给用户打标签,逼格更高的说法叫【用户特征提取】或者【用户行为分析】。说到这两个词,那些所谓的算法工程师可能就会开始扯什么高大上的算法,机器学习,自然语言处理,数据挖掘等各种算法。其实在我看来,算法很大情况根本派不上用场,我认为这方面的关键在于【数据统计 + 人工分析】。将用户的浏览记录等记录下来,统计他最常点击的东西,最常去的频道,然后给他打上这些频道或者商品的标签。或者收集更详细的信息,比如年龄,打上【青男少年,人,女人,老人】等标签,根据这些标签进行推荐。比如当推荐护肤的商品时,就可以偏向于女人,推荐运动产品时,就可以偏向于男人和青少年,推荐保健品时,就可以偏向于老年人。所以,光看年龄这个标签的维度,就可以做很多文章。所以标签库的设计和积累,是非常广泛和重要的,而这方面需要大量依赖于【人工分析】,而不是看论文调算法能做到的。 就好比现在的中文分词,拼到最后大家都在比词库的积累,谁的词库好,谁的效果就好,【搜狗】的【拼音输入法】效果好也是因为词库比别人好。
    最后就是根据标签的定向推荐,这个推荐概率是有【权重设置】在里面,就比如刚才对年龄这个维度的权重,是需要给予对应的权重值,如何给定呢?其实就是【拍脑袋】,当然,如果有某些公司已经得出经验值了直接可以拿来用就会更好。但是在拍完脑袋之后需要做的就是观察点击率变化,查Bad Case,然后再对权重进行调整,也就是根据评测和反馈来调整,没有【评测和反馈】,整个系统等于是一个黑盒,谈何优化?在我看来,【推荐系统】本质上首先是一个系统,需要不断的对各种效果进行【评测】,查各种【Bad Case】,而这些都不是看论文可以学到的东西。
    总结
    实力派的【算法工程师】往往都是ABC[always be coding],这样的算法工程师才能根据实际问题建立模型或者建立规则库,是真正能解决问题的人。往往是一些有研究背景,经验丰富的研究员,更加重视工程,因为工程架构上一些恰当合理的设计,效果往往就能远远高过于模型算法优化。
    学院派的【算法工程师】往往是为了算法而算法,而不是为了解决推荐系统的问题去找最适合算法。这也是为什么大公司经常招了一些博士毕业的算法工程师后,不是研究算法而是让他们整天在那看数据报表?【因为发现算法没啥好研究,只能让他们在那看看报表找找规律了。】
    【几乎所有所谓的智能推荐算法都是花拳绣腿】
    当一个做推荐系统的部门开始重视【数据清理,数据标柱,效果评测,数据统计,数据分析】这些所谓的脏活累活,这样的推荐系统才会有救。

推荐系统浅谈-大家都知道的案例相关推荐

  1. Windows Server之浅谈SMB以及SMB小案例分享

    Windows Server之浅谈SMB以及SMB小案例分享 gs_h关注4人评论89230人阅读2017-01-23 14:45:45 SMB由来 服务器消息区块(英语:Server Message ...

  2. 自己动手写一个推荐系统,推荐系统小结,推荐系统:总体介绍、推荐算法、性能比较, 漫谈“推荐系统”, 浅谈矩阵分解在推荐系统中的应用...

    自己动手写一个推荐系统 废话: 最近朋友在学习推荐系统相关,说是实现完整的推荐系统,于是我们三不之一会有一些讨论和推导,想想索性整理出来. 在文中主要以工程中做推荐系统的流程着手,穿插一些经验之谈,并 ...

  3. [Android 泥水匠] Android基础 之一:浅谈Android架构到HelloWorld案例的剖析

    作者:泥沙砖瓦浆木匠 网站:http://blog.csdn.net/jeffli1993 个人签名:打算起手不凡写出鸿篇巨作的人,往往坚持不了完成第一章节. 交流QQ群:[编程之美 36523458 ...

  4. 计算机专业浅谈:都说这行业35岁失业,是真的嘛?

    很多高考结束的小伙伴都在思考报考什么专业,那么就业率和工资排名都非常不错的计算机专业自然会非常受人青睐.然而网上一些奇怪的声音也一直层出不穷,例如996啊,35岁即失业什么的.有关这些疑问,今天来给大 ...

  5. 浅谈数据中的偏差问题和推荐系统去偏最新研究进展

    ©作者 | 杨晨 来源 | RUC AI Box 本文首先回顾了数据中的偏差问题,通俗易懂地做一个解释和引入,并基于最近两年发表在顶级会议(KDD.SIGIR.WWW.AAAI 等)的推荐系统去偏相关 ...

  6. movielens推荐系统_浅谈推荐系统+3个小时上手python实现(完整代码)

    已经9012年了应该也不需要我解释什么是推荐系统,大致就像头图一样,挖掘用户的喜好,精准的推送给用户ta想要的东西!推荐系统可以说是无处不在了,电商的猜你喜欢,浏览器右侧的推送消息,包括搜索结果的排序 ...

  7. python相关职业-浅谈Python全栈开发工程师,让程序员都眼红的职业!

    原标题:浅谈Python全栈开发工程师,让程序员都眼红的职业! Python Python 的排名从去年开始就借助人工智能与独特的魅力持续上升,现在它已经成为了第一名. 与其它编程语言相比所占的优势 ...

  8. 浅谈 BI 分析师的定位、案例、成长

    浅谈BI分析师 |0x00 BI的定义 对于BI的定义,大家是各有各的说法,但比较普遍和默认的一种讲法,是用现代数据仓库技术.线上分析处理技术.数据挖掘和数据展现技术进行数据分析以实现商业价值.当然, ...

  9. [2017.11.11特辑]以一个光棍节表白案例浅谈ECMAScript6模块化的使用方法

    双十一,购物节与光棍节,在这个特殊的日子里研究了一下模块化开发的我,突然想结合这个日子,以一个表白的例子浅谈es6模块化的用法. 在之前的 javascript 中一直是没有模块系统的,随着JavaS ...

最新文章

  1. 操作系统原理:读写者经典同步问题
  2. 直播短视频手机APP应用下载页面静态html网页模板
  3. android获取工程中所有类名,android 获取手机的所有程序和widget的包名和启动类名...
  4. IT 运营管理 (ITOM)解决方案-OpManager Plus
  5. CUDA核函数share memory
  6. u盘复制到计算机的文档打不开怎么办,U盘文件复制到别的电脑打不开怎么办
  7. 伽卡他卡学生端 的卸载!!!
  8. python获取pdf页面尺寸_python-从pdf提取页面作为jpeg
  9. scrapy 远程登录控制台
  10. 数据库CAST()函数,格式(CAST AS decimal)
  11. 最大化参数 火车头_火车头采集(LocoySpider)设置技巧
  12. Java大数据学习路线图
  13. 嵌入式系统设计---实时系统与嵌入式操作系统
  14. jmail组件 java_Jmail发送邮件工具类分享
  15. 2022年 linux运维日常工作内容
  16. ipad+html+全屏模式,无法设置全屏iPad的移动Safari浏览器从DIV HTML内容隐藏字段内容...
  17. 超详细多旋翼无人机飞控 pid 控制器结构图(含视觉追踪)
  18. 用Python制作一个相册播放器(附源码)
  19. 使用springMVC AOP实现日记记录
  20. CiteSpace基本用法,以CNKI文献数据为例

热门文章

  1. HTML a标签去除下划线
  2. php函数substr、mb_substr、mb_strcut截取中文比较
  3. SEO 前端如果做seo
  4. Dotnetty Mqtt Azure 网关服务端的实现步骤
  5. 网易秋招前端开发工程师三面回顾(网易杭州研究院)
  6. sonarlint 链接server
  7. 【Python数据科学】第一章 IPython 超越Python
  8. 解决windows共享打印机连接失败
  9. 我优柔寡断的语言选择之路
  10. 线性代数学习笔记5-1:正交的向量/空间、正交补(行空间和零空间正交)