一、由来已久的分发问题

你一定有过或正在经历类似这样的情况,当你打开浏览器,看到一个关于李连杰的武打场面的短视频,从小喜爱李连杰的你便点了进去,回忆童年时的记忆,顺便搜了以下这个短视频出自那个电影里面,发现电影名字叫做《龙之吻》(详细的剧情你记不清了),在看完《龙之吻》相关的一些介绍后,心满意足的关闭了页面,浏览自己想看的东西。第二天,你再一次打开了浏览器,你发现在浏览器的内容推荐区出现了以前从来不会出现的一个标题为“《精武英雄》(李连杰版)对日本武士的残暴愤怒至极”短视频推荐。这便是浏览器的推荐算法产生的结果了。

看完上一段文字,你可能觉得推荐算法是一个很高深的东西,其实不然,推荐算法在我们生活中随处可见,只是我们并不这么称呼它,例如商场买衣服老板根据你的穿着喜好推荐给你一些衣服;当你买了一副乒乓球拍后老板会问你是否还需要乒乓球;在你购买火车票时售票员询问你是否需要购买保险等等。推荐说到底其实就是信息分发,信息分发,是一个亘古问题。

信息分发可以分为三种方式:社交分发、编辑分发和算法分发。为了方便大家了解,接下来我以故事方式介绍。在人类文明早期,群居的祖先们依靠采集和狩猎生存。由于狩猎是一个非常危险的技术活,人们需要交流狩猎作战的信息和经验,来提高成功率。比如,猎物出现时用什么信号召集同伴?从什么位置伏击猛兽效果更好?他们通过手势和发声,把这些重要信息分发给同伴——这便是“社交分发”,人类社会最原始的信息分发方式。

你也许已经猜到图片里的字是甲骨文了,是的这是“知”字的甲骨文写法,甲骨文的“知”字便是代表着手持者谈论狩猎、作战行动。社交分发的意思就是基于社交关系形成的最直接和最简单的分发方式。

编辑分发另一种自古就有的信息分发形式。虽然英文“edit”一词的出现和报纸相关,但是这种分发形式也是很早便已经存在了。在口传时代,由古希腊盲诗人荷马搜集、整理而成的“荷马史诗”(《伊利亚特》和《奥德赛》)就是典型例子。汉语将“编辑”解释为“收集资料,整理成书”。去其形,取其义,这种信息分发的根本特征是:信息经过整理后分发至接受者,有加工和把关的意涵。

互联网时代的到来,突破了区域的限制条件,使得信息的交流更加迅速,在不断地交流中也在不断地产生新的信息,互联网发展到今天,信息已经是相当庞大,在庞大的信息中想要找到自己想要的信息(自己对于想要找的东西存在模糊或不清楚情况)可以说是很困难和需要很长时间的,这无疑会让用户放弃对互联网的使用,算法分发便是为了解决这个问题而存在的。进入互联网时代,科学家和工程师都在努力解决信息过载环境下的分发问题,早期两种代表性的解决方案是分类目录和搜索引擎——前者,通过人工编辑把知名网站分门别类,让用户根据类别来查找网站,典型如雅虎、Hao123等;后者,让用户通过搜索关键词找到所需信息,解决了分类目录的有限覆盖问题,典型如谷歌、百度等。

二、推荐算法:大数据时代最有力的信息分发支持

算法分发的出现和普遍应用,意味着人类开始运用机器大规模地解决信息分发问题,人类社会信息分发的动力从人力转向了部分自动化——从“人找信息”,到“信息找人”。

人们探讨算法分发的价值,最常提到的是提高了信息分发的效率,它表现在:解放了部分人力,同时突破了人力对信息分发造成的限制,实现长尾内容的有效分发,从而更高效地完成人和信息的匹配。

然而,还有一层意义较少有人触及:通过算法实现的个性化推荐,真正关注和理解个体。每一个个体都是一个意义不同的“终端”,而不是永远将个体置于群体中去总体理解。也即尼葛洛庞帝所言的“在数字化生存的情况下,我就是‘我’,不再是人口统计学中的一个‘子集’。”——这也是“personal”(个性化)中“person”的意涵所在。

随着信息技术和互联网尤其是移动互联网的发展,人们迅速从信息匮乏的时代跨入了信息过载和泛滥的时代。在这个信息海量的大数据时代,无论是信息消费者还是信息生产者都遇到很大的挑战:对于用户而言,从大量信息中找到自己感兴趣的信息是一件非常困难的事情;而对于信息生产者而言,让自己的信息脱颖而出,受到广大用户的关注,也是一件非常困难的事情。推荐系统就是解决这一矛盾的重要工具。推荐系统的任务就是联系用户和信息,一方面帮助用户发现对自己有价值的信息,另一方面让信息能够展现在对它感兴趣的用户面前,从而实现信息消费和信息生产者的双赢。换言之,推荐的精髓在于,我想要的你都有,你给我的都是我想要的。

三、今日头条推荐算法原理

对于今日头条这里做一些简单介绍,详细的介绍进入链接:

https://blog.csdn.net/shujufenxishi111/article/details/103722223

1.推荐系统

2018年1月,今日头条资深算法架构师曹欢欢博士,首次公开今日头条的算法原理,以期推动整个行业问诊算法、建言算法。通过让算法透明,来消除各界对算法的误解。如今,算法分发已经逐步成为信息平台、搜索引擎、浏览器、社交软件等几乎所有软件的标配。

推荐系统用形式化的方式去描述实际上是拟合一个用户对内容满意度的函数,这个函数需要输入三个维度的变量。第一个维度是内容。例如头条现在已经是一个综合内容平台,图文、视频、UGC小视频、问答、微头条,每种内容有很多自己的特征,需要考虑怎样提取不同内容类型的特征做好推荐。第二个维度是用户特征。包括各种兴趣标签,职业、年龄、性别等,还有很多模型刻划出的隐式用户兴趣等。第三个维度是环境特征。这是移动互联网时代推荐的特点,用户随时随地移动,在工作场合、通勤、旅游等不同的场景,信息偏好有所偏移。结合三方面的维度,模型会给出一个预估,即推测推荐内容在这一场景下对这一用户是否合适。

我们可以把推荐主干算法分为4个部分:质量评估,个性化,场景化,人工干预。

质量评估:有些标准是存在绝对的好与坏的,内容是不是好的,内容质量高不高,内容浏览量多不多,推荐力度大不大,用户反馈好不好这些是存在绝对的好与坏的,我相信没人想看内容质量差推荐量少的文章。

个性化:很多内容是存在差异的,文章是属于新闻资讯性质的还是娱乐性质的,科技类的还是体育类的,文章是属于连载的还是单篇性质的。

场景化:不同的时间和地点会一定程度上影响用户的消费决策,比如上班时大家喜欢看与工作有关的内容,在上班刚开始时间可以推荐给用户与他们工作相关的内容,在下班后推荐给他们一些娱乐性质的内容,这个就是不同的场景带来的影响。

人工干预:算法本身是不带意志的,但是很多时候人会强加一些意志上去,比如说最近年底冲业绩了,需要强推高毛利的商品了;比如这个樱桃是合作方的,需要强推;比如有些东西快过期了,需要强推。

2.特征类型

人的特征:兴趣,职业,年龄,性别,机型,用户行为

环境特征:地理位置,时间,网络,天气

文章特征:主题词,兴趣标签,热度,时效性,质量,作者来源,相似文章

3.如何引入无法直接衡量的目标?

推荐模型中,点击率、阅读时间、点赞、评论、转发包括点赞都是可以量化的目标,能够用模型直接拟合做预估,看线上提升情况可以知道做的好不好。但一个大体量的推荐系统,服务用户众多,不能完全由指标评估,引入数据指标以外的要素也很重要。

比如广告和特型内容频控。像问答卡片就是比较特殊的内容形式,其推荐的目标不完全是让用户浏览,还要考虑吸引用户回答为社区贡献内容。这些内容和普通内容如何混排,怎样控制频控都需要考虑。

平台出于内容生态和社会责任的考量,对于低俗内容的打压,标题党、低质内容的打压,重要新闻的置顶、加权、强插,低级别账号内容降权都是算法本身无法完成,需要进一步对内容进行干预。

4.典型推荐算法

前面提到的公式y= F(Xi ,Xu ,Xc),是一个很经典的监督学习问题。可实现的方法有很多,比如传统的协同过滤模型,监督学习算法Logistic Regression模型,基于深度学习的模型,Factorization Machine和GBDT等。

一个优秀的工业级推荐系统需要非常灵活的算法实验平台,可以支持多种算法组合,包括模型结构调整。因为很难有一套通用的模型架构适用于所有的推荐场景,所以很多公司将多种算法进行结合使用,现在很流行将LR和DNN算法结合,Facebook也曾将LR和GBDT算法做结合。一些公司有时也会出现几款产品都在沿用同一套强大的算法推荐系统,但会根据不同的业务场景,对模型架构进行相应的调整。

5.典型推荐特征

与上文提到的特征类型相类似,典型推荐特征可以分为以下四类特征:

第一类是相关性特征,用来评估内容的属性和与用户是否匹配。显性的匹配包括关键词匹配、分类匹配、来源匹配、主题匹配等。像FM模型中也有一些隐性匹配,从用户向量与内容向量的距离可以得出。

第二类是环境特征,包括地理位置、时间等。这些既是bias特征,也能以此构建一些匹配特征。

第三类是热度特征。包括全局热度、分类热度,主题热度,以及关键词热度等。内容热度信息在大的推荐系统特别在用户冷启动的时候非常有效。

第四类是协同特征,它可以在部分程度上帮助解决所谓算法越推越窄的问题。协同特征并非考虑用户已有历史。而是通过用户行为分析不同用户间相似性,比如点击相似、兴趣分类相似、主题相似、兴趣词相似,甚至向量相似,从而扩展模型的探索能力。

6.大规模推荐模型在线训练

模型的训练上,头条系大部分推荐产品采用实时训练。实时训练省资源并且反馈快,这对信息流产品非常重要。用户需要行为信息可以被模型快速捕捉并反馈至下一刷的推荐效果。我们线上目前基于storm集群实时处理样本数据,包括点击、展现、收藏、分享等动作类型。模型参数服务器是内部开发的一套高性能的系统,因为头条数据规模增长太快,类似的开源系统稳定性和性能无法满足,而我们自研的系统底层做了很多针对性的优化,提供了完善运维工具,更适配现有的业务场景。

目前,头条的推荐算法模型在世界范围内也是比较大的,包含几百亿原始特征和数十亿向量特征。整体的训练过程是线上服务器记录实时特征,导入到Kafka文件队列中,然后进一步导入Storm集群消费Kafka数据,客户端回传推荐的label构造训练样本,随后根据最新样本进行在线训练更新模型参数,最终线上模型得到更新。这个过程中主要的延迟在用户的动作反馈延时,因为文章推荐后用户不一定马上看,不考虑这部分时间,整个系统是几乎实时的。

7.召回策略

因为头条目前的内容量非常大,加上小视频内容有千万级别,推荐系统不可能所有内容全部由模型预估。所以需要设计一些召回策略,每次推荐时从海量内容中筛选出千级别的内容库。召回策略最重要的要求是性能要极致,一般超时不能超过50毫秒。

召回策略种类有很多,我们主要用的是倒排的思路。离线维护一个倒排,这个倒排的key可以是分类,topic,实体,来源等,排序考虑热度、新鲜度、动作等。线上召回可以迅速从倒排中根据用户兴趣标签对内容做截断,高效的从很大的内容库中筛选比较靠谱的一小部分内容。

推荐算法:为什么浏览器总是知道我喜欢的内容?相关推荐

  1. 一文全面了解基于内容的推荐算法

    作者丨gongyouliu 来源 | 转载自大数据与人工智能(ID:ai-big-data) 这篇文章我们主要关注的是基于内容的推荐算法,它也是非常通用的一类推荐算法,在工业界有大量的应用案例. 本文 ...

  2. 推荐算法--总结(08)

    一.推荐系统结构 二.推荐引擎算法(Algorithm) 1.协同过滤推荐算法 1.1 关系矩阵与矩阵计算 1.1.1 用户与用户(U-U矩阵) 1.1.2 物品与物品(V-V矩阵) 1.1.3 用户 ...

  3. 推荐系统实战(5)——基于内容的推荐算法(CB)

    1 基础CB推荐算法 基础CB推荐算法利用物品的基本信息和用户偏好内容的相似性进行物品推荐.通过分析用户已经浏览过的物品内容,生成用户的偏好内容,然后推荐与用户感兴趣的物品内容相似度高的其他物品. 比 ...

  4. 推荐算法的准确度评价指标:

    1.预测准确度:比如MAE,RMSE 2.分类准确度: 分类准确度定义为推荐算法对一个产品用户是否喜欢判定正确的比例.因此 ,当用户只有二元选择时 ,用分类准确度进行评价较为合适.因此,想要用准确率和 ...

  5. 推荐算法对淘宝卖家数据分析的应用

    推荐系统,顾名思义就是卖家对买家的个性化推荐.因为电子商务的买家都藏在电脑屏幕的后面,卖家无法对浏览的买家进行针对性的导购,而推荐系统就像是电子商务的导购员,对店铺内的买家进行针对性的推荐. 1.解释 ...

  6. 基于机器学习实现协同过滤推荐算法的电影推荐系统

    推荐算法在互联网行业的应用非常广泛,今日头条.美团点评等都有个性化推荐,推荐算法抽象来讲,是一种对于内容满意度的拟合函数,涉及到用户特征和内容特征,作为模型训练所需维度的两大来源,而点击率,页面停留时 ...

  7. 个性化推荐算法 综述

    随着互联网的迅速发展,接入互联网的网页与服务器数量也以指数形式迅猛增长.互联网的发展,使得海量信息以飞快的更新速度在我们眼前不断呈现.例如,卓越亚马逊上存在着上千万的图书,NetFlix上有数万部电影 ...

  8. 一文讲清推荐算法原理

    近几年,推荐算法越来越火.所谓推荐算法,其实是计算机专业中的一种算法,通过一些数学算法,推测出用户可能喜欢的东西. 推荐算法的价值在于帮助用户解决信息过载,做出更好的选择,这也是现在互联网领域最强大和 ...

  9. 一文看懂基于内容的推荐算法

    作者 | gongyouliu 来源 | 数据与智能 从本篇开始我们来详细讲解各类推荐算法.这篇文章我们主要关注的是基于内容的推荐算法,它也是非常通用的一类推荐算法,在工业界有大量的应用案例. 本文会 ...

最新文章

  1. mysql外键写了会怎么样_mysql使用外键会影响性能吗
  2. 华为诺亚、北大提出GhostNet​,使用线性变换生成特征图,准确率超MobileNet v3 | CVPR 2020...
  3. bzoj2054 疯狂的馒头
  4. 小白学数据分析-----Excel制作INFOGRAPHIC
  5. ALV标准范例Demo汇总
  6. ASA IPSEC ***配置
  7. protobuf使用说明
  8. [转] 爱情的隐式马尔可夫模型(Love in the Hidden Markov Model)
  9. .NET Core ResponseCache【缓存篇(一)】
  10. 淮北师范18-19计算机科学与技术大类实验课试卷
  11. 安装Was liberty之步骤
  12. ThinPHP_5的请求和响应
  13. 275页PDF:《编写高质量代码:改善Python程序的91个建议》
  14. Arcmap坐标系转换通用教程【简单明了】
  15. 【吴恩达深度学习】Residual Networks(PyTorch)
  16. PEPS 无钥匙进入系统低频芯片 PCF7991 介绍
  17. 爱看小说网源码全站带数据打包ThinkPHP内核小说网站源码
  18. 4p营销组合策略案例_4p营销策略案例
  19. [C++] [OpenGL] 基于GLFW+GLAD的OpenGL简单程序
  20. 预约制成为汽车年检新常态

热门文章

  1. APP性能测试关注点详细介绍
  2. 应用层协议@传输层协议
  3. EDA虚拟机分享2020版本(Synopsys2020)
  4. 运维面试题(面前准备)
  5. 任意多边形的面积(C语言)
  6. SQL语句按照姓名首字母排序
  7. java对手机芯片有没有要求_芯片对手机到底有多重要
  8. 3D模型欣赏:大眼短发战斗萝莉 游戏角色
  9. [紧急]华展云再次连夜更新200余本16年会刊,2016年会刊量级已达全网第一
  10. 分享2020年线上支付接口产品讲解