UC 国际信息流推荐中的多语言内容理解

阅读数:332 2019 年 10 月 15 日 08:00

UC 国际信息流推荐中的多语言内容理解

多语言内容理解的需求和挑战

1. 结构化是推荐的基础

UC 国际信息流推荐中的多语言内容理解

结构化是推荐的基础,对于大多数做推荐的同学应该会比较有感受。可以把推荐系统分为三部分:内容理解和用户理解两个大的离线模块;在线的推荐业务分为召回、排序、多样性等,主要利用离线的 NLP 结构化信号以及离线的用户理解信号来完成推荐的工作,本文主要介绍内容理解的部分。

对于内容理解,我们面临的是多个国家、多种语言的新闻推荐场景:

  • 从 item 的维度,我们会做语言的识别、质量的控制、时效的控制(由于我们是新闻推荐的场景,跟商品以及其他物品的推荐不太一样,对于时效的控制会比较严)。
  • 从用户兴趣的维度,我们会做分类、标签、关键词以及主题等内容信号的建设。
  • 热点挖掘,因为我们是新闻客户端,所以会做多源的新闻热点挖掘。
  • 互动评论,由于我们还有一些用户互动的评论,所以会做评论的分析和反作弊。
  • 图像,因为我们的新闻是图文并茂的,并且视频会带有图像,所以在图像这块也会做一些图像的表征学习或者特征的挖掘。
  • 铜矿,我们不同于其他新闻客户端的一点是,我们的新闻推荐主要是在浏览器中,除了用户在信息流场景下的消费行为,还会利用到用户在浏览器中的其他的一些浏览行为、搜索行为等等的一些行为,我们把它称之为铜矿,来挖掘用户相关的一些兴趣。
  • 表示学习,因为我们面临的语言比较多,所以我们还会用表示学习的方式来做很多的工作。

2. 多语言的业务需求

UC 国际化信息流推荐面临的多语言的业务需求:

  • 多个国家:已在印度和印尼等多个国家上线十多个语言的信息流推荐服务;
  • 多种语言:仅在印度已经涵盖印地语、英语、泰米尔语、泰卢固语、马拉地语、古吉拉特语等多个小语种,对 NLP 而言存在天然的多语言诉求;
  • 多种样式:包含图文、短视频、小视频、GIF 和 Memes 等多种形式的新闻推荐,除了多语言外,还提出了多模态的诉求。

3. 技术难点

由此带来的挑战,包括:

  • 语言多:需要覆盖十多个小语种;
  • 任务多:基本的词法分析,每个语言的分类、标签等多个任务,都需要建设;
  • 样本少:不是每个语言都有丰富的标注资源,对每个语言都需要进行标注,标注样本成本高,建设周期长;
  • 人才少:在国内懂小语种的人比较少,算法迭代分析困难。

所以,在我们的场景下,这是一个典型的资源匮乏型 ( Low Resource ) 的 NLP 问题。

多语言内容结构化信号建设方法

1. 内容结构化的发展路径

① 内容结构化信号

UC 国际信息流推荐中的多语言内容理解

从内容结构化信号整体上来讲,我们从底向上做了很多不同类型的内容结构化信号:

  • 基础属性:因为我们是多语言的场景,首先要做语言识别,然后做质量的控制以及时效的判断;
  • 显式兴趣点:从用户显式的兴趣角度来讲,我们要做文本的分类、标签提取、关键词提取;
  • 隐式兴趣点:由于用户的显式兴趣点往往受制于样本的规模、算法的精度,所以我们还会做一些用户隐式兴趣点的挖掘,如:主题聚类、图像聚类、用户表征或者基于表示学习的隐式兴趣挖掘。

UC 国际信息流推荐中的多语言内容理解

② 基础词法分析——去语言化

因为我们面临了 10 多种语言,多种不同的任务,对后续的算法,如:分类、标签,以及下游的推荐和用户画像来讲,我们期望尽量把语言相关的东西在 NLP 中解决,下游的一系列任务可以去语言化,算法能够通用。所以,我们尽量在基础的词法分析阶段就把语言的鸿沟消除掉。

我们面临的难点是覆盖语言种类比较多,标注标准比较多。所以我们尽量采用的是 Google 开源的 Universal Dependency 数据库,它覆盖了 70 多种语言,100 多个 Treebank。我们期望在所有的语言和任务上采用同样的标准,在词法分析阶段都处理成标准的 schema 以后,下游即使写规则,也不需要换标签集。我们在开源工具的基础上,做了一系列的迭代工作,覆盖了 10 多种语言的词法分析。

③ 实体识别

UC 国际信息流推荐中的多语言内容理解

我们会做多语言的实体识别,主要利用的是 Wikidata 多语言知识图谱,来挖掘高质量的词典,同时使用半监督或者数据增强的方式标注一部分资源,然后还有一部分人工校对的工作在里面。用的算法和中英文上的并没有太大的区别,主要是 LSTM + CRF 序列标注算法。但是我们在资源方面投入了很大的精力,以数据增强为例,我们可以从学术圈或者公开数据集上拿到很多各个语言的 NER 标注语料,结合我们挖掘出来的多语言的知识图谱,可以直接做数据增强的一些办法(在图片和视觉方面,做数据增强可能很容易,但是在 NLP 角度做数据增强并不是很容易)。比如“巴黎是法国的首都”,如果把“巴黎”换成“伦敦”对于人来说是不可理解的,是错的,但是对于机器训练 NER 来说这是没有问题的,所以我们会用规则或者知识图谱来限制这种数据增强的规模,取得了比较明显的效果。

④ 多语言分类发展阶段

UC 国际信息流推荐中的多语言内容理解

我们在多种语言上都经历了这样的分类发展阶段:

  • 起步:我们刚开始做国际化的时候,在做分类时完全没有标注语料,我主要是通过种子源、种子词,人工总结一些规则或者绑定(一些成熟的站点,我们会进行绑定)。
  • 发展:到了发展阶段,我们累积了一些样本,会去做迁移学习,包括样本的迁移和特征的迁移。
  • 深入:从去年开始,包括 ELMo、BERT、GPT 等(先做预训练,再做后面的一些迁移学习)在 NLP 中成为了一个基本范式,在这个阶段,我们开始做多语言的表示和小样本的学习,能够提升分类的精度。

简单举几个例子:

  • 基于翻译模型的分类样本迁移

UC 国际信息流推荐中的多语言内容理解

我们所有的分类都是多种策略并行的系统,没有一个语言是单纯的系统或者策略。最开始我们在英文、Hindi、Indo 上投入了很多资源,所以结构化的信号建设基本成熟,因为在后面开展一些小语种的时候,会采用多种的办法做样本迁移和特征的迁移。

比如样本迁移,我们会采用图中的办法:把小语种翻译为三个大语种,用大语种的 model 做分类。

  • 基于词向量对齐的分类特征迁移

UC 国际信息流推荐中的多语言内容理解

这是 Facebook 提出的多源词向量对齐的办法 MUSE,MUSE 的基本思想是用单语言的训练语料去训练每一个单语种的词向量,然后再加上一个双语词典,可以把不同语言的词向量映射到同一个空间,他们的目标是映射到同一个空间时,表示相同语义的词距离更近。这种方法在一些有共性的语言上,比如印尼语和英语,效果会比较好,但是在语言差异较大时,效果会弱一点,整体上这种方法还是给我们带来了很多可选的样本。

去年 Facebook 又提出了基于句向量对齐的 LASER,由于需要双语机器翻译的语料,应用起来的话限制条件会比较多。

  • 基于 BERT 的迁移文本分类

UC 国际信息流推荐中的多语言内容理解

从去年开始,先用大规模的单一语料做 PreTraining,使用 ELMo、GPT 或者 BERT,得到一个单语的文本表示,后面再接一些你自己的任务做 Adaption,已经成了 NLP 的一个基本范式。我们也在很多的任务(如:分类和标签)中采用这种办法,其优点是对标注样本数量要求低,在一些小样本上就可以得到很好的效果,但是也存在着缺点就是速度相对较慢,资源消耗比较高,因为我们的语种比较多,所以还会做一些半监督和知识蒸馏相关的一些探索性工作。

⑤ 语义标签

UC 国际信息流推荐中的多语言内容理解

除了分类以外,我们还会做标签,我们的总体思想是一样的,先基于专家经验去累积样本,累积一定样本之后会做一些大规模的有监督学习模型。

  • 弱样本依赖模型

UC 国际信息流推荐中的多语言内容理解

举个简单例子,我们如何做弱样本的依赖模型,它的特点是零样本。如果定义一些语义标签之后,通过 word embedding 先相关很相似的词,然后把这些词做聚类,聚类以后才作为一个语义标签簇的表达,之后直接和 doc 的 embedding 做相似性计算,我们就可以不需要训练样本,完全单语的语料就可以给文章打标签,这种方法对粗粒度的标签效果还可以,但是对细粒度的效果还不行,只能保证一些比较粗的标签的召回,提供一些基础的样本,供后续的人或者算法做二次校验。

  • 大样本监督模型 ML-DNN

UC 国际信息流推荐中的多语言内容理解

通过各种策略挖掘和人工总结大量样本之后,我们可以使用一些大样本的有监督模型,我们的做法比较简单:参照 Fasttext 模型,用 word2vect 初始化词向量,用平均词向量表征 doc 向量,输出多标签概率,就是把刚刚的做法直接迁到有监督的框架下。它的优势是模型比较简单,结合之前做的一些工作,可以快速的覆盖头部的语义标签。

2. 内容质量模型

刚刚讲的是分类和标签,这种结构化的信号,我们再来讲下内容质量:

UC 国际信息流推荐中的多语言内容理解

因为质量是新闻推荐的一个基本红线,在国内可能体会更深,像今日头条、快手等有段时间就因为一些质量的问题被下架了,我们在国际化时,也会遇到这样的问题。

我们的质量模型,基本还是一个人机结合的框架。主要通过一些低质的规则,能够把一些高危的 item 直接检测出来,直接干掉;我们还有一个质量的分级模型,会从多个维度做多个子模型,然后再有一个大的模型来融合这些子模型,质量平台输出的一些不太确认的结果会送到人工审核平台去审核,人工审核平台审核后的结果又会返回到质量模型做 training。在这个过程中,整个框架是去语言化的,我们输入的是 NLP 基础结构化的信号(类别、语言、分词、POS 等),后面的算法不会对语言做特殊的处理。

UC 国际信息流推荐中的多语言内容理解

对于质量规则,我们的准确率会比较高,召回低一点,主要是为了保证检测出绝对低质的东西。

对于质量模型,我们主要分为 5 挡,然后做多维度子模型的融合。

3. 图像信息的应用

UC 国际信息流推荐中的多语言内容理解

刚刚讲的都是一些用户显式的结构化信号,比如语言、分类、标签等人可理解的一些显式信号,显式信号在不同语言的发展进度和阶段是不一样的,为了让一些小语种追赶上大语种的节奏,我们还会做一些不依赖于 NLP 基础建设的一些用户显式的兴趣挖掘,就是内容结构化上的一些隐式的信号。比如图像方面的一些工作:因为语言在不同国家不同语种上会有资源的问题,对于图像,除了上面的一些文本,其它方面是没有太大语言鸿沟的,所以我们会做一些图像方面的工作,比如图像聚类。

具体的做法是:基于开源图像表征模型 ResNet 和 VGG 抽取图像表征,使用 K-means 聚类选取适当合适的聚类簇固定下来,然后对于新入库图像基于固定下来的簇进行打标。这样会得到什么结果呢?

UC 国际信息流推荐中的多语言内容理解

这是从我们库中找的一些样本,对印度的一些封面图做了一些基于这样表示的聚类,最左边是聚类的编号,从这些样本中可以看到一些共性,比如第 23 个 topic 都是关于狗的,24 基本都是钱等等,我们可以直接把这些信号用到 rank 或者召回中,比如印度人比较喜欢的我们的一个场景叫 Memes ( 用户发一张图,上面会加一些文字,其它的什么都没有 ),这时用图像信息做召回效果会比较好。我们通过这种隐式的聚类的编号,跟分类的一些信号做交叉 mapping,发现这里很多类别直接可以对到二级分类,并且准确度高,这样就可以快速的建立很多分类的样本。

4. 表示学习在内容理解和用户理解中的应用

UC 国际信息流推荐中的多语言内容理解

刚刚讲的都是内容理解方面的内容,接下来简单介绍下用户表示。我们在做内容结构化信号时,用户显式可以理解的信号,在不同的语种上,特别是小语种上,我们的迭代速度以及精度跟不上推荐的诉求,这时我们需要用一些隐式的信号,提升推荐的效果。我们的想法是基于预训练在具体任务做 fine-tuning 这种范式已经在 NLP 和图像领域验证过了,所以我们在推荐领域做了这样的尝试:

我们利用用户的消费数据直接建立双塔,类似于 CTR 预估,一边是 user,一边是 item,item 直接用 BERT 的 embedding 作为初始输入,然后两边做双塔结构,这样做的好处是可以引用更多的用户在其他场景下的一些行为,比如用户在浏览器中的一些搜索 query,这时再离线做双塔,user 侧一直往上走,然后 item 侧一直往上走,最后分别得到 user 和 item 的隐含表达,然后再做相似度计算,预估 ctr,但是这不是我们的目的,我们的目的是直接用 user 的表达给下游用。这样在一些稀疏的场景效果提升明显,比如 Push。

总结

简单总结下本次分享的内容:

  • 多语言内容理解业务需求广,单一语言的经验不可完全复用,所以我们要去语言化,在基本的词法分析阶段把语言处理成标准的 schema,除了样本之外,期望后面所有的算法都跟语言没有太大的关联;
  • 迁移学习是我们解决多语言内容理解问题的核心抓手,因为我们天然的会遇到样本和特征的问题,所以我们会做样本和特征等的迁移;
  • 表示学习特别是基于预训练的表示学习为迁移学习,特别是我们的推荐场景,带来了新的无限可能,我们在 NLP 的基础结构化信号中有一些成功的应用,并且在用户表示上也有一些成功的范式。

作者介绍

汪昆

阿里巴巴 | 算法专家

本文来自 DataFun 社区

原文链接

https://mp.weixin.qq.com/s?__biz=MzU1NTMyOTI4Mw==&mid=2247494295&idx=1&sn=1218bfa026994967939fa676ed7dd5f9&chksm=fbd758fbcca0d1ede59b225e98add36cae74e9fd3006d42a054c73aaa4a87c75ef46684b9733&scene=27#wechat_redirect

评论

发布