Press "Enter" to skip to content

网易信息流推荐中的文本语义理解

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

导读 :随着推荐系统在移动互联网中的应用越来越普及,人们获取信息的方式从主动搜索逐渐转变为被动推送,极大地缓解了“信息过载”问题。如何准确地捕捉用户的兴趣、兼顾推荐的精准性和扩展性,是个性化推荐的难点也是核心。针对上述问题,本文将介绍网易信息流推荐场景下基于文本语义理解的解决方案。

 

1

 

业务背景

 

 

网易信息流内容形态丰富多样,首页是主要的推荐页,根据用户的阅读兴趣和点击行为进行推送,除了常规的资讯类内容外,还接入了网易公开课的优质资源。页面最上方有各个栏目,用户可以根据自己的爱好定制。专题页是对当前热门事件话题的聚合,圈子页给用户提供了社交平台,此外还有小视频、直播和问答属性的知否版块等。

 

 

网易新闻客户端作为个性化内容分发平台,推荐系统是核心组件,其任务是用来连接用户和内容。目前使用较广泛的推荐方案有协同过滤和基于内容的推荐:1.协同过滤,通俗地讲就是物以类聚、人以群分,基于用户历史行为将用户进行分群然后推荐品味相同的物品;2.基于内容的推荐,根据用户偏好的内容特征进行推荐。不管是协同过滤,还是基于内容的推荐,都依赖于特征,一般来说推荐系统的特征体系分为内容特征、用户特征和上下文特征三部分。

 

 

内容特征是将文本、图像、视频等非结构化的数据进行结构化表示,转换为人或机器能理解的形式。 用户特征 包含两方面,一个是人口统计学特征,描述用户的基本属性,比如性别、年龄、地域等,另一个是行为特征,能反映用户的偏好,如点击行为、阅读时长、收藏、分享、跟帖、负反馈等。 上下文特征 表征用户当前的时空状态,与用户行为也有关联,包括时间上下文和空间上下文等。

 

从这三类特征的属性可以看出,内容特征是基础,首先内容特征是物料所具备的属性,构成内容画像,同时内容特征能反映用户的兴趣偏好,构建用户画像。只有内容特征提取精准,才能准确地对用户画像和内容画像建模。因此,做好内容理解、准确提取特征是个性化推荐系统的基石。

 

2

 

文本语义理解

 

 

这是我们在文本内容分析上的技术全景,主要由三个模块组成:基础服务、内容理解、质量理解。 基础服务 作为底层组件用来支撑下游任务,包括分词、词性标注、实体识别、同义词等词法分析模块和知识图谱等; 内容理解 是上面谈到的对内容进行的结构化表示,比如类别、主题、语义标签等; 质量理解 用于新闻数据的过滤和审核,确保优质的内容生态,包括重复相似模块、三俗低质、广告识别等。本文主要聚焦于内容理解部分的工作。

 

 

上图是从粒度的维度整理的一套具有层级化关系的兴趣特征体系。按照粒度粗细排列,分别是 类别 (category)、 主题 (topic)、 兴趣点 (poi)、 常规标签 (tag)和 关键词 (keyword)。特征体系的搭建和完善是由业务驱动的,早期只有类别和关键词两种特征,但是在实际应用中还不够。类别的粒度太大,不能精准描述用户兴趣,而关键词中混入了一些噪声,不能全部用于兴趣表达。所以,从推荐的目的出发慢慢拓展出了具有不同粒度、层级的特征。当然,除了按粒度划分,我们还有按其他维度开展的特征,比如各垂直领域的标签,涉及到具体的业务用途。

 

类别是对文章内容的粗略表达,可用来辅助人工运营、栏目构建、分发控制等。兴趣点具有高用户覆盖的特性,表征长期稳定的兴趣,又可以细分为概念型标签和实体型标签,用在召回、排序和兴趣建模等环节。兴趣点可以认为是精选标签,表达了大部分用户的兴趣,并且聚焦于文章的核心内容,常规标签在兴趣点紧约束条件上进行了放松,覆盖面更广,同时表征了文章非核心部分的内容。关键词是对文章内容的全面表达,没有固定的体系,通过一串词序列来表达文章的中心思想,由于里面会包含一些非用户兴趣的部分,不适合直接用在推荐环节,目前主要是作为底层特征支撑其他服务。

 

下面分别介绍各类特征的具体实现方法:

 

文本分类

 

 

左图是我们的类别体系例子,由两个层级组成,一级类别更大更宽泛,二级类别是对一级类别的细化。从算法实现上,两个层级分别训练不同的分类器,其中一级类别使用一个分类器,每个一级类别下的二级类别使用各自的分类器。分类器选型结合具体应用场景,在这里一级类别我们选择了相对复杂的分类器,最开始我们使用XGBoost,后来深度模型出来后,我们相继尝试了TextCNN、fastText,现在也融入了BERT。二级分类器的个数多,我们选择了相对轻型的分类器,比如LightGBM、朴素贝叶斯等,由于深度模型会占用太多内存,暂时并没有使用。

 

主题模型

 

 

上述是基于LDA的主题模型算法流程。首先,在海量语料库上根据Word2Vec训练得到词向量。训练阶段,考虑到各个类别的差异性,我们在各一级类别下分别进行训练得到各主题分布及词分布,然后基于预训练好的词向量将各主题下的词进行向量化,并通过KMeans聚类对各主题进一步进行细化,最终得到主题的三级树形结构。在推理阶段,给定一篇文章,先根据词性分析确定关键词并通过加权平均得到文章向量,这个文章向量再与各主题向量计算语义相似度,最终根据阈值判断得到最终的层级主题。

 

概念标签提取

 

 

概念型标签主要用来描述抽象概念,不特指某个具体实体,图中给出了两组真实数据的例子。在算法实现上,我们将标签提取问题转换为多类别、多标签的分类问题。分类器的选型与文本分类差不多,我们也尝试了XGBoost、TextCNN和BERT等算法。与文本分类的区别是目前每篇文章只输出一个类别、但会输出多个标签,在DNN网络最后一层要把Softmax改成Sigmoid,并通过阈值判断得到最终的标签输出。图中以TextCNN为例来说明多标签输出的情况。

 

实体标签提取

 

 

实体标签用来描述具体的实例,可以细分为命名实体和普通实体。命名实体是以名称为标识的实体,如人名、地名、组织结构名等。在具体算法上,命名实体识别通过有监督方法实现,普通实体通过无监督方法实现。对于命名实体识别,我们采用的算法是BERT+BiLSTM+CRF的模型。

 

 

针对普通实体的无监督标签提取主要模块是关键词提取+词典匹配的方法,上图是以兴趣点中的实体标签为例说明实现过程。首先对输入文本进行基础特征提取,得到文章的关键词列表和向量化表示,这里关键词提取我们融合了TF-IDF和TextRank方法,文章向量通过Word2Vec实现。然后,基于文章类别进行标签候选集生成,再通过词模式、向量模式等方式进行进行标签召回;之后再结合业务,通过规则过滤和知识图谱属性拓展进行修正得到最终的标签列表。

 

向量化表示

 

 

上述内容主要介绍了兴趣特征体系中的显式标签,具有明确的语义含义和可解释性,但是人工投入较多、维护成本高,相反隐式向量不需要构建体系,能较好地与深度学习推荐模型融合。隐式向量是稠密的形式,可以在向量空间通过距离衡量语义相似性。向量表示方法从最初的One-Hot、Word2Vec发展到现在的BERT、ERNIE等,实现了从静态表示到动态表示的转变,在召回和排序环节也发挥着重要重要。

 

3

 

总结

 

本文介绍了网易信息流推荐中的语义标签体系和具体的算法实现,在刻画用户兴趣、表征内容属性等任务中占据关键性地位,在线上实验中也表现出优秀的效果。后续,我们将继续结合用户行为和知识图谱,更好地辅助内容理解。

Be First to Comment

发表评论

电子邮件地址不会被公开。 必填项已用*标注