July
22nd,
2016
今日头条user profile 演讲总结
user profile
- 特征方面
- 分人的特征/环境特征/文章特征,对应到广告中也就是用户特征/场景特征/广告特征,对应到我们公司也就是用户特征/场景特征/专辑特征(或者声音特征)
- 用户的行为也作为人的特征
- 环境特征: 地理位置/时间/网络/天气
- 天气,这种属于外部资源
- 文章特征有主题词(可能是topic模型计算,也可能是切词)/兴趣标签/热度/正能量值/时效性/质量/作者来源/相似文章
- 作者来源 这种有很多值的特征最后如何处理?
- 相似文章 可能是计算好的
- 高质量的用户特征是做好推荐的关键之一
- 排序是多变量函数 F(匹配度,热度,质量,时效性,正能量值)
- 推荐效果评估,不仅仅是点击率
- 短期目标,也要考虑到内容质量/内容多样性/用户心理上的惊喜感/帮助用户探索兴趣/快速反馈又不能过度灵敏。
- 即目标不单一,多目标推荐,比如给用户推荐不在兴趣范围内的东西,完成兴趣探索。
- 长期目标,有兴趣/有收获/愿意长期使用
- 从商泰上是鼓励良币/驱逐劣币
- 短期目标,也要考虑到内容质量/内容多样性/用户心理上的惊喜感/帮助用户探索兴趣/快速反馈又不能过度灵敏。
- 用户特征包括从内容方面考虑的特征
- 用户喜好文章类别/文章主题/文章关键词/文章实体(entity)
- 每个特征上的值都划分为喜欢和不喜欢(这个是否应该分为喜欢/不喜欢/未知三种)
- 很多特征也包括短期和长期两种, 即区分用户的长期喜好和短期喜好, 即针对不同的业务场景,就可能倾向于用不同种类(长期或者短期)的特征.
- 协同特征:有相似用户,即把相似用户的用户id放进来,那么这些相似用户的所有行为(短期和长期)都可以映射进来。
- 为什么用户的行为对推荐来说非常重要
- 和搜索不同,搜索非常注重对query的理解,因为query可以完全表达用户的意图,但是推荐不同,要理解用户想要什么,必须从用户所有的行为中去理解用户。
- 所以用户行为的存储/分析/转化为模型和profile就变得非常重要。
- 算法
- 每个特征的权重,点击加权/未点击惩罚,但是未点击惩罚教轻,因为是隐式反馈
- 热门文章的点击行为相较正常文章的点击所加权重较小。
- 每个特征上进行时间上的衰减
- 为用户推荐文章,称之为recall, recall之后进行排序。这里recall借用的是search的概念。
-
算法上线异常,可以对user profile进行回滚
- 今日头条每天训练数据达到100T,每日日志行数100亿条。特征组合数每天750亿,线上model330亿
算法
冷启动要分为 用户冷启动和文章冷启动
- 冷启动
-
- 选择兴趣点,比如quora, zhihu, pinterest
-
- 给出一些item, 让用户选择喜欢或不喜欢,根据此行为产生来进行推荐
-
今日头条则选择了另一种解决方案——通过对用户微博账号的分析建立一个“兴趣图谱”,即根据用户在微博上发布的内容及其所属类别、用户自标签、社交关系、社交行为、参与的群组、机型、使用时间等来数据源来推断出用户的兴趣点有哪些。社交关系、社交行为即用户和用户之间的交流状况,可以根据二者间的共同好友数、相互评论熟、@数等来做度量。
经过了两个阶段 - 第一阶段:一开始今日头条的推荐算法,首先入手的是“非个性化推荐”——解决的热门文章推荐,以及新文章冷启动的问题。 - “单纯的热门(文章),会让一些新文章没有机会。单纯的随机(推荐),(文章)质量当然不好,所以考虑一些简单方法,比如算一下威尔逊置信区间,来平衡热与新的问题。” - 第二阶段:个性化推荐 - 协同过滤 + 内容推荐
(协同过滤)是一个很好的方法,直到今天我们还一直使用。但缺点也很明显,对于没有行为(记录)的文章,没办法推荐,所以没办法用于文章的冷启动。所以我们引入了基于内容推荐的策略。比如计算文章的分类、文章的关键词,然后根据用户对文章的阅读、浏览等信息,细化用户的个人资料。——这样子,如果文章是和科技相关的,而用户的个人资料也显示科技相关,那么就算匹配。
除此之外,今日头条还通过用户对内容的“正负反馈”来判断内容匹配是否精准。正反馈,包括用户点击了、看了很长时间、分享了、收藏了、评论了,都是正反馈。负反馈反而是比较难获取的,现在今日头条在内容上设置了一个小叉,点击之后,会咨询用户不感兴趣的理由,这种做法则会获取比较强的负反馈。但是通过这种方式收集到的数据还不多。
- 推荐准确度仍然较低
- 热门文章过度推荐,导致个性化程度差
- 兴趣树深度不够,可能是他们的知识树建的不够深,这样不能针对用户进行更细分领域的挖掘。
对于文章的评估 点击率+读完率
话题的站外热度
- 其实可以有很多的垫子,但是如何把这些点子融入到一个框架和架构里面,而且可以很好的运作,就是一个高深的问题。
评估
推荐类产品如果用相关性来做衡量指标,可能会导致模型过度收敛,最后推荐出的内容越来越相似。
一个典型的反例就是两三年之前的豆瓣FM,我在上面听过几首张悬的歌之后,不停的推荐张悬、清新这种风格的曲目,每次听上几首便会有「腻」的感觉。所以好的推荐引擎一定是兼顾了收敛和发散的。
那么用数据说话呢。
理想的情况是——
首先,制定一个(多个)核心指标来衡量公司的产品状态。比如 Medium 的 CEO Evan 说他们最关心的是用户的阅读时长。
其次,大的指标可以拆分成较细的指标,或者用一些次重要的指标辅助。比如阅读时长可以拆分为阅读的文章数和文章平均阅读时长;阅读时长之外,也可以加入互动数(评论数/赞同数/etc)来衡量用户对阅读的内容是否感兴趣。
最后,根据算法的迭代,进行对照试验,看 key metrics 的变化是否符合预期,符合上线,不符合下线修改再做测试即可。
然而现实情况并不是这么简单——
指标的制定异常困难,想建立一套数据体系来衡量产品的质量,需要多次的尝试和往复;加上公司不同部门、部门里每个人,对于事情的看法、甚至是价值观的不同,其中不乏撕x的情况。
以今日头条为例,CTR (click through rate) 是常见的用来衡量搜索或推荐产品的指标,比如今日头条推荐了一条新闻,10000个人看到了,最后有多少人点击了这条新闻去查看了详细内容呢?理论上,推荐的质量越高,点击率就应该越高。
但是正如 Evan 所言,片面的追求单一指标是有很大的风险的。为了提高点击率,推荐了很多标题党、与色情、暴力沾边的内容,都可能使 CTR 上升,但这并不意味产品或推荐的质量有提升(至少我是这么认为的)。所以在制定 key metrics 的时候,必须非常慎重。
——说了这么多其实就两点。
1. 结果指标比相关性更好。
2. 结果指标的制定需要非常慎重。
作者:刘韬
链接:https://www.zhihu.com/question/26990692/answer/58999540
来源:知乎
著作权归作者所有,转载请联系作者获得授权。
但是正如 Evan 所言,片面的追求单一指标是有很大的风险的。为了提高点击率,推荐了很多标题党、与色情、暴力沾边的内容,都可能使 CTR 上升,但这并不意味产品或推荐的质量有提升(至少我是这么认为的)。所以在制定 key metrics 的时候,必须非常慎重。
——说了这么多其实就两点。
1. 结果指标比相关性更好。
2. 结果指标的制定需要非常慎重。
作者:刘韬
链接:https://www.zhihu.com/question/26990692/answer/58999540
来源:知乎
著作权归作者所有,转载请联系作者获得授权。
用户分析
- 用户群
- 今日头条最早的种子用户来自于内涵段子等几个倒量进来的
- 今日头条的用户群体和快手类似,偏中下阶层的屌丝群体,而这帮用户的规模是很惊人的
- 所谓的核心个性推荐技术并不是核心,核心是推荐的新闻内容都是比较符合屌丝用户的三俗新闻,比如姐夫诱惑小姨子了、大波美女走光了等等诸如此类,牢牢得抓住了屌丝用户的❤,而且新闻本身呈现出趣味性。这才是为什么能轻轻松松的超越网易新闻的根本原因。看看快手的日活就知道,群众力量大哇!
产品方面
- 无线下拉刷新
内容运营
-
- 段子笑话美女。头条做内涵段子起家的,这个不多说。这个的群众基础太大了,前有糗百,后有百思不得姐,现在还有节操精选啊,槽厂/橘子娱乐,盖范什么的,国外也有 Buzzfeed,9GAG 这些
个人观点
- 对今日头条来说,目标是泛阅读
- 但是要在高品质精读之中, 个性化推荐能发挥的作用可大可小, 但是要想效果好必须积累大量的数据, 但高品质阅读又不能积累大量的数据, 我的观点是推荐不能完全是被动的个性化推荐, 必须增加负反馈, 甚至增加更多的和用户交互的途径来让用户自己控制系统。
其他资料
首页排序可以看做一个推荐问题或者搜索排序问题,对于这种问题一般分解为以下几个步骤: 一:匹配 通过用户的订阅的公众号,关键词,类目,过去浏览的文章的相关文章等方法得到候选集。 二:排序 根据文章的主题(PLSA、LDA)提前主题特征,word2vector 特征,关键词,作者,订阅号等特征,根据点击率预估排序。 如果是个性化的,还需要用户特征和文章特征的相关性特征放入逻辑回归等模型来训练。 三:过滤 根据展示过没有看的做去除;根据用户看的类目占比调整最终展示的类目占比等。
资料
- 今日头条的个性化推荐
- 采访 丁海峰:今日头条的个性化推荐
- 泛阅读产品“今日头条”是如何基于微博兴趣图谱做个性化推荐的?
- 今日头条是怎么从阅读市场竞争激烈的红海杀出来的?
- [https://www.zhihu.com/question/28997244]