所谓智能分发,即利用人工智能进行个性化推荐的技术,也称之为智能推荐,推荐系统。
思考三个问题:
1、国内外推荐系统最好的产品是什么?
2、什么是用户画像?什么是服务、内容、产品画像?
3、怎么利用机器准确匹配用户与服务、产品和内容?
以下是正文:
接上篇:服务核心所需的能力规划V1.0:懂我的保险管家 | 保险公司互联网平台建设系列(九),每一个版本的演化都离不开横向支撑体系的场景创新和纵向深度拓展体系的场景创新。
综述
在V1.0版本,我们会集中分享四个典型的场景,横向为创新型金融产品“续期宝” 、创新型增值服务“在线智能问诊”两个非常经典的场景;纵深方面,会集中分享创新型服务“智能分发”(本篇)、创新型服务“场景智能串接”两个场景。场景的分享无法穷尽,更无法解决所有企业所有的问题,仅做引子。
所谓智能分发,即利用人工智能进行个性化推荐的技术,也称之为智能推荐,推荐系统。
国内智能推荐做的比较好的企业目前只有两个,而且这两家企业从一开始,几乎所有的业务都是建立在智能推荐这一基础条件下的,一家是信息分发领域的字节跳动公司,代表产品有今日头条、抖音,另一家企业就是老牌互联网公司阿里,代表产品是淘宝、天猫、聚划算等等。
国外,各大视频网站都堪称推荐系统的佼佼者,典型的代表就是YouTube和Netflix,这两家公司依靠推荐系统,侵占了全球4/7的流量。研究推荐系统,这两家公司肯定是绕不过去的。
全文包括推荐系统架构初探、推荐起点是人与物的画像、推荐算法、应用场景、在效率和精准度上人是彻头彻尾的输家五部分内容。
推荐系统架构初探,本质还是数据智能
从工程师的角度来看,推荐系统的底层架构,即推荐系统架构,与搜索系统架构具有一定的相似度:二者实现的都是信息与用户意图之间的匹配。搜索系统是将海量内容与用户表达的意思通过关键词查询关联,推荐系统则是将海量内容与用户没有明确表达的偏好相互关联。前者需要用户交付确定性内容,后者需要通过规则判断用户确定性需要。
也就是说,只要了解了搜索系统的架构,基本上就很容易理解推荐系统的架构。通常,工程师把搜索系统划分为离线和在线两部分。
其中,离线部分专注于内容的搜集和处理。搜索引擎的爬虫系统会从海量网站上抓取原始内容,并针对搜索系统的不同要求建立不同的索引体系。比如,我们假设新内容是有时效性消费价值的,那么,为了让新内容能够被更好地检索,就可以建立专门的时效性索引用于存储几小时之内发布的内容。
搜索系统架构
索引是一个基于关键词的序列,每一个关键词对应一长串提及该关键词的内容(倒排索引)。比如,“教育”这个词命中内容1、2、3,“NBA”命中了另外一批内容1、2、4。
在线部分负责响应用户的搜索请求,完成内容的筛选和排序,并最终把结果返回给用户。
当用户输入搜索词后,系统会首先对搜索词进行分词、变换、扩充、纠错等处理过程,以便更好地理解用户的搜索意图。如上图所示,用户只输入“NBA”一个关键词,系统发现“NBA”和“美职篮”是同义词,就会将其扩充,以便两个词都可以应用在索引的查询上。
如果用户输入了“NB2S”,系统认为输入有误,就会将其纠正为“NBA2S”,并首先返回相应结果。
经历完搜索词处理后,将进入召回环节。系统通过多种方式从不同的索引数据里获得候选集合。在上图中,就进行了一个“2×2”的过程,两个搜索“NBA”与“美职篮”分别查询了全量的索引数据和时效性索引数据,一共获得了8篇内容的集合。召回得到的候选集合会继续进入排序环节,通过更精细的计算模型对每一篇候选内容进行分值计算,从而获得最终结果(如上图中的文章10和文章1)。
在展示给用户之前,搜索结果还需要经过规则干预这一环节。规则通常服务于特定的产品目的,对计算产出的内容进行最终的调整。假如我们有这样一条“官方网站保护规则:确保所有品牌名搜索词都可以优先返回官网”,那么规则层就会在文章10和文章1之前,强行插入NBA官方网站返回给用户。
在结果展示给用户之后,用户的点击反馈会影响到排序环节的模型。在下图中,用户在展示给他的两篇内容中只点击了文章10,这一行为会被模型记录为统计文章10和文章1在搜索词“NBA”下的表现情况。如果在“NBA”的搜索结果中,更多人点击了文章10,那么文章10在后续计算中的权重会升高,从而获得更靠前的展现位置(即点击调权的过程)。
以搜索系统为参考基础,我们可以更好地理解推荐系统的工作方式。推荐系统的离线部分同样需要通过各种方式来获取待推荐的内容(如用户提交、协议同步、数据库导入等)。对内容平台来说,其内容的结构化要远胜于推荐引擎爬虫抓取的内容。之后,离线系统依据推荐引擎对信息的不同理解维度对这些内容进行索引化处理,如话题、类目、实体词等。下图中展示了两个维度:分类维度和实体词维度。
在线部分,其理亦然:量化用户的请求,完成内容的筛选和排序。
推荐与搜索最大的差异在于用户表意是否明确。因此,推荐系统需要尽可能地完善用户的长期画像(对哪些类目、实体词、话题感兴趣)和短期场景(时间、地点信息),这样才能够在用户每一次请求时更好地揣摩用户当下的意图,以进行后续的内容匹配。
当用户打开内容推荐应用时,提交给系统的信息包括时间、地理位置、网络环境、手机设备型号、登录用户ID(身份认证)等。基于用户ID,推荐系统会从数据库中取出用户的画像数据(User Profile)。如下图所示的推荐系统支持分类和实体词两个维度的用户画像:在分类维度,用户对体育和科技内容感兴趣;在实体词维度,用户对NBA感兴趣。基于体育、科技、NBA,推荐系统会进行下一步的内容召回和排序操作。
点击调权过程
召回和排序操作与搜索系统比较相似,系统基于类目查询和实体词查询分别获得候选内容集合。排序模块按照特定预估目标(如点击导向、互动导向、停留时长导向等)对候选集统一排序,并经过规则层的处理后最终反馈给用户。
值得注意的是,在推荐系统中,用户的行为不仅像在搜索系统中那样具有针对内容价值的群体评估意义,而且还具有针对自身画像的个体进化意义。
在群体评估意义层面,每一个读者就像是一名陪审团成员,通过自己的行为来决定某篇内容的好坏。比如某篇关于NBA的内容,如果连偏好NBA的用户都不怎么点击,那么这篇内容在“NBA”这个实体词下的权重自然应该降低。这一部分的应用与搜索场景比较类似。
在个体进化意义层面,用户的阅读反馈行为在持续改进着自身的画像。比如,用户是热火队的粉丝,那么在行为层他就会更多地点击与热火队相关的NBA内容,系统捕捉到这一信息后,就会在他的画像中补充“热火”这个实体词,从而影响后续的推荐内容流。
当然,搜索和推荐的区别,在于前者是人找信息,后者是信息找人。这也是为什么百度向信息流转的时候,可以迅速获得超过4成的市场份额,因为底层预备的技术能力是OK的,具体做什么前端的业务展示,并不复杂。
推荐起点是人与物的画像
在了解了推荐系统的架构后,我们做的还有三个步骤:(1)要更好的理解待推荐的内容。这个内容可能是一篇文章,也可能是一个服务,或者一款产品,甚至只是一堆待加工的原材料。(2)要更好的了解要推荐给的人。这是一个动态理解的过程,基础是对用户进行画像,也就是我们前面讲的360°用户视图。(3)匹配,即推荐算法,即高效、精准的完成内容与人之间的对接。
1、内容画像:要更好的理解待推荐的内容。
想要把内容准确的推荐给需要的人,首先要让系统充分的理解内容的特点,内容刻画最简单的方式就是我们常说的“打标签”。标签是人对三维事物、二维事物的一维化理解,抽象出事物更具有表意性、更为显著的特点。在不同的应用场景下,要对标签全集进行有针对性地投射,有倾向性地选用不同的标签以换取信息匹配的效率最大化。
通过更系统化的分类方式,可以完整地呈现出一个内容的特点。这涉及到标签和分类的关系。
一般情况下采用的分类都是树状的,是自上而下依次划分的。在分类体系里,每个节点都有严格的父类继承关系,在兄弟节点层都具有可以被完全枚举的属性值。例如,将人类属性基于性别划分为男女,就能够覆盖全部人类属性,其实,要是研究过淘宝的人,都知道淘宝的性别标签有18个。由于树状的层次结构性较好,所以在内容的分类查找领域,有很多应用。
应用的分类必须考虑分类权威性和信息完备性问题,避免因为子节点覆盖不全或分类错误导致的认知问题。
如果标签是网状的,更强调表达属性关系(has a)而非集成关系(is a),只有权重大小之分,不强调包含于被包含关系。这就使得相对于分类而言,标签的灵活性更强。在权威性方面,标签是弱化的,每个用户都可以参与进来为自己的喜好贴标签,也可以为自己喜好的内容贴标签,从而借助规模效应实现对信息表意完备性的覆盖。
由于网状结构包含树状结构,故而标签可以被应用于分类的场景,在设计系统时,可以先基于产品场景快速覆盖主要标签,在结合标签集合的使用频次、专家建议等因素逐步将部分入口收敛到树状的分类体系中来。
最后,值得一提的是,标签是怎么产出的?答案就是PGC和UGC,即专家系统产出和用户产出。很多金融公司的产品App,到目前为止都没有开放UGC的功能,从某种意义上说,用户、内容的画像都不可能有机会完备。
2、用户画像:要更好的了解要推荐给的人。
与内容画像相对应的,是用户的画像。用户画像是产生动态的超级360°视图,具体可参考这篇文章:构建超级360°视图,全方位认知用户 - 企业数字化转型:外部驱动力之客户篇(五)。用户画像也是给目标用户贴标签的过程,通过标签来描述一个用户的特征集合。
通常,用户画像主要应用场景包括:精准营销、行业研究、产品效率优化、个性化服务等等,实际上所有围绕个人用户的产品,都是典型的用户画像需求方。具体应用场景就不展开详细说明了,智能推荐就属于产品效率优化。其中,应用最具有深度的就是信息匹配,今日头条、抖音、淘宝、Facebook、YouTube和Netflix都是典型的佼佼者。所有这些平台,都是基于用户的画像信息来优化推荐排序的,从而实现人和信息的高效匹配,以提升效益、降低成本,提高用户体验。根据Netflix官方2016年的数据,个性化推荐系统每年为它的业务节省费用超过10亿美金。
中性的技术,在不同人手里可能就有不同的用户,某些人利用系统中,用户无法区分真假货,从而针对性的进行真假货混发。特别是根据用户收货地址、过往评价可以轻松推断出用户的认知水平,从而决定发送真货、高仿还是其它假货。
另外一个面临的问题就是价格歧视,保险歧视等问题,同一件商品不同人加入购物车,显式的价格是完全不一样的,价格敏感性用户往往更容易收到优惠券。
3、动静态数据
通常,我们把用户画像的数据分为静态数据和动态数据。
静态用户画像数据:一般包括用户独立于产品场景之外的属性,如性别、学历、年龄、婚育状况、常住位置、教育程度以及家庭结构等等。这些信息往往是相对稳定的,可以通过第三方联合登录、用户表单填写等方式获取。静态数据通常具有统计意义,但在满足实时服务需求和挖局潜在需求方面,价值并不高。
动态用户画像数据:用户在产品场景中所产生的显式或隐式行为的数据。显式行为包括对某篇文章、某个服务、某段视频的点赞、评论、转发、分享,关注了某个领域的作者等等。在众多显式行为中,由于产品场景的不同,不同行为的权重也不尽相同。像电商的场景,典型的权重依次为:购买的权重>下单不支付的权重>购物车的权重>查看的权重。隐式行为包括在页面停留的时长、某屏内容停留的时长、用户操作行为轨迹、手指按压滑动的频率和力度等等。通常,显式行为的权重要高于隐式行为,但还是要依赖不同场景决定。由于显式行为更为稀疏,所以需要隐式行为来补充验证。
最后就是关于动静态数据的权重问题,实际上,动态数据价值意义更大,一般在很多场合,都是先将常数n设置为0.8,然后再后续不同场景中,后续升级是确定n=f(x)具体函数,从而进行计算。
推荐算法
第三个是推荐算法,就是我们拥有了完备的内容画像、用户画像,怎么将合适的内容,准确的匹配给需要的用户。淘宝早期的做法,是基于其固有属性来计算物品与物品之间的相似度,从而推荐与用户历史消费相似的新物品。如果是内容中的文章,常见的因素就有作者层面的相似性、内容层面的相似性、同类用户层面的相似性等等。
一个人在某个场景下怎么决策,我们首先要把他抽象成一个模型,然后要找到一套数学的方法,让它能够收敛,用模型去优化他的决策。通过该收敛的结构去匹配内容的过程,就是智能推荐系统连接人和内容的过程。
当然,到此并未结束,一般情况下,系统一次性就推荐到用户百分百喜欢的内容是不太现实的,此时就要让系统形成有效的反馈闭环。将结果快速反馈到用户交互层的产品上,用户喜欢点击了还是未点击,快速给一个反馈,系统经过优化,再次推荐一个结果,如此往复,形成一个学习、提升、再学习、再提升的过程。这就是推荐算法的价值所在,也是系统推荐之所以高效、精准的原因。
应用场景一,YouTube 内容推荐系统
2016年9月18日,在波士顿举办的第10届ACM推荐系统大会(ACM’s RecSys ‘16)上,来自Google的一个研究团队公布了YouTube推荐系统的深度学习论文:Deep Neural Networks for YouTube Recommendations。
论文地址:https://research.google.com/pubs/pub45530.html
论文作者是Google的软件工程师Jay Adams与高级软件工程师 Paul Covington、Embre Sargin,他们向业界展示了YouTube在机器学习推荐算法上的深度神经网络使用情况。该论文涉及到一些非常技术、非常高级的细节,但它最大的意义是为我们完整描绘了YouTube推荐算法的工作原理!!该论文细致、审慎地描述了YouTube检索、筛选并推荐视频时的大量细节。
在YouTube,人工调整算法、人工权衡这些调整并将其部署上世界最大的视频分享网站的机会将越来越少。而是由算法实时来读取数据、为视频排名,然后基于这些排名来推荐视频。该论文以算法的基本架构作为开篇,下面是作者的图示:
该系统由两大神经网络组成,一个用于生成候选视频,一个用来对其排名。这两个过滤器及其输入内容,基本上决定了用户在YouTubes上能看到的每一个视频:建议你播放的下一个、推荐给你的视频列表、你所浏览的视频列表……
第一个过滤器是候选生成器。候选是基于用户的YouTube活动记录产生的,也就是用户的观看历史与观看时长。候选生成器还会考虑相似用户的浏览记录,这一点被称为协同过滤。相似用户是算法通过视频ID、搜索关键词及相关的用户统计信息决定出来的。
候选生成器的通过率仅为属百分之一,换言之,如果某个视频能从数百个中脱颖而出成为你的候选视频,它必定是跟你的观看记录有关,同时还有一个跟你相似的用户已经看过它。
第二个是排名过滤器。该论文对排名过滤器进行了大量的深度解析,并列举出不少有趣的因素。排名过滤器是基于描述视频和用户的丰富特征,目标期望函数会给每个视频设定分数。根据分数排名,得分最高的视频将被展示给用户。根据论文透漏,排名过滤器中用到了数百种特征。
最后,简单的总结就是:
(1)YouTube使用三个主要的观看因素来推荐视频,它们是用户的观看历史、搜索记录以及相关的用户统计信息。
(2)推荐视频是通过候选生成器与排名过滤器的筛选出来的,这两大过滤器决定了YouTube如何读取、筛选视频,如何生成推荐列表。
(3)排名过滤器主要是基于用户输入的因素,其他因素还包括视频的”新鲜程度“和点击率。
(4)推荐算法的设计初衷是持续增加用户在YouTube网站的观看时长,其方法是持续把视频A/B测试的实时结果不断反馈给神经网络,从而使YouTube能不断为用户推荐它大体上就是一个用于预测用户观看时长的简单函数。
应用场景二,Netflix的推荐和个性化系统架构
相较于YouTube较为抽象简化的数据流图,Netflix的架构图稍微显得复杂一点,不过依然保持了离线模型的训练、在线召回排序、更新用户画像与内容画像的基本结构。
系统在实时响应用户请求的在线层和负责数据处理、模型训练的离线层之间增加了NearLine层,即所谓的近线层,以实现计算规模和实效性的折中。
在数据流上,用户的所有动作,包括选择、播放、暂停、评分、浏览等行为,共同构成了在线层的输入。根据业务需要,Netflix将用户行为拆分为数据和事件。其中,数据的时间敏感度更低,事件的时间敏感度更高。比如,在用户观看一部电影之后,如果希望及时更新用户的推荐列表,那么这次观看动作就会被是做事件型进入近线层,以更快地更新用户画像数据。
用户的请求,经由多种召回方式,从离线索引中获取结果后,经过在线的模型排序计算,将最终结果返回给用户。
启示,在效率和精准度上,人是彻头彻尾的输家
由于我们自己的平台在2017年启动了全面智能化策略,所有用户看到的信息,除个别强制推荐的以外,都是系统基于用户行为进行智能推荐的。一级页面的布局结构,完全实现了所谓的千人千面甚至一人千面的构建,单个服务内容的具体展示,也逐步向智能推荐系统方向优化,例如上一篇所介绍的“智能问诊服务”。
相比于传统的千人一面的结构和总编推荐模式,机器推荐的效率、精准度上,都是人类无法比拟的。例如相比如出版业总编推荐模式,今日头条智能分发的效率是其2.4亿倍。这是人工手段下所无法想象的。
在人机效率、精准性的较量中,人只会越来越失败,差距只会越来越大。
参考文献:
1、《内容算法》
2、《Deep Neural Networks for YouTube Recommendations》- Google的一个研究团队公布了YouTube推荐系统的深度学习论文
3、Netflix的工程师Xavier Amatrain和Justin Basilico在官方博客