个性化资讯推荐算法 ( 下 )

作者: justin

个性化资讯推荐 算法篇 ( 上 )

深度学习篇

日益红火的深度学习也在不断影响着资讯推荐,在这一节就简要review下最近爆出来的几篇相关文章,大致可以分为两类:1)embedding技术。此时深度学习主要用来学习user/item的embedding也就是通常意义上的user/item的表示形式,每个user/item可以表示为一个向量,向量之间的相似度可以用来改善推荐。这里深度学习的重点是用来学习合理的表示;2)使用深度学习直接对预测目标建模。此时深度学习的重点放在最终要解决的问题上。初看起来似乎第一种形式不如后者来得直接,但第一种形式在实际应用中通常能起到简化架构、快速解决问题的功效,还能作为一个基础特征来改进线上其他环节的效果。下面我们分别选择一两篇有代表性的文章来进行科普。

Yahoo Japan的新闻推荐团队利用denoising autoencode的技术来学习新闻的vector表示。Autoencode大家可能比较熟悉,它通过最小化变换前后信号的误差来求解,而denoising则是对输入随机加入一些噪声,再对其进行变换输出,最终是通过最小化加噪声后的输出和原始(不加噪声)输入之间的差异来求解。应用中不少结果表明,这种方法比传统的autoencode学习到的vector效果更好。具体示意图如下。

但这种方法是经典的无监督学习套路,直观来看和应用场景中要求相似新闻的vector也要尽量相似没有直接的关联(这里单单从优化目标来看,实际上由于语料的天然性质或者人们用语习惯,这个相似性的要求已经间接隐含在优化目标里了)。而新闻有很多人们编辑好或者其他模型产生好的类别信息,假如A、B新闻都是体育类,C是教育类的,通常意义上来讲A和B相似度是比A和C要高的。这是在训练深度学习时已知的先验知识,如果能把它加入到优化目标中,学习到的vector就能更好的表达相似度信息,于是有了下面的方法。

如图所示,通过在原始autoencode的优化目标中加入“同类新闻相似度大于不同类新闻相似度”这一项,我们就可以把先验知识作为约束加到模型中。Yahoo Japan的人实验证明了如此得到的vector确实能更好的表示(相似度信息)。

微软研究院也提出过一种很有趣的得到item表示的方法。作者利用用户的搜索日志,同一个query下,搜索引擎往往返回n篇doc,用户一般会点击相关的doc,不太相关的一般不会点,利用这个反馈信息也可以训练神经网络。具体示意图如下,这里的优化目标就是要求点击的一个doc_i的预测得分p(D_i|Q)要高于不点击的,论文基于这个信息构造除了损失函数,也就得到了最终机器学习可以优化的一个目标。

目前只介绍了如何得到item的vector,实际推荐中要用到的一般是user对一个item的兴趣程度,只有在得到user vector后才能通过算user和item的相似度来度量这个兴趣程度。那么如何得到user的vector呢?了解的同学可能能想到,既然我们已经得到了新闻的item的表示,想办法把他们传到user侧不就行了么?

确实如此,一种简单的做法是把用户近期点过的所有新闻的vector取个平均或者加权平均就可以得到user的vector了。但这种模式还有优化的空间:1)用户点击是一个序列,每次点击不是独立的,如果把序列考虑进去就有可能得到更好的表示;2)点击行为和曝光是有联系的,点击率更能体现用户对某个或某类新闻的感兴趣程度。鉴于这两点,我们很容易想到通过深度学习里经典的解决序列学习的RNN方法,Yahoo japan的人使用的就是一个经典的RNN特例:LSTM。训练时将用户的曝光和点击行为作为一个序列,每次有点或不点这样的反馈,就很容易套用LSTM训练得到user的vector,具体做法如下图所示。

微软还发表了《A Multi-View Deep Learning Approach for Cross Domain User Modeling in Recommendation Systems》,文章提出了一种有趣的得到user vector的方法,这是一个典型的multi-view learning的方法。现在很多公司都不仅仅只有一个产品,而是有多个产品线。比如微软可能就有搜索、新闻、appstore、xbox等产品,如果将用户在这些产品上的行为(反馈)统一在一起训练一个深度学习网络,就能很好的解决单个产品上(用户)冷启动、稀疏等问题。具体网络结构如下,总体的优化目标是保证在所有视图上user和正向反馈的item的相似度大于随机选取的无反馈或者负向反馈的相似度,并且越大越好。用数学公式形式化出来是
,对应的神经网络结构如下图所示。

今日头条

作为国内当红的个性化推荐产品,今日头条技术经历了三个阶段:

1) 早期以非个性化推荐为主,重点解决热文推荐和新文推荐,这个阶段对于用户和新闻的刻画粒度也比较粗,并没有大规模运用推荐算法。

2) 中期以个性化推荐算法为主,主要基于协同过滤和内容推荐两种方式。协同过滤技术和前面介绍的大同小异,不再赘述。基于内容推荐的方式,则借助传统的NLP、word2vec和LDA对新闻有了更多的刻画,然后利用用户的正反馈(如点击,阅读时长、分享、收藏、评论等)和负反馈(如不感兴趣等)建立用户和新闻标签之间的联系,从而来进行统计建模。

3) 当前以大规模实时机器学习算法为主,用到的特征达千亿级别,能做到分钟级更新模型。 架构分为两层(图来自头条架构师的分享):1)检索层,有多个检索分支,拉出用户感兴趣的新闻候选;2)打分层,基于用户特征、新闻特征、环境特征三大类特征使用实时学习进行建模打分。值得一提的是,实际排序时候并不完全按照模型打分排序,会有一些特定的业务逻辑综合在一起进行最终排序并吐给用户。

任何一种算法都有其局限性,业务要结合自己产品的特点,选择合适的算法解决特定的小问题,融合各种算法解决一个大问题。另外要设计合理的实验和放量机制,以在有限的影响内,最大程度地利用真实的用户行为来修正算法判定的结果。比如,可以先放5%的流量来试探用户对新闻的兴趣,并用模型进行建模;再用15%的流量来修正模型的效果,进行优胜劣汰;最后将真正置信的推荐结果推送到全量用户。

个性化资讯推荐的未来

个资讯消费是人的基本需求,个性化资讯推荐让我们能更好地消费资讯,享受生活的快乐。个性化资讯推荐还有很长的路要走,目前面世的产品仅仅迈出了第一步,看起来有模有样,实际上问题多多。例如被吐槽最多的一个问题:用户一天看了很多,但睡前闭目一想,记住的很少,对自己有用的更是凤毛麟角。这只是一个表象,背后其实暴露了很多现有推荐的问题。

要做好一个资讯推荐产品,不单单精准推荐技术需要演进,呈现形式、交互方式、产品形态、内容生态等等都需要去探索,最最重要的要想清楚以下几个本质问题:

1) 人为什么需要阅读?

2) 人为什么会消费资讯?

3) 用户为什么需要到你这阅读资讯?

4) 好的阅读体验到底是什么,如何量化?

5) 产品推荐的基因是什么?

加油吧,个性化资讯推荐!

参考文献:

  1. 桑赓陶,《 把握市场、产品和技术的动态匹配——韩国三星电子公司产品开发战略演变的基本原则及其对中国企业的启示》
  2. Personalized Recommendation on Dynamic Content Using Predictive Bilinear Modelswww, 2009
  3. Google News Personalization: Scalable Online Collaborative Filtering www,2007
  4. http://www.slideshare.net/techblogyahoo/deep-learning-for-news-recommendation slideshare, 2016
  5. A Survey on Challenges and Methods in News RecommendationWEBIST, 2014
  6. Personalized News Recommendation Based on Click Behaviorwww, 2010
  7. A Contextual-Bandit Approach to Personalized News Article Recommendationwww, 2010
  8. Learning Deep Structured Semantic Models for Web Search using Clickthrough Data
  9. A Multi-View Deep Learning Approach for Cross Domain User Modeling in Recommendation Systems MS Research
  10. http://www.ruanyifeng.com/blog/2012/03/ranking_algorithm_wilson_score_interval.html
  11. https://zhuanlan.zhihu.com/p/21404922
  12. http://www.36dsj.com/archives/36571

如何看待头条的成功?

网上很多人都从各种角度有过分析,但大都是通过现象来解释现象,抓住本质的不多。个人比较喜欢用“市场、产品和技术”动态匹配理论来看这个问题1:对于一个特定的企业来说,它在特定时点上所找到的、要去满足的市场是特定的;特定的市场要求企业用特定的产品去满足,而特定产品则是特定技术的某种物化。企业只有掌握相应的特定技术或者有能力在一定的时间内把这种特定技术开发出来并把它物化成特定产品,企业选择的特定市场才有可能得到满足。

用动态匹配理论来看头条,可以看到它的成功是如此之合理。随着资讯市场的成熟和发展,人们需要一个在碎片时间消费有趣资讯的产品,来解决用户的需求。这里的有趣因人而异,就需要用个性化的推荐技术去满足。如此看来,头条在合适的时机,用合适的技术做了合适的产品,造就了自己的成功。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏人工智能的秘密

如何才能成为一名自然语言处理工程师?

自然语言处理和大部分的机器学习或者人工智能领域的技术一样,是一个涉及到多个技能、技术和领域的综合体。

3785
来自专栏腾讯技术工程官方号的专栏

从研究到应用:腾讯AI Lab的自然语言理解和生成

腾讯AI Lab高级研究员李菁博士介绍了如何理解和生成自然语言,并介绍了实验室的相关研究和应用成果。

6.6K11
来自专栏CDA数据分析师

基础知识:统计学和数据挖掘的区别

1. 简介 统计学和数据挖掘有着共同的目标:发现数据中的结构。事实上,由于它们的目标相似,一些人(尤其是统计学家)认为数据挖掘是统计学的分支。这是一个不切合实际...

1845
来自专栏全栈数据化营销

3个案例说决策树应用:提高数十倍效率,还能帮你精准找到另一半

一个单身狗写下这个标题我是心虚!!! 很早就听说过决策树算法的威力,很早之前就做过决策树模型的分析和应用,这次就来看看决策树算法的操作和实际运用。 首先,要先理...

1K8
来自专栏CreateAMind

通用学习机全新理论体系简介

文章的英文原文的链接:http://arxiv.org/pdf/1706.00066.pdf

762
来自专栏AI研习社

Andrej Karpathy谈神经网络:这不仅仅是分类器,这是一种新的软件开发思想

有越来越多的传统编程语言(C、C++、Java)等程序员开始学习机器学习/深度学习,而对机器学习/深度学习的研究人员来说,编程也是必备技巧。那么传统程序员和深度...

3104
来自专栏企鹅号快讯

监督学习越来越准,我为什么要写bandit问题

监督学习的典型场景 在涉猎bandit问题之前,监督学习是很好概括的: 步骤 1 刻画原始需求: 给用户推荐一道菜,结果只有两个:用户喜欢或者不喜欢 步骤 2 ...

1928
来自专栏华章科技

干货请收好:终于有人把用户画像的流程、方法讲明白了

导读:用户画像将产品设计的焦点放在目标用户的动机和行为上,从而避免产品设计人员草率地代表用户。产品设计人员经常不自觉的把自己当作用户代表,根据自己的需求设计产品...

924
来自专栏新智元

一看就会!英伟达新研究教机器人仅通过观察人类行为完成任务

1634
来自专栏AI科技评论

动态 | DeepMind 开源TRFL,又一个强化学习复现、创新好帮手

AI 科技评论按:继今年 8 月谷歌开源发布了专为学术研究人员设计的简单但鲁棒的强化学习框架「多巴胺」(Dopamine)之后,早已被谷歌母公司收购但保持独立运...

733

扫码关注云+社区