今日头条推荐算法原理解析
转自:https://blog.csdn.net/ScarlettYellow/article/details/80458075?utm_source=blogxgwz2 ,谢谢原作者这么精简的总结。
Abstract:这篇是1月份头条首次公开的算法原理的笔记记录。
1.头条推荐算法原理
1.1 系统概览
1.资讯推荐系统
”你关心的,才是头条“
本质要解决的问题:用户、环境和资讯的匹配,即
实质:推荐系统其实是一个拟合用户对内容满意度的函数,这个函数需要输入3个维度的变量。
(内容):内容形式多元化,不同内容的特征也不同,需要考虑怎样提取不同内容类型的特征做好推荐
(用户):怎样提取用户特征
(环境):用户在不同场景下的信息偏好不同
结合这3个维度,推荐模型会给出1个预估:预测推荐内容在这一场景下对用户是否合适。
2.特征类型
人的特征:兴趣,职业,年龄,性别,机型,用户行为
环境特征:地理位置,时间,网络,天气
文章特征:主题词,兴趣标签,热度,时效性,质量,作者来源,相似文章
3.如何引入无法直接衡量的目标?
广告&特型内容频控:特型内容比如问答卡片,其推荐目标不完全是让用户浏览,还要考虑吸引用户回答为社区贡献内容,这些内容和普通内容如何混排,怎样控制频控都需要考虑
低俗内容打压&频控
标题党、低质、恶心内容打压
重要新闻置顶&强插&加权
低级别账号内容降权
出于内容生态和社会责任的考量(算法无法完成,需要人工干预)
4.典型推荐算法
Logistic Regression
协同过滤
DNN:深度神经网络
Factorization Machine
GBDT
是经典的监督学习问题,以上5种算法均可实现
5.推荐系统模型架构
一个优秀的工业级推荐系统需要非常灵活的算法实验平台,可以支持多种算法组合,包括模型结构调整。因为很难有一套通用的模型架构适用于所有的推荐场景
现在很流行将LR和DNN结合
今日头条旗下几款产品都在沿用同一套强大的算法推荐系统,但根据业务场景不同,模型架构会有所调整
6.典型推荐特征
相关性特征:即评估内容的属性与用户是否匹配,包括关键词匹配,分类匹配,主题匹配,来源匹配
环境特征:地理位置,时间
热度特征:全局热搜,分类热度,主题热度,关键词热度(热度信息在冷启动时非常有效)
协同特征:点击相似用户,兴趣分类相似用户,兴趣主题相似用户,兴趣词相似用户(部分程度上解决算法推荐内容窄化问题,通过用户行为分析不同用户间相似性,比如点击相似、兴趣分类相似、主题相似、兴趣词相似,甚至向量相似,从而扩展模型的探索能力)
7.大规模推荐模型的在线训练
基于storm集群实时处理样本数据:包括点击、展现、收藏、分享等动作类型
实时训练模型:省资源且反馈快,用户需要行为信息可以被模型快速捕捉并反馈至下一刷的推荐效果
每收集一定量用户数据就更新推荐模型
模型参数存储在高性能服务器集群,包含几百亿原始特征和数十亿向量特征
整体训练过程:
8.召回策略设计(match)
目的:使用召回策略高效从海量内容中筛选出一小部分符号要求的内容库(选出数千内容后进行大规模机器学习排序,再基于场景去重、多样性控制、加权,生成最终的推荐列表;线上实时产生并更新)
不可能所有内容都由模型评估(计算开销太大),利用一些召回策略可有效平衡计算成本和效果。
兴趣分类召回:根据用户兴趣标签拉取相应文章,并rank top结果
Tag: 显式兴趣标签 & 隐式兴趣标签
9.推荐系统的数据依赖
特征抽取:需要用户侧和内容侧的各种标签
召回策略:需要内容侧和用户侧的各种标签
内容分析和用户标签挖掘:搭建推荐系统的基石
1.2 内容分析
内容分析:文本分析,图片分析,音视频分析
1.文本分析在推荐系统的应用
用户兴趣建模(user profile):比如,给喜欢阅读“人工智能”文章的用户打上“人工智能”标签
帮助内容推荐:“Apple”的内容推荐给关心“Apple”的用户,“Dota”的内容推荐给“Dota”的用户
生成频道内容:“Dota”的内容分进“Dota频道”
用户标签和内容标签的先后顺序:先有内容标签,然后用户阅读了内容,才给用户打上相应标签;
若出现推荐窄化,则可返回子频道阅读,再回主频道,推荐效果会更好。
子频道的重要性:子频道探索空间较小,更容易满足用户需求。
2.文本特征
文本特征对内容推荐的重要性
无文本特征则推荐引擎无法工作:资讯类基本上是消费当天内容,无文本特征的话新内容冷启动会很困难
协同类特征无法解决文章冷启动问题(无文本特征的内容无法被定位推荐给何种用户)
粒度越细的 文本特征。冷启动能力越强(eg.Dota vs 游戏)
文本特征包括
(显式)语义标签类特征:由人预定义的具有明确意义的标签;要求覆盖全,希望每篇文章都找到其合适的分类,精确性要求不高
语义标签需要人持续标注,如网络热词;
有一些产品上的需要,比如频道需要有明确定义的分类内容和容易理解的文本标签体系;语义标签的效果是检测公司NLP水平的试金石。
(隐式)语义特征:topic特征和关键词特征(topic特征是对于词概率分布的描述,无明确含义;关键词特征是基于一些统一特征描述,无明确集合);不要求覆盖全,但要求精确性(只要求覆盖每个领域的热门文章、机构、产品等即可)
文本相似度特征:包括主题、行文、主体等(根据相似度特征可避免给用户推送重复内容)
时空特征:分析内容的发生地点和时效性(eg.武汉限行的新闻推给北京的用户就没有什么意义)
质量特征:判断内容是否低俗、色情、暴力,或者是否是软文、鸡汤等
语义标签:
特征 | 使用场景 |
---|---|
分类体系 | user profile;过滤频道内容;推荐召回;推荐特征 |
概念体系 | 过滤频道内容;标签搜索;推荐召回(Like) |
实体体系 | 过滤频道内容;标签搜索;推荐召回(Like) |
每个层级粒度不一样,要求也有区别。
3.典型的层次化文本分类算法
层次化:即大类分中类,中类分小类。
有几条“飞线”的作用/目的:?
实体词识别算法
流程:分词&词性标注——> 抽取候选——>去歧(通过词向量、topic分布、词频本身等)——> 计算相关性模型
1.3 用户标签
1.头条用户标签
兴趣特征:
感兴趣的类别和主题
感兴趣的关键词
感兴趣的来源
基于兴趣的用户聚类
各种垂直兴趣特征
身份特征
性别:通过第三方登录社交账号获知
年龄:模型预测、通过机型和阅读时间分布等预估
地域:用户授权访问位置信息,然后基于位置信息再通过传统聚类得到常驻点
行为特征:晚上看视频
2.用户标签的主要处理策略
过滤噪声: 过滤停留时间短的点击,打击标题党
惩罚热点:用户在热门文章上的动作做降权处理
时间衰减:随用户动作增加,老的特征权重会随时间衰减,新动作贡献的特征权重会更大
惩罚展现:如果一篇推荐给用户的文章未被点击,则相关特征会被惩罚(类别、关键词、来源)
考虑全局背景:考虑给定特征的人均点击比例(是不是相关内容推送比较多,以及相关的关闭和dislike信号等)
3.用户标签计算
用户标签批量计算框架
每天抽取昨天日活用户
抽取这些用户过去2个月的动作数据
在Hadoop集群上批量计算结果
批量计算用户标签的问题
计算量太大:用户增长 & 兴趣种类增加 & 其他批量处理任务增加
导致:集群计算资源紧张,开销增加,用户兴趣标签更新延迟变高
用户标签流式计算框架【头条:2014年上线】
用storm集群实时处理用户动作数据
每收集一定量用户数据就重新计算一次用户兴趣模型
用大规模+高性能存储系统支持用户兴趣模型的读写
流式计算和批量计算混合使用
大部分user profile采用流式计算
各个粒度的兴趣标签
垂直领域profile
对时效性不敏感的user profile采用batch计算
性别、年龄
常驻地点
1.4 评估分析
对推荐效果可能产生影响的因素
候选内容集合的变化
召回模块的改进和增加
推荐特征的增加
推荐系统架构的改进
算法参数的优化
规则策略的改变
评估的意义:很多优化最终可能是负向效果
评估需要
完备的评估体系:尝试将尽可能多的综合指标合成唯一的评估指标
强大的实验平台
易用的实验分析工具
评估需要注意
注重短期指标和长期指标
注重用户指标和生态指标
注重协同效应的影响,有时需要做彻底的统计隔离
1.5 内容安全
1.头条风险评估流程
如果1%的内容出现问题,就会产生较大的社会影响。因此头条从创立伊始就把内容安全放在公司最高优先级队列。
成立之初,已经专门设有审核团队负责内容安全。当时研发所有客户端、后端、算法的同学一共才不到40人,头条非常重视内容审核。
今日头条的内容主要来源于两部分,一是具有成熟内容生产能力的PGC平台,一是UGC用户内容,如问答、用户评论、微头条。这两部分内容需要通过统一的审核机制。如果是数量相对少的PGC内容,会直接进行风险审核,没有问题会大范围推荐。UGC内容需要经过一个风险模型的过滤,有问题的会进入二次风险审核。审核通过后,内容会被真正进行推荐。这时如果收到一定量以上的评论或者举报负向反馈,还会再回到复审环节,有问题直接下架。
2.风险内容识别技术
鉴黄模型:构建了千万张图片数据集,通过深度学习算法(Resnet)训练,召回率99%
低俗模型:对文本和图片同时分析,对文章和评论都做低俗识别;召回率90%+,准确率80%+(更注重召回率,可牺牲一定的准确率)
谩骂模型:净化评论氛围;样本库超过百万,召回率高达95%+,准确率80%+
3.泛低质内容识别技术
低质模型:通过对评论做情感分析,结合用户其它的负反馈信息(举报、不感兴趣、踩)等信息,来解决很多语义上的低质问题,诸如题文不符、有头无尾、拼凑编造、黑稿谣言等。
目前低质模型的准确率为70%,召回率为60%,结合人工复审召回率能做到95%。
REFERENCE
今日头条算法原理全
今日头条推荐算法原理解析相关推荐
- 3分钟了解今日头条推荐算法原理
今日头条的内容分发算法一直颇神秘低调.自12年开发运营起进四次改版,从未透露核心内容. 2018年1月,今日头条资深算法架构师曹欢欢博士,终于首次公开今日头条的算法原理,以期推动整个行业问诊算法.建言 ...
- 今日头条推荐算法原理全文详解之一
本次分享将主要介绍今日头条推荐系统概览以及内容分析.用户标签.评估分析,内容安全等原理. 今日头条推荐算法原理全文详解 今日头条 数据分析 产品经理 产品 好文分享 第1张 一.系统概览 推荐系统,如 ...
- 今日头条推荐算法原理全文详解之四
三.用户标签 内容分析和用户标签是推荐系统的两大基石.内容分析涉及到机器学习的内容多一些,相比而言,用户标签工程挑战更大. 今日头条推荐算法原理全文详解 今日头条 数据分析 产品经理 产品 好文分享 ...
- 【推荐系统】今日头条推荐算法原理全文详解
如今,算法分发已经逐步成为信息平台.搜索引擎.浏览器.社交软件等几乎所有软件的标配,但同时也开始面临各种不同的质疑.挑战与误解. 2018年1月,今日头条资深算法架构师曹欢欢博士,首次公开今日头条的算 ...
- 了解今日头条推荐算法原理
https://www.toutiao.com/a6512245165707493896/ 本次分享将主要介绍今日头条推荐系统概览以及内容分析.用户标签.评估分析,内容安全等原理. 一.系统概览 推荐 ...
- 【聚能聊有奖话题】今日头条公布算法原理,你认可他们的理念吗?
本话题地址,参与即可获得礼品: https://yq.aliyun.com/roundtable/63978 11 日,今日头条召开了一场旨在推动整个行业来问诊算法.建言算法的分享交流会.资深算法架构 ...
- 今日头条推荐算法详解(PDF下载)
源 | AI研习社 编辑 | 昱良 内容较长 点击阅读原文即可下载 今日头条资深算法架构师曹欢欢: 本次分享将主要介绍今日头条推荐系统概览以及内容分析.用户标签.评估分析,内容安全等原理. 一. ...
- 今日头条的新闻推荐算法原理
转自: http://www.sohu.com/a/217514835_488163 信息越来越海量,用户获取信息越来越茫然,而推荐算法则能有助于更好的匹配海量内容和用户需求,使之更加的"有 ...
- 【干货】今日头条的新闻推荐算法原理
信息越来越海量,用户获取信息越来越茫然,而推荐算法则能有助于更好的匹配海量内容和用户需求,使之更加的"有的放矢" .为让产业各方更好的了解算法分发的相关技术和原理,我们特整理了当下 ...
- 万字长文揭秘今日头条、抖音的推荐算法原理!
点击上方"开发者技术前线",选择"星标" 18:50 在看 真爱 来自:今日头条 编辑:可可 www.toutiao.com/a6511211182064402 ...
最新文章
- Greenplum failed segment的恢复方法
- apache配置CA证书通过https通信
- MySQL学习(四、子查询)
- 负载均衡算法 — 轮询
- Docker 第四章 访问容器
- 安全是一个系统问题包括服务器安全,信息安全技术题库:除了应用程序功能,Web内容和功能枚举还需要关注( )。...
- 中断(二)—— x86 APIC
- 阿里云80端口无法访问
- 用于体外诊断的RPMI 1640培养基(不含氨基酸)
- java cnzz爬数据_PHPcurl抓取cnzz统计数据
- Map应用:电话聊天狂人
- ubuntu18.04两台电脑ntp时间同步
- Java API连接Kerberos认证的HBASE
- 降了!京东物流全体员工公积金调整,由12%降到5%!
- 速达财务软件未能连接服务器,速达3000财务软件使用常见问题
- Taobao api, Jingdong api, 1688api, Pinduoduo api, Douyin api commodity interface source code
- mapbox tippecanoe切矢量瓦片参数设置和注意事项
- 真相(truth)最可怕的敌人不是谎言(lie),而是神话(myth)
- 今年春季清华大学雨课堂主讲嘉宾邹晓辉讲授了融智学系列公益课:
- html+播放ftp,迅雷看看播放器3.1 直接播放Http/Ftp的影音文件
热门文章
- ORACLE 错误 904
- python中集合的概念
- 2021软科 中国计算机专业 排名
- Description: Field smsClient in com.atguigu.gmall.pms.service.impl.SpuServiceImpl required a bean o
- android 模拟内存不足,雷电模拟器内存不足怎么办?雷电安卓模拟器怎么修改内存大小?...
- outlook查看html,怎样察看IE/Outlook中HTML页面的源文件
- IE浏览器无法查看源文件的8大原因
- 前端共享博客(前端导航,前端博客,前端博客推荐)
- vue路由变化时使用axios取消所有请求
- 张朝阳开课手推E=mc²,李永乐现场狂做笔记!CEO当太久都忘了他是MIT物理博士...