环球快看点丨AI在OPPO个性化推荐中的应用

本文根据OPPO高洪涛老师在OPPO&DataFun Talk算法架构系列活动“AI在OPPO业务场景下的应用实践”中所分享的《AI在OPPO个性化推荐中的应用》编辑整理而成,在未改变原意的基础上稍做修改。


【资料图】

导读: 本次分享将从上面四个方面介绍,首先介绍一下最近AI进展概述,然后简单介绍OPPO在个性化推荐业务和框架性的背景知识,第三部分将介绍一下在推荐中比较重要的一个技术“语义理解”及我们的做法,最后介绍游戏推荐中强化学习的一个实践情况。

--

01

AI进展概述

首先介绍下我自己对AI发展的理解,AI它不是一个技术词汇,更像一个广告词汇,它在不同阶段是有不同含义的。

结合行业专家经验将AI发展总结为下面四个发展阶段:

前期阶段计算机各方面做一些定理证明等应用;

第二个阶段知识处理阶段,比如大量的知识工程、专家系统。

第三个阶段就是90年代到10年代,这是真正意义的算法和机器学习所做的工作。这个阶段做算法的主要在做特征工程,而机器学习算法相对比较成熟。

从2012年是以深度学习在图像识别上的一个重大突破,一个标志性的事件就是AlexNet在图像识别上的重大突破为标志,AI引起了工业界或者是媒体一个巨大关注。我将其总结为数据时代,这是以大数据为基础的进展,这一阶段深度学习是其代表性技术。Google的AlphaGo将强化学习带进人们的视野。

还有强化学习不仅在下棋方面、工业控制等应用很大,在互联网方面不管是搜索还是推荐都有很多尝试。第三个经常被提起的技术就是语义理解,但是它并没有因为第四个时代而取得本质性的突破。后面我会以案例的形式讲一讲我们在这三个方面所做的工作。

--

02

OPPO个性化推荐

第二个阶段简单介绍下OPPO个性化推荐方面的工作。我们的个性化推荐平台是一个通用推荐平台,支持OPPO很多业务,包括应用商店、游戏运营、定向广告、信息流推荐、个性化push等。这些业务首先具备一个平台性,不同业务对推荐的目标也是不同的,因此也是一个多目标的问题,有的是以点击率(CTR)为目标,有些是以用户留存为目标,比如游戏,他下载游戏会不会玩,他在游戏中的付费情况。信息流需要实时化,因此在中间有一个实时推荐引擎,另一块对实时性不高的就进行个性化Push,但是个性化Push对可解释性要求比较高。运营人员可能会选一些标签,我的内容就要推给这些标签的人,比如定向广告商要求就要推荐给李易峰的粉丝,他们都需要这样明确的要求,对实时性要求不是很高。

我们做推荐,离不开数据,OPPO数据量也非常大,后续讲AI也是针对这些数据做一些理解。简单介绍一下我们的数据,有结构化的数据,用户在API使用的一些行为统计、手机信息,最能体现AI的是在文本数据这一块,作为一个手机厂商,OPPO拥有全网的各种类型的文本数据,包括外部访问搜索的query,以及在社区等各种信息流的发帖及评论。还有一些图片和语音数据,今天分享没涉及到相关技术,就不再赘述。

接下来简单列一下做推荐需要做的一些工作,做推荐首先要对用户数据提取特征。在文本这一块是相对复杂的,需要做文本类别的识别,可能有一级二级等不同层次更加细粒度的识别还有关键词、实体词的提取。有了特征以后要做召回,尤其在信息流有千万级item要做召回,找一个比较小的集合。这里有很多策略,今天重点结合AI讲解相关性召回、语义召回方面的工作。召回后做排序,比如CTR预估。然而有很多是多目标的,有些目标是长期非实时反馈的,因此也做了一些探索,后续将以游戏方面基于强化学习方面的探索。

--

03

推荐中的语义理解

首先主要讲的是推荐在语义理解方面的工作,语义理解就我理解也不是一个技术词汇,与AI一样也像一个广告词。基于其技术理解我认为语义理解有这几类问题:分类问题、匹配、信息提取(比如语句、文档中提取实体词;还有短息信息提取实体与目的,比如“订一张去北京的机票”,要提取“北京”是目的地,事件是订机票)以及生成、推理这五类问题。语义理解相对于AI在图像识别、语音识别由于深度学习的出现有巨大的提升而言并没有很大的提升,它比较难,主要难在尤其在文本方面,每一个问题都涉及很大的算法量,每一步都可能有不同算法出现。像图像识别你输入一个图片用多层网络做各种特征提取,最终打一个标签,对于文本,虽然深度学习也在尝试这么做但并没有比较好的效果,下图列举了几个关键技术和步骤。深度学习出现后确实会有有一些提升,主要是在向量化表示这一块,以前词就是一个词,顶多一个词缀模型,后来深度学习可以将其压缩用embedding表示,这是一个比较重要的技术,当然还有自动翻译写文章这些特殊应用,在推荐里应用不多。下面会以文本分类和相关性图谱为例来讲一下我们的工作。

文本标签这一块,OPPO由于全网在文本这类数据很多,访问的各种数据都可能有,类型多、隐喻多、标题党等问题,很多意思不是字面表示的。如何捕捉这些本质意思是很有挑战的,甚至是不可完成的,但是我们针对文本类型要做文本标签有这几类方法,并不是单一算法能实现,它是一个系统工程。有基于分类模型做特征分类;有的是基于关键词和规则,直接提取关键词,如包含刘德华,刘德华属于娱乐明星,就将这个文本打成娱乐明星的标签;还有基于文本相似度,有些文本已经打上标签,新来文本直接用相似度来找相同的标签;有的是基于文本聚类,先做一个聚类,然后基于人工对聚类结果筛选和打上标签;有些事结合URL,比如有些小说、漫画,只要是来自这个网站(起点中文网),它基本都是关于小说的。因此先根据url判断它是属于小说,然后再细分它属于什么小说。下面主要基于深度学习方面对分类模型的探索。

文本分类传统的方法如下图所示,就是做特征工程,对文本进行分词、词性标注,然后提取实体词、关键词,有时甚至要做聚类分析,提取分类决策树,然后用svm或逻辑回归做分类,这种方法的问题是把词当一个字符,并不能解释语义,深度学习出现后在语义表达上有很大突破,可以将一个词用一个向量表示,每一个向量在某一个维度可表示一个词在上下文关系的值,结合整个维度就可以表示词的语义。相似的词就会在空间距离上很近,Word2vec发明后对分类算法有很大改进,Facebook提出的fastText就是直接对一个文本提取出每一个词向量做一个平均,然后直接用softmax做分类,大多数情况不错,缺点是没有考虑词序,而文本词的先后顺序可能是包含巨大信息量的。后面比如CNN、RNN都发明了各种算法,像CNN一个改进就是它可以用不同窗口滑动,形成一个ngram特征,捕捉局部相关性捕,缺陷是窗口固定,而RNN可以捕捉变长文本上下文信息。后面会简单介绍一下我们用到的CNN和RNN模型。

CNN主要用的是TextCNN算法,如下图所示,左边把一个文本中、句子中的词转化为一个embedding,得到一个矩阵,矩阵高度是词的个数,宽度是每个词embedding的维度。用三种不同窗口的大小,两个filter去卷积这个矩阵,然后用pooling机制提取最显著特征,将这些特征输入softmax函数,最后得到分类结果。不足是filter_size是固定的,设计时可以用不同filter_size,可以每四个词或三个词,这样不同的filter_size相当于利用不同的ngram特征。

RNN就可以用不同的窗口,目前它也有很多算法。利用TextRNN,还有一个Attention机制,有一篇论文论述所有的IRP问题都是Attention,可以体现Attention对模型的应用。下面这个例子是对长文做分类的,分为两层,首先对长文每个句子针对词级做特征向量,捕捉不同句子中词的Attention权重。第一层结束会得到每一个词的embedding表示,第二层中一篇文章可能包含很多句子,每个句子又有一个embedding权重,最后得到整篇文章的分类效果。而我们针对短文本,只用到词级Attention机制。

下图有一个实际的分类效果,我们对互联网文本有一个两级分类机制,图中只截取一部分。图中可以看到用这类模型确实比传统模型(磁带模型+softmax)有明显的提升。我用三个小例子展示不同的方法能捕捉到的不同特征,第一个例子就是“你在生孩时你老公在干嘛,看完第一条就泪目”这其实是隐喻出轨,标题是内容可能不是,如果出轨是一个社会标签。但是LR包括CNN在分类时将生孩子当做关键词,当做孕产类别,而RNN包含很多模型,包括生孩子还有类目等信息,会捕捉更长的上下文信息,分类比较正确。第二个例子“两个女儿一个剃光头,一个翘课去美甲,天后家教遭网友质疑”,这个天后肯定是娱乐方面的,但是有的判断成美容,有的判断成社会的,或者娱乐的。“美甲”肯定是美容的。第三个是“多年前小女孩救了一个即将饿死的狼,几年后风云突变”,这个属于一个奇闻异事,但是全部判断成社会的。这种需要要大量的知识去判断,因为不可能小女孩救狼,这种需要大量人类背景知识,而这种知识很难去量化成计算机可以识别的信息。目前最后的模型也很难做到,因此对于语义理解难就难在人类的背景知识有很多很难去量化,结构化成计算机可以理解的知识。这个难题有一个解决的方法就是建知识图谱。

下一步工作就是相关性图谱,没有建知识图谱是因为还没有像知识图谱这样完善,下面讲一下我们在相关性图谱方面的应用背景和方法。其应用也比较广泛,比如信息流推荐中的召回中的相关性召回,用户如果看了一篇刘德华的文章,那么刘德华演过的电影或者他妻子的信息可能也会感兴趣,所以相关性召回你需要找出与刘德华相关的实体信息有哪些。还有个性化push,一个广告主要发给李易峰的粉丝,那你得知道李易峰粉丝都喜欢那些东西,当然这种会有很多其他算法。通过搜索李易峰演过什么电影、电视剧,参加什么综艺做关键词匹配,这种强相关性可解释性也很强。找相关性词也有不同算法,像LDA主题模型我们也尝试过,下图右边左边是LDA结果,他确实可以把同一主题的词聚类到一起,但是缺点是噪声很大,粒度难控制,主题到底要聚类到何种粒度很难控制。Word2Vec也能提取相关词,但是偏重于语法结构,所以与刘德华相关的都是和他同时代的影星,没有他演过的电影。基于这我们在相关性图谱做了很多尝试。

下图是我们建知识图谱的工作。目前很多网站的数据都是结构化的,直接爬取做些简单处理就能满足实际中大部分需求,因此我们也爬取了很多垂直网站、百科网站的信息,这个工作可以很快完成。但是紧接着就会发现还有很多关系需要从非结构化的文本做关系提取,提取的实体还要做实体连接(与刘德华和华仔是一个是实体)映射起来,关系对齐有些关系其实也不一样。今天主要讲一下在关系提取方面的工作,关系提取方法很多,有有监督、无监督,关系提取的难点就是一个句子有两个实体,需要判断下这两个实体到底有什么关系,这其实是一个分类问题。现在有一个流行的方法叫远程监督,其实也是有监督,只是在训练样本的构造上会有一些启发式的方法来构造。我们也主要在远程监督方面做了一些探索。

远程监督一个基本思想就是:我们通过结构化信息已经提取出一大批,两个实体加关系就构成一个三元组,远程监督思想就是我用E1和E2去语句中匹配,如果匹配到就默认关系是R。当然假设太强,很多并不符合,比如“邓超英语太火,孙俪都忍不住发文调侃”,虽然他们确实是夫妻关系,但是并不是描述夫妻,如果你将这个例子当做一个夫妻的正样本,其实是一个错误样本。

基于上面这个问题我们也做了很多探索,首先还是远程监督,筛选出很多候选的正样本,负样本用互斥关系。比如你要训练一个识别夫妻关系的模型,把明确不是夫妻关系的当做负例。前面有些很多正例是错误的,我们用启发式规则,人工观察一些数据去设置一些规则,比如一对实体在句子中的距离太远就作为负例,或者一对实体还包含其他实体也归为负例等,这些规则也不是完全基于规则,也会基于算法自动扩展这些规则。另外一种方法就是关键词过滤,针对同一类关系的样本,统计实体对左、中、右的名词token,人工筛选构造与夫妻关系强相关性的词库,用词库对第一步远程监督结果的实体对去做过滤。

下面是列举的样例数据,如林心如、霍建华的例子“林心如与老公霍建华合作的第一部作品”这肯定是一个正例,还有“聂力其丈夫为上将丁衡高”这也是正例。负例如“通过梅艳芳和张学友合唱歌曲”这肯定不是夫妻关系,还有谢贤和谢霆锋也不是夫妻关系。第三个表是错误样本,就是以上面的规则得出的结果也是错的,比如周冬齐和林永健是夫妻关系,但是上面的句子并不能体现夫妻关系,其实应该标为负例也被标成正例,下面的例子也是一样。这类是需要不停增加规则优化迭代。

前面讲如何获取正负样本,有了样本就依据正负样本做关系分类。这些分类的算法就是常规算法,首先对所有样本抽取实体对,然后提取特征,也是用的常规方法,比如提取类别词、上下文等一些特征,模型也是用的LR、svm等。下面是一个例子,对一个输入要提取特征,首先提取候选对,比如“马伊琍与首次当导演的老公文章合演电影《小爸爸》”,这里面两个实体,判断马伊琍和文章是不是实体关系,然后提取特征,提取特征之前需要分词、实体标注(标注那些是实体名),接下来是模型的训练和推理,然后做预测,最后得出马伊琍和文章夫妻关系的一个概率。人工去选择这些规则是不合实际的,有很多方法可以辅助自动扩展,例如句中出现“E_1和E_2结婚”,则(E_1,E_2)得到正标注。根据对“和”和“结婚”等token的扩展,我们可以得到“E_1与E_2结婚”、“E_1和E_2婚后”、“E_1和E_2的婚礼”等类似应该标注为正的样本。

--

04

强化学习在游戏推荐中的应用

接下来讲一下在强化学习方面的探索,强化学习的一个基本思想:上面是一个Agent,类似一个推荐引擎,对这种状态通过一定策略转换函数得到一个action,然后再environment里执行,反馈给用户。他点了没点,点了之后下载游戏玩了没有,根据这些行为设置一些Reward奖励函数,反馈给agent用于优化策略函数,对于游戏Reward函数对设计效果影响很大,对于游戏Reward涉及到点击一下一分,次日点击2分,还有7日留存等等或者依据付费额度进行reward,如果Reward设计不好整个过程都不会收敛。学习算法是policy gradients,针对Reward是连续值,action是一个参数性表达方式。

下面是深度学习探索的一些效果,目标不光要点击率好还要后续用户留存,反馈方面,留存和付费:次日反馈,周统计反馈,月统计反馈,每次预测是需要试错:Trial-and-error search。因此我们选择强化学习,最开始我们用的是逻辑回归,更加倾向推荐单机游戏,但不符合业务目标。后来采用LR + 用户兴趣+ 留存和付费特征,这样更加推荐付费游戏、网游,单机游戏很难推荐,容易造成用户流失。后来结合强化学习能更准确捕捉用户需求各类用户体验都有提升,在CTR和付费方面都有提升。

关于我们

DataFun: 专注于大数据、人工智能技术应用的分享与交流。发起于2017年,在北京、上海、深圳、杭州等城市举办超过100+线下和100+线上沙龙、论坛及峰会,已邀请超过2000位专家和学者参与分享。其公众号 DataFunTalk 累计生产原创文章800+,百万+阅读,15万+精准粉丝。

关键词: 夫妻关系 强化学习 图像识别

推荐DIY文章
主机存在磨损或划痕风险 PICO4便携包宣布召回
穿越湖海!特斯拉Cybertruck电动皮卡可以当“船”用
vivoXFold+折叠旗舰开售 配备蔡司全焦段旗舰四摄
飞凡R7正式上市 全系标配换电架构
中兴Axon30S开售 拥有黑色蓝色两款配色
荣耀MagicBookV14 2022正式开售 搭载TOF传感器
it