微信「看一看」多模型内容策略与召回

看一看介绍node

 

相信对于很多人而言微信已经成为获取资讯的主要场景。与此同时,因为微信用户群体的庞大,也吸引了大量的内容生产者在微信公共平台创造内容,以获取用户关注、点赞、收藏等。微信内的内容推荐产品:看一看应运而生。算法

 

基于微信经过多年的用户沉淀,积累获得的大量“隐式反馈”阅读兴趣信息,能够精准的实现内容与内容消费者之间的推荐。同时,秉承下降用户获取信息茧房效应,拓宽用户阅读兴趣,加强互动,强化用户认知,及时获取咨询等等诉求,看一看不断在算法迭代的同时,引入各种腾讯系,外部图文,视频,资讯,小视频等内容,丰富内容多样性的同时不断上线优化产品体验与进行样式优化。小程序

 

内容库与内容画像跨域

 

■  2.1 内容源性能优化

 

看一看接入了很是多合做方的数据做为内容源,包含但不只限于微信公众平台及其余外部内容等等。微信

 

因为接入数据源较多,各家数据在内容、质量、品类等方面差别性比较大。看一看平台方会对数据作“归一化”操做,包括标签统一化,推荐标签提取,内容投放目标,投放人群倾向性等内容理解处理,这部分咱们称为看一看内容画像部分。网络

 

■  2.2 内容画像session

 

内容理解:对接各类外部图文等内容,对接入内容作业务级内容多维基础理解,同时进行外部标签与自有标签体系对齐,完成应用级内容打标;反馈至下游应用方:用户需求系统,召回策略,召回模型,排序/混排等使用;同时,在业务数据滚动与迭代中修正数据判断精度与效果,逐步贴合与提高业务线效果;多线程

 

 

咱们将内容画像,定义为两个大维度:经过内容自己来理解内容, 经过用户行为来理解内容。前者主要针对内容抽取静态属性标签;后者则经过用户行为积累的后验数据、统计或模型预估内容的知识、倾向性、投放目标以及抽象表达。架构

 

■  2.3 多模态标签语义标签

 

咱们将文本语义按粗到细粒度分为:文本多分类(1-3级),主题topic model(长效topic,实时topic),tagCluster, tag/entity;这也是NLP领域持续在关注和研究的重点方向;文本分类与模式识别中心合做对长/短文本训练基于标注的增量多分类模型(1-2级分类准确率能够达到90%+),支持领域内DL文本分类模型;Topic Model做为重要分支,为支持看一看推荐业务,解决了时效性热点的快速topic增量模型,实现多层级(1000维,1500维度,5000维, 1W维)topic model,以及以此为基础衍生出的topic Embedding技术等;Tagcluster是介于tag和topic粒度之间的一类tag聚簇概念,维度为10W级;用于解决语义自动语义聚合的可解释问题;关键词提取(标签提取),技术演进从传统的基于标注,到半监督,到自动标注的序列提取的浅层模型;已经所有迁移为基于bilstm+attention+CRF 和 bert的一套深度模型系统。标签是推荐系统的核心基础能力,深度模型的引入对算法准确率与覆盖率都有显著的提高。

 

视频理解的相关维度,咱们与外部团队深度合做,创建起一套基于短/小视频,封面图多维度的多媒体特征体系,包括人脸识别,人脸embedding,标签,一二级分类,视频embedding表示,水印,OCR识别,清晰度,低俗色情,敏感信息等多种维度。有力辅助多媒体理解深度,并普遍用于召回模型,曝光展现策略,过滤策略等,目前,在召回与策略层面已经证实有必定在线提高效果。

 

■  2.4 基于知识体系的表示与可解释标签

 

知识图谱做为知识承载系统,用于对接内外部关键词信息与词关系信息;内容画像会将原关系信息整合,并构建可业务应用的关系知识体系,其次,依赖业务中积累用户行为产生的实体关系数据,自己用户需求的标签信息,一并用于构建业务知识的兴趣图谱,基于同构网络与异构网络表示学习等核心模型,输出知识表示与表达,抽象后的图谱用于文本识别,推荐语义理解,兴趣拓展推理等场景,直接用于兴趣推理的冷启场景已经验证有很不错的收益。

 

■  2.5 嵌入表示

 

语义嵌入表示:这类是相对已经比较成熟的技术,基于短文本tag, word粒度,句子粒度,doc粒度均可以构建embedding表示。其次,除文本外,更为丰富的多媒体信息的融入,已经能够验证在必定程度上能够加强表达能力。

 

其次,咱们基于微信阅读场景的用户点击/分享/关注等等序列结合场景的上下文信息,以他们做为文本切割的序列标注信息,早起基于传统的HMM,CRF类浅层模型,发展至目前的seq2seq,RNN,transformer,Bert等序列类,语义类模型,将内容做为文本切割的一个子序列,从而实现对文本的序列的表示信息。因为更加贴近推荐场景,这类嵌入表示业务可用性会更高,也体如今召回/排序模型的应用效果会更加明显。

 

■  2.6 倾向性与目标性识别

 

 

这部分是经过用户行为数据来理解内容的重要体现。分为两部分:内容倾向性与内容投放目标性。都是创建在一套基于文本,多媒体,kg,投放日志等下的一套分类器进行打标,模型如上图所示。

 

   内容倾向性:内容经过分类模型预打“倾向性”标签,例如:内容适合的性别倾向、年龄倾向性、地域倾向性等等,从而预判待投放内容的特殊人群倾向性;

 

   目标性识别:看一看的场景会比较多,例如:主TL流,视频流,专题流,tag可点流,看一看+小程序,每一个场景都有不一样的投放目标(例如:主TL内容会以点击率为主,专题流会以时长消费为主,小程序分享率为主),因此,咱们会在item上一样基于投放预估的模型预先打上一组目标识别标签预判分数,供在线策略使用与内容库构建、以及内容试探等。

 

综上,经过内容理解与内容库构建的概要流程图以下:

 

 

这部分产生的判断维度会对全部接入看一看的内容进行组合打标,经过不一样产品场景或渠道来交叉组合,构建推荐的内容库。同时,标签会不一样力度的用于在线召回过滤策略,做为模型召回、排序特征来使用。应用证实对于新内容的冷启动筛选,特定投放目标库群体效率提高明显。

 

召回架构

 

推荐系统的召回阶段能够理解为根据用户的历史行为数据,为用户在海量的信息中粗选一批待推荐的内容,挑选出一个小的候选集的过程。在看一看召回演进路上,咱们曾经调研大量主流的工业界推荐系统的召回架构的设计,以下:

 

 

能够看到各种同类竞品的系统虽然细节上多少存在差别,但不约而同的采起了多路召回的架构,这类设计考虑以下几点问题:

 

1.考虑用户层面:用户兴趣的多元化,用户需求与场景的多元化:例如:新闻需求,重大要闻,相关内容沉浸阅读等等

 

2.考虑系统层面:加强系统的鲁棒性;部分召回失效,其他召回队列兜底不会致使整个召回层失效;排序层失效,召回队列兜底不会致使整个推荐系统失效

 

3.系统多样性内容分发:图文、视频、小视频;精准、试探、时效必定比例;召回目标的多元化,例如:相关性,沉浸时长,时效性,特点内容等等

 

4.可解释性推荐一部分召回是有明确推荐理由的:很好的解决产品性数据的引入;

 

看一看召回目前设计为多路召回形式,从功能性角度分为以下几类:模型类召回、相关场景类召回、基础属性召回、社交类召回、试探类召回、产品策略/运营类召回六大类。以下图所示:

 

 

1.模型类召回:目前看一看曝光占比最大的一类召回策略,能够很好的解决推荐系统中长短时间兴趣自适应、必定程度的兴趣扩展、业务场景扩展与迁移等几个核心召回问题。为下文着重介绍的内容。

 

2.相关类召回:看一看包括多个相关推荐场景。这类召回依赖内容画像对内容的语义判断能力,采用孪生网络类设计思路,解决跨内容域(例如:视频与图文,封面与标题等)相关性问题。知足用户在推荐系统内对沉浸式体验的需求。

 

3.基础属性类召回:属于比较基础的一类召回,但具备几点重要意义:因为多重标签的对item的覆盖度会比较高,因此这类召回很好的能够知足冷启类,兜底类场景;其次,属性具有良好的可解释性,能够很好的对模型类召回以及相关特殊外显场景下的解释性做用,一般也是产品订制或规则的重要维度。

 

4.社交类召回:是看一看比较有特点的一类召回,基于微信丰富的社交场景,看一看设计了:“好友在读”,“XXX都在看”,“在看”等几类设计相关推荐。

 

5.试探类召回:一般的推荐系统都会面临“信息茧房”问题,即:人们的信息领域会习惯性地被本身的兴趣所引导,从而产生多种主动行为:咱们也称为对推荐系统的隐式反馈信息,这类行为又会做为推荐系统的学习目标,从而让推荐结果逐步收敛,用户再没法获取更普遍的内容,信息桎梏于像蚕茧通常的“茧房”中的现象。兴趣试探会解决这类问题。另外,推荐系统做为一类内容分发平台,承担着甄选优质内容,发现潜力优质内容,并在必定程度上去中心化投放的能力,内容试探队列会解决这类问题。

 

6.运营&产品策略召回:知足产品以及一些节日、新闻、话题、合做方等特殊定制场景。

 

7.粗排

 

队列演进

 

 

看一看召回策略演进主要经历了四个阶段,这里并非表明后者替代前者,因为不一样队列的意义和解决的问题的差别性,各个阶段的一些队列目前还会有不一样状况的保留在系统中:

 

■  4.1 基于属性召回

 

这一阶段比较重的依赖内容画像与用户需求的细粒度判断,咱们走过了一段基于天然语言处理、基于用户行为来对内容作丰富的细粒度内容打标签的阶段,接着,用户需求会基于阅读、搜索等用户行为将内容属性标签纳入用户需求。内容属性标签构建倒排与正排索引,各路召回在线基于用户需求的多个细粒度维度判断以及实时阅读历史的item属性信息,经过拉取倒排item拉链,获得各路召回的候选结果。这阶段中,例如:tag、类目、topic,已关注公众号队列占到了召回大头比例,这类属性具有很好的可解释性。

 

■  4.2 协同&社交召回

 

CF主要的功能是预测和推荐。算法经过对行为数据的挖掘发现用户的偏好,构建用户(user)需求或者内容(item)画像,基于不一样的偏好对用户进行群组划分来向用户推荐可能感兴趣的内容。协同过滤的核心思想,简单地说就是:物以类聚,人以群分。以下对CF类算法的经常使用归类示意图(来自wiki)能够比较好的表达咱们对协同类算法的演进路径。

 

 

首先一类是:Memory-based approach(图中是Neighborhood-based),当时尝试的这类协同过滤计算,思路为:“邻居”的思想,分为User-based CF(简称UserCF)和Item-based CF(简称ItemCF)。在前期阶段中,行为+id维度构建的item cf 与user cf都有明显的在线效果提高,历史上在线曝光占比一度很是高;可是这类方法依赖item或user维度有大量行为累计,不然泛化和推荐能力不好,且具备很强的驱热性问题。

 

另外一类,即考虑item内容信息的content-base approach类,即内容协同:咱们称为ContentBase(解决夸内容域的各种相关计算场景的一类召回);看一看场景中有很是多语义相关的应用场景,例如:相关推荐、去重、打散、召回/排序特征等等。咱们解决跨域的语义相关问题,整理出一套统一框架,方便统一调用使用。架构总体为三层,相关算法层,并行优化层和算法接口层。总体相关性框架以下图所示:

 

 

咱们使用深度语义匹配模型来进行文本相关性的计算,主要经过embedding、滑动窗口、CNN、MaxPolling,前馈网络,最终经过余弦距离计算两个文本的类似度,以下图所示:

 

 

线上的item聚类算法的难点是如何在几十ms内完成上百篇文档的聚类类似度计算、语义类似内容召回等算法,咱们在并行优化层进行了“并集查询加速”,“类似漏斗形加速”,“多线程”加速等多点优化。目前也已经服务化,知足推荐场景下复用,落地看一看场景内各种相关性场景。

 

随后,咱们上线了Model-based approach,在这种方法中,重要的思路为利用模型来预测用户对未评估item的评分。有许多Model-based CF算法:贝叶斯网络( Bayesian networks),聚类模型( clustering models),隐语义模型(LFM),如奇异值分解(SVD),几率隐语义分析( probabilistic latent semantic analysis),多乘法因子(multiple multiplicative factor),latent Dirichlet allocation(LDA)和基于马尔可夫决策过程类模型(Markov decision process based models)。例如,咱们在线的一种比较有效的方案:BPR(Bayesian Personalized Ranking from Implicit Feedback)其核心原理很是天然:将user-item序列(能够是任意点击,阅读,收藏行为)转化为item-item 的knn标注矩阵,如图:

 

 

方法中构造训练数据考虑的feature-item包括三类:

 

用户真正讨厌的;

 

用户missing的;

 

用户喜欢的;

 

对于某个用户来讲,在训练时都被标为"0"的item,在预测时的评分也能够排序,所以不影响ranking任务的完成。在咱们系统实践时也不必使用所有历史数据,只须要以session切片,从中按照上述形式构造pair-wise数据便可

 

 

经过这类方法,降维方法大多被用做补充技术来提升基于内存的方法的鲁棒性和准确性。另一方面,对于像奇异值分解,主成分分析等方法,根据潜在因素将用户项目矩阵压缩成低维表示。使用这种方法的一个优势是,更好地处理原始矩阵的稀疏性。此外,对于处理大型稀疏数据集时咱们下文也会介绍,借助大规模knn能力,这类矩阵相关性的计算能够获得很好的解决,很是适合召回场景。

 

第三类是Hybrid models(也就是前两种的混合模型)。许多应用程序结合了memory-based CF算法和model-based CF算法。这些方法克服了原生CF方法存在的局限性并提升了预测性能。其实上,这部分的进一步尝试,已经归类和被为下文将要介绍的深度模型召回所替换。 

 

社交类召回,是微信场景下的特点数据,好比:

 

基于天然好友的:在看;

 

基于兴趣的:在看,XXX为基于兴趣关系获得的聚蔟关系;

 

又好比18年10月上线的在看频道:基于用户主动点击在看按钮,收集效果一类社交阅读场景。

 

■  4.3 试探类召回

 

随着业务发展与对用户理解的深刻,出现几类问题亟待解决:用户获取信息一般表现出很强的短时间效应;咱们在线经过引入用户实时阅读历史数据,利用短时间阅读行为信息做为触发源,构建隐语义类召回策略。

 

但同时,咱们很快发现,点击类指标提高带来的代价是短时间内容集中,内容类型快速收敛,主要缘由也是策略过于依赖短时间行为,召回内容的集中,致使上层模型快速收敛,用户行为收敛,逐步致使很强的信息茧房效应。召回测试是急需引入更为泛化与具有试探能力的召回。随着业务dau逐步提高,不断有新用户、新内容引入系统,如何解决冷启问题也须要着重考虑。

 

  知识图谱类

 

在微信生态中,即便对于一个看一看新用户,咱们也能够根据极少的用户/内容基本信息进行推荐。内容协同使用了异构网络的方法进行文章召回。

 

 

咱们搭建了基于知识图谱的异构召回模型。该方法以知识图谱给出的“先验”关系信息,将文章feature与用户feature作关联,构建出一个同时包括用户特征又包括文章的特征的异构网络,经过图谱异构网络的表示学习,获得异构节点的向量(user profile feature与doc feature)。已经有相关理论支持,能够获得特征之间的独立性与向量的加和性,从而实如今特征匮乏状况下,不会过渡依赖单一用户需求或内容画像特征进行召回。对合并后的向量相关性计算召回与该用户最相关文章。

 

  试探(兴趣试探/内容试探)

 

解决两类问题,拓宽用户的兴趣面,减小发现优质内容的周期。试探能力须要打通整个推荐系统的绿色pass通路,容许内容或兴趣召回能够全链路走特殊通路:包括:数据通路,模型通路,定制召回/排序/混排模型等能力。

 

 

咱们召回经过设计两类试探策略,解决上述问题:

 

兴趣试探:咱们系统中经过:跨域用户兴趣试探,中长尾闭集合兴趣试探,全集合兴趣试探模型三类策略就行兴趣试探。并建设了一套以用户需求的试探成功率,试探标签的有点率,点击率衡量试探效果的实验体系,能够闭环的验证链路效果;

 

 

内容试探:咱们设计了:内容质量识别(离线),运营系统(旁路),流量预估(在线),内容投放目标性识别(在线)来投放与优化投放效果,经过全链路的对内容标签修订,试探投放,日志模型定制化,迁移学习,上线后以ABTest中以新内容系统获取曝光后的试探内容点击率,试探成功率,试探多样性衡量闭环效果。

 

 

■  4.4 深度模型召回

 

下文对这部分工做进行概要介绍,按类别咱们将模型召回分为四类:

 

   序列模型

 

   双塔模型

 

   混合模型

 

   图模型

深度模型召回

 

召回是处于推荐业务的底层位置,首先,处理数据规模相比上层排序要大几个数量级,其次,要求准确的同时,兼顾多种业务和用户体验目标,例如:多样性,社交,时长,负反馈,分享等等。在诸多限制下,模型召回系统会着重解决几个问题:

 

1.候选数据规模大;对模型性能要求高

 

2.user-item 交叉类特征算法,因为召回的检索逻辑限制,这类算法支持不友好;

 

3.底层数据种类繁多,模型须要具有很强的自适应能力

 

4.解决:多样性与精确性的两难选择

 

5.模型实时性问题增量模型

 

6.用户/内容冷启的召回问题

 

7.横向业务演化阶段,模型如何快速孵化新业务,即迁移能力

 

 

对于深度模型召回来讲,须要有特定的架构模式来应对,咱们的解决方案以下图所示,模型训练为离线实时训练获得用户与item两侧的参数或embedding数据,参数部分依靠微信基础平台部提供的强大在线feature KV系统进行实时存取,user与item在线进行KNN计算实时查询最近领结果做为召回结果,其中KNN服务由基础平台部基于对Facebook开源的faiss升级改造的一套系统,能够在5ms内完成千万级内容的快速查找。

 

 

■  5.1 序列模型

 

推荐系统主要解决的是基于用户的隐式阅读行为来作个性化推荐的问题;因此,咱们尝试的方法是将用户在隐式阅读场景下表现出的点击文章序列构建为一个长文本,这样阅读文章和点击能够当作是文档的Term。那么无数的用户阅读历史序列就能够看成是自然的语料库,如此能够将隐式推荐问题迁移为天然语言处理中的语义(语言)模型可cover的范畴。基于神经网络模型学习获得Word2Vec模型,再后面的基于RNN的语言模型,这些方法均可以应用到语料的学习中。此外,seq2seq的机器翻译模型也能够帮助咱们挖掘更多额外的信息。

 

■  5.2 N-Gram 语言模型

 

固然咱们还有可使用最基本和最经典的语言模型N-Gram模型来挖掘这批语料,考虑计算2-gram,3-gram,能够帮助咱们了解item之间的转移几率信息。此外近几年提出的Word2Vec的模型能够看做是从另一个维度去描述判断N-Gram的语言模型,Word2Vec的模型能够将term表达成一个稠密的向量,保存了语义信息,被认为是更加突出的语言模型。

 

■  5.3 RNN-based的语言模型

 

Rmb(rnn model based recommend)使用循环神经网络对用户阅读序列信息建模,捕捉用户阅读的序列关系和长期阅读兴趣的起止。训练时使用用户阅读序列和文章语义信息,线上使用循环神经网络预测topk进行召回。

 

基于循环神经网络的推荐模型(Recurrent Based Recommendation)是对用户阅读顺序使用循环神经网络的方法进行建模。该模型解决了在相同用户属性和相同阅读集合的状况下召回内容同质的问题,rmb能够对用户阅读顺序进行建模,即便相同用户属性,相同阅读集合的用户,若是他们阅读内容的顺序不一样,也会有不一样的召回结果。rmb能够对长期用户阅读历史和序列信息进行很好的建模。

 

为了更好使深度神经网络模型进行学习,首先使用item embedding方法将文章或者视频的ID映射到一个固定维度的稠密向量空间中,而后根据用户的阅读行为和文章的语义,对用户阅读序列进行建模。

 

 

■  5.4 使用基于seq2seq的encoder-decoder模型

 

用户的阅读历史能够经过Session的切分原则划分为不少个Document,也就是说咱们能够将一个用户抽象为文档序列。给定一个文档序列,能够预测用户接下来的阅读序列,在这里咱们将利用seq2seq来解决这个预测问题,将用户的阅读历史进行encoder,而后decoder出一个新的序列来做为推荐候选集。在预测的过程当中咱们将文档中词的Embedding向量组合成一个文章的向量,基于用户的阅读历史序列能够进行有监督的学习,优化词的Embedding向量。这种思想借鉴了Seq2Seq,咱们能够考虑使用用户的前半部分session预测用户的后半部分session。这些都是相似机器翻译的NLP技术,咱们坚信这种策略可以为咱们提供合理有效的序列推荐。

 

 

■  5.5 Translation模型

 

在天然语言处理领域,神经机器翻译(Neural Machine Translation,NMT)模型大大提高了机器翻译的质量,使得机翻译文在忠实度、流利度方面首次超越人类专业译员。咱们知道推荐业务中,线上粗排和精排的多队列融合加权,致使策略最终曝光量和多样性会明显降低。所以,咱们考虑基于NMT模型来提高线上视频推荐结果的多样性,主要缘由有如下两点:

 

一、NMT建模处理较长序列(长度> 30),一方面,能够将时间、地点等Context信息、以及video自身的语义信息融合到用户的点击序列中,供模型学习;另外一方面,根据用户和video相关Context信息,对用户进行视频推荐。从两个方面提高视频推荐结果的独立性和多样性。

 

二、NMT能够同时对item点击序列中item之间的局部和全局依赖关系进行建模,能够召回存在远距离依赖关系且用户感兴趣的item,丰富对推荐item的多样性。

 

 

Trans队列将机器翻译模型(NMT)与用户所处的Context信息相融合,进行推荐。用户所处Context信息是指用户访问推荐系统的时间、地点、心情等信息。Context信息对于提高推荐系统的多样性相当重要,好比,白天上班时,用户可能倾向于看行业相关最新信息;晚上睡觉前倾向于看一些搞笑幽默等适合放松的信息。利用NMT模型能够对较长的序列进行建模的优势,将用户点击序列、video自身的语义信息、用户Context信息等构成序列供NMT学习,利用NMT能够同时对全局和局部信息建模的优势,将这些信息融合并用于视频推荐,以提高推荐系统的多样性,优化人均曝光tag数和二级类类目数等多样性指标。Trans模型主要分为User Encoder和Item Decoder两个部分:User Encoder将用户长期和短时间的类目(cat)、Tag和Profile特征融合成。一个Context信息用于Item Decoder解码;Item Decoder输入来自两个部分,一部分是User Encoder输出Context信息,一部分是当前的Vid、以及当前Vid的Tag和类目。

 

■  5.6 Bert模型

 

从文本预训练任务看,预训练向量表示总体演进路线表现为:由静态向量到基于上下文的动态向量,由单向到双向再到同时考虑双向。最近一两年,以Bert为表明的动态双向预训练模型在天然语言处理领域大放异彩。推荐系统中用户兴趣建模能够借鉴Bert预训练目标。主要缘由有:

 

首先,不管是RNN模型仍是Seq2Seq模型以及Translation模型,都是从前到后建模用户历史行为序列,单向结构的建模有必定限制,而Bert类模型兼顾双向进行建模;

 

其次,用户行为顺序性的假设有时并不适用,用户行为顺序与推荐系统展现顺序有关,好比打乱某些会话内的推荐顺序不用影响用户行为。

 

Bert模型召回关键点在于样本制做:

 

1.建模更长的用户序列:序列长度128,对于长序列用户采用滑动窗口截取样本,对于短序列直接丢弃处理;

 

2.如何MASK:样本真实长度为N,序列中1-N-1随机MASK,MASK比例10%;为了拟合序列任务,最后一位N强制MASK。

 

 

■  5.7 双塔模型

 

DSSM(Deep Structured Semantic Models)是一个用来解决搜索相关性的模型,经过将query和doc 分别计算成一个向量从而得到query和doc相关性。在推荐系统中认为给用户推荐的item与其兴趣相关性越高,用户则越喜欢,利用DSSM这种相关性计算方法,经过计算user,item向量之间的相关性从而判断用户是否对item更感兴趣。

 

模型框架方面,咱们经历了从双塔DSSM模型到Multi-View DNN,Multi-View DNN能够更好的结合图文、视频、小视频等不一样业务的信息来丰富用户表示,使模型对用户判断更准确,这对业务迁移初期冷启动用户有明显做用。特征使用上,咱们使用了user需求信息与Item的丰富side infomation,包括一些映射特征,好比用户的类目与item类目,用户的tag与item的tag等。模型训练使用线上的曝光点击,曝光分享等数据做为训练数据(具体会因业务不一样有所变化)。

 

因为召回侧候选Item量级很是大,没法进行instance基本在线预测,实际使用采用了在线实时predict user embedding 与离线predict doc embedding结合的方法。将item embedding存在在线ANN server,每次请求使用ANN 取出与user embedding 最相近的top 1000 doc做为召回候选,具体模型框架以下图所示:

 

 

咱们对双塔模型的优化方向:

 

   双塔DSSM到Multi-Videw DNN,结合多业务信息,丰富用户表达。

 

   增长更多side information,学习更准确user、item表示。

 

   pair-wise 形式的双塔模型,提升模型的预测能力。

 

   结合attention,FM等结构,加强模型表达能力。

 

   多塔多目标模型优化,结合业务多指标,融合丰富信息建模多塔模型。

 

■  5.8 混合模型

 

基于深度神经网络的推荐模型DMB(Deep Neural Networks based Model)是综合使用了文章或视频的语义信息、用户的阅读历史、长短时间兴趣、上下文信息,推荐出类似语义的文章或视频。

 

序列类模型采用的是无监督的机器学习方法,可以很好的学习到item的语义向量和协同向量,可是在推荐场景中还有大量的特征可使用,所以须要一个对推荐数据拟合更好的模型去进行机器学习,DMB模型所以而产生,深度神经网络能够有效的对各类类型的特征进行融合,而且有很好的泛化能力,在当前的看一看系统中有着很高的召回占比和较高的用户时长。

 

为了更好使深度神经网络模型进行学习,首先使用item embedding方法将文章或者视频的ID映射到一个固定维度的稠密向量空间中。全部的特征会在向量化后concat在一块儿,作为DMB模型的第一层的输入,后面是若干全链接层。整个DMB模型的架构以下图所示:

 

 

在迭代的过程当中发现用户的最近的阅读历史(视频播放历史)对于用户的兴趣判断很是重要。模型对于阅读历史建模作了比较多的尝试,使用过RNN,CNN和简单的self-Attentnion等建模方法,离线指标Hitrate都有必定的提高。最近对模型进行了新的升级,新的模型将利用用户的长期需求对用户的播放历史进行权重的从新建模。这里使用Attention建模方式来完成对阅读历史的从新建模。先使用神经网络将用户的长期需求Encoding成Query向量,使用该Query向量Attention全部的播放历史,再进行加权平均。同时,使用加入pos的建模,提升最近播放视频重要性,能够避免由于受画像的影响过多的关注符合长期兴趣的播放历史,而忽略了对新内容的试探。具体的能够参考下面的新的模型结构图。这里只给出了User端建模方法,doc与以前同样。

 

 

上面的迭代过程都是在不断地优化如何更好的进行用户的兴趣描述,使用更好的网络结构生成更好的用户隐向量。这种将用户直接生成一个高阶隐向量的方法,可能会致使召回的结果过于泛化,不易保证精准性。经过在召回模型中引入FM层的User-Doc交叉特征能够很好的解决这个问题。参考FM的公式以下,假设前m个特征是user相关的特征,后n个特征是doc相关的特征:

 

 

User和Doc的二阶交叉特征能够拆解以下以下,能够拆解为user和doc各自的两部分:

 

改造后的网络结构以下,新的网络能够有效的完成低阶+高阶特征的融合,从而实现泛化和精准的有效平衡。

 

 

因为业务高速发展,引入新数据,新场景的需求很是频繁,经过引入迁移场景信息+训练数据迁移能够大大加速新业务孵化状况下模型的收敛和效果。

 

特别说明的是,在现实系统中,综合推荐系统常常会引入新的数据源,这部分冷启动的召回通道在行为稀疏时每每表现较差。为了解决这些问题,团队近期将混合模型适配这类场景而提出一种Internal and contextual attention network (ICAN)模型,经过增强多队列之间特征域(feature field)交互和环境信息,获得更好的(冷启动)召回效果。目前ICAN已部署于看一看线上召回系统。此工做发表于IJCAI-2020。

 

■  5.9 图模型

 

推荐系统中User和Item相关的行为、需求、属性和社交信息具备自然的图结构,可使用一张复杂的异构图来表示整个推荐系统,以下图所示。图模型推荐算法就是基于这张复杂的异构图,使用图算法来学习图中包含的结构信息并用于系统推荐。图神经网络模型推荐就是基于这个想法,把异构网络中包含的结构和语义信息编码到结点Embedding表示中,并使用获得向量进行个性化推荐。

 

 

在这样的背景下,看一看召回17年起开始搭建面向看一看推荐的图算法平台,逐步实现了Deepwalk、line、node2vec,PTE等浅层模型,并在线上文章、视频推荐取得不错的收益。2018年,以GCN为表明的深层图神经网络模型出现,效果远优于传统的浅层模型。所以,咱们也开始对图算法平台进行升级,一方面,逐步实现GraphSAGE、GAT、MultiGAT、FM-GAT、Transformer-GAT、Transfer-GAT、MultiTask-GAT、Weighted-GAT等深度图神经网络模型;另外一方面,开发面向线上生产、处理千万甚至亿结点,百亿级边的大柜模型异构网络。图模型一路迭代至今,经历了几个大的优化阶段以下:

 

模型维度:从浅层图模型(Deepwalk、Line、PTE等)到深层图模型(GraphSAGE、GAT等) ,再到自研深层图模型(Multi-GAT、FM-GAT、Self-GAT等);

 

网络结构:从同构到属性异构,再到用户多元异构、社交多元异构。网络规模也从十万,到百万、千万,最终到达亿级结点,百亿级边的大规模异构网络。

 

训练目标:网络训练也从单目标持续将深度图模型升级到多目标,再到多任务。迭代更新以下图所示:

 

 

GraphSAGE(Graph Embedding with Sampling and Aggregation)模型介绍

 

GraphSAGE是一种经过聚合当前结点i的k阶邻居结点信息,构成结点i的embbedding的Network Embedding模型。与随机游走的Network Embedding模型:DeepWalk、Line、node2vec,相比,GraphSAGE有以下3个优势:

 

1.大量前沿论文证实GraphSAGE可以更加准确、有效抽取结点Context信息,并生成更高质量的node Embedding;

 

2.GraphSAGE是一种概括学习图模型,能够学习动态网络中新加入的结点Embeeding。

 

3.GraphSAGE经过采样当前结点K阶领域结点来计算当前结点embedding,使得计算具备上亿结点、数十亿条边大规模图网络变为可能。

 

咱们经过用户观看过的item来构建图网络,把同一用户观看过的时间关系上靠近的两个item当作结点,结点之间用一条边链接,而后经过GraphSAGE图模型来学习图中结点的Embedding,GraphSAGE模型结构以下图所示:

 

 

GraphSAGE首先经过采样(Sample),从构建好的网络中抽取出一个子图:随机采样一个源结点V1,而后采样它的一阶邻接结点V二、V5,在采样它的一阶结点的一阶结点(源节点的二阶结点)。

 

而后进行一个反向的信息聚合(Aggregation):以源节点的二阶结点原始Embedding做为输入,经过聚合2获得源节点的邻居结点的表示,而后再经过聚合1获得源节点V1的表示。聚合获得结点的表示以后,经过Pair-Wise的无监督损失函数,或者有监督的交叉熵损失函数训练网络的参数。

 

GAT(Graph Attentional Neural Network)模型介绍

 

GraphSAGE虽然能让你更有效聚合结点信息,但它在进行结点信息聚合的时候存在一个明显不足:把全部的邻接结点都当作相同的权重,忽略了不一样结点间重要程度的区分。所以,咱们引入了Attention机制对GraphSAGE模型进行升级,上线了GAT模型,在进行信息聚合的时候给不一样的结点赋予不一样的权重,以达到区分不一样结点重要性的目标。Attention机制的原理以下图中左侧图所示。

 

 

GAT模型的基本结构和GraphSAGE同样,分为采样和聚合两步,最大的区别是,GAT在完成结点采样,进行信息聚合的时候,经过传统的Vallina Attention,给不一样的结点赋予不一样的权重,以达到区分不一样结点重要性的目标。

 

多任务Multi-GAT模型介绍

 

看一看召回中,一些新的优化目标(好比用户分享行为)或新任务存在数据稀稀疏的问题。所以咱们基于GAT-Multi进行多任务/目标的学习,将不一样业务或不一样类型的输入做为输入,输出端进行拆分,基于多目标或多任务提高embedding效果。整个网络结构以下图所示。

 

 

从图中能够发现,模型输入是多种数据类型或多业务类型的混合数据输入,输出端根据不一样的目标进行了拆分。输入是用户点击和分享构成的异构网络,输出端拆分红了点击和分享两个目标,并在损失函数中对分享目标进行了提权,目标指望经过用户的点击日志提高用户的分享行为指标。

 

总结与展望

 

内容策略与召回一般验证收益路径长,见效慢,这样大大加大了这部分工做的协同开发的诉求,咱们与工程同窗通过无数次性能优化与PK,依赖兄弟团队提供了大量工具帮助,最终实现目前比较高效的一条迭代路径。

 

同时,因为召回与内容策略在业务底层,策略相对比较多,也比较发散,得到收益面一般也比上层要难,个人一些思考是,须要在工做中对这部分的工做梳理作足够细致归类,逐层优化,集中人力与优点精细打磨,持续沉淀核心部分,紧跟业界学术界前言算法,在兼顾知足业务发展的各种细碎需求的同时让算法同窗得到成长与成就感。

相关文章
相关标签/搜索