Press "Enter" to skip to content

数据与广告系列二十五:Embedding的起源与演化,以及序列构建与目标拟合派的流派之争

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

作者·黄崇远

 

『数据虫巢』

 

全文共 9665 字

 

题图ssyer.com

 

 

“  按我自己的理解,重新梳理了embedding的逻辑,并给他们造了一个江湖。 ”

 

为什幺会今天写这个话题,其实早在系列的第十九就写过一篇 《数据与广告系列十九:推荐召回与广告LookAlike,万物皆可Embedding》

 

但总感觉意犹未尽,以及经过更长一段时间的思考以及在思考的过程中不断吸收新的知识,再加上近一段时间也确实在研究这块的广告相关的业务。

 

因此,有必要再换一个角度或者站在另外一个高度再来看embedding这个东西。

 

01

 

Embedding的起源

 

至于embedding是什幺东西,这里就不再做科普性质的陈述了。但说到他,大部分人下意识的会跟2013谷歌发布的word2vec联系起来,这是一种针对于word进行embedding化的模型。

 

既然word可以embedding化,那幺其他item为什幺不可以?

 

word可以借助句子的关系进行word的embedding,本质上还是依赖于句子对于word的组织关系,并且构建word在句子词窗内的概率积最大化的拟合逻辑,并通过word的权重映射成look up table,最终产生了word对应的embedding这种副产品。

 

对于word2vec来说,这是其目的,但从训练模型的角度上说,是中间副产品产出。

 

 

图01 word2vec三层网络结构图

 

所以,word可以这幺搞,其他item也可以这幺搞,关键在于word可以通过句子构建关系,其他item有没有类似的序列关系构建逻辑以及从业务上支撑其合理性。

 

显然是有的,回答完这个问题,那幺万物皆可embedding就开启了一条康庄大道。

 

这也是通过item与item关系构建embedding路子的进化源点。

 

为什幺特意强调通过item与item关系构建embedding,因为还有不通过item之间关系构建embedding的逻辑。

 

笔者觉得最早严谨逻辑可以回溯到2014年Facebook的《Practical Lessons from Predicting Clicks on Ads at Facebook》论文。

 

这篇论文突破了模型Ensemble的传统思路,传统逻辑都是”横向”的,比如结果层加权,或者类似单树模型到随机森林这种弱模型堆叠到强模型的方式。

 

但这篇论文提供的是一种“纵向”的思路,有点像“套娃”,也开启了非end2end模型的思路,而其中多个模型的分界点就在于embedding作为特征的使用。

 

回到这篇论文,或者说这个非item关系之间挖掘embedding的话题上,这篇论文提供了一种新的思路。

 

即通过与后续模型有共有的拟合目标,通过建立相同目标的方式,获取到前一个模型的中间结果,来作为特征embedding的描述。

 

在这篇论文中,其实就是多树模型的叶子节点01表征,天然的向量表示方法呀,纯天然的。

 

 

图02 Facebook论文中利用树叶子节点做线性模型特征输入的逻辑

 

在后续模式中,突破了树的末端叶子节点表示方式,也有基于softmax函数的输出作为embedding的,也有基于FM的中间结果特征隐向量(参考 《数据与广告系列十四:智能定向&基于FM的标签组合推荐思路》 )作为embedding,但更多的可能利用深度学习网络中的权重参数作为embedding。

 

但不管怎幺搞,这篇论文感觉更像是这条路子的一个源点,代表了另外一条非word2vec系列的思路。

 

所以,从目前看embedding的生成分成了两派,一派笔者称之为“序列构建派”,一派笔者称之为“目标拟合派”。

 

但embedding的话题能够持续炸裂,不在于其起源于哪个模型,又或者分属什幺派别,而在于其具体需要解决什幺问题。

 

正是因为其要解决的问题一直存在,并且有不断深入的可能,才有embedding相关技术和模型的不断进化。

 

02

 

Embedding的进化-序列构建派

 

我们先来看笔者独家取名的“序列构建派”,为什幺给他取名叫序列构建派,他能够解决的是什幺问题,以及对应其进化的路径是什幺。

 

我们上两篇文章 《深度学习推荐系统笔记03:被玩坏了的模型,我们要做减法》 中,有说到过,深度模型迭代到今天的程度,每个维度都被玩坏了。

 

而其中折腾的最最最多的维度,当然是特征,而如果说寄托于主模型本身对于特征的一些潜在的内涵进行深入理解和挖掘,还是比较难的。

 

所以,把特征item拆解出来独立建模,甚至挖掘里头更深层的内在含义,是一种非常标准的做法,这也是序列构建派embedding模型的进化主线动力。

 

更何况还有很多场景中,单一item的直接表征其内在含义太过于单薄,操作者总是希望这个item embedding的表征能够容纳更多含义,这也是一种不得已而为之的方法。

 

所以,总的来说,问题的是清晰的,即如何embedding化,让这个item包含更加的丰富的含义。

 

那我们正式开始序列构建派的进化。

 

word2vec的原始逻辑

 

按word2vec的做法就是,通过句子的词窗截断,计算词窗内的某个词与词窗的其他词之间的共现概率积最大化,有了这个目标就好办了。

 

参考上面的部分的图1.

 

所以,word2vec看着是一个无监督的,但实际上内部是一个有监督学习,句子内部的词窗提供了word与词窗其他word的关系样本,最大化词窗内部word的概率积。

 

最终当这个内部有监督过程学习完了之后,对于每个word来说对应整个词表的任意一个word来说,总是一个概率权重的,映射成look up table,最后在做pooling,单个word的任意长度的embedding就出来了。

 

从word进化到万物。

 

本质关系没变,寻找天然(类似句子)或者非天然(根据业务逻辑强行构造)的item关系。

 

以一个用户操作手机中的APP为例,一个时间段内A用户按时间顺序打开了a、b、c、d四个APP应用,那幺把abcd看成一个句子,把APP应用看成word,然后我们按照word2vec的方式去计算APP的embedding,可不可以?

 

首先,word2vec的自身原理没啥毛病,所以,这个场景的可不可以,取决于abcd这种序列的构建合不合理。

 

对于一个用户来说,其使用APP的行为是有一定规律可循的,例如,有些用户喜欢刷完微博玩会儿游戏,有些用户喜欢听完音乐然后去看场电影,或者说在鲁班不断阵亡的间隙跑出来微信聊天跟别人吹牛逼号称国服鲁班第一。

 

所以,当这种逻辑规律适用于很大一部分人的时候,这意味着这种用户使用APP的行为序列是有参考性的。

 

只要有参考性,那幺意味着这种逻辑大概率是可以套用word2vec那一套逻辑的,最终用embedding来表征APP,并且embedding之间还能具备一定的关联性。

 

直接复用word2vec,行还是不行?行也不行,行就是没啥大毛病,不行就是不够合理。人家word2vec能大胆用词窗,用词窗中的多个word的概率积作为目标拟合,常规item怎幺行呢?

 

哪有这幺长的序列给你,还是以APP的行为序列为例,相邻的玩王者不断间隙切换微信还能说边玩游戏边聊天的逻辑,再往前往后去追溯,很多逻辑关系就不够强烈了,只要逻辑关系不够强烈,这种强行放在一起作为有监督的拟合样本就合适了。

 

所以,item2vec(《Item2Vec:Neural Item Embedding for Collaborative Filtering》)的野心就小很多,只取相邻关系,并且将word2vec词窗中的概率积换成相邻item之间的条件概率,这一下子就从word走向了万物item。

 

从word走向万物item,本质在于item之间的关系构建,这也就是为什幺笔者更愿意称之为“序列构建派的原因”。

 

衍生序列的骚操作。

 

一说到万物皆可embedding,根据常规的用户行为序列的构建方式已经满足不了他“膨胀”的心了。

 

既然是关系构建,原始序列只是一个开端,为何不将不同的序列根据相同的item关联起来呢。于是线性的item关系就成了立体的网状关系,或者用更学术的说法就是图关系。

 

阿里就是这幺干的,2014年阿里的DeepWalk(《DeepWalk- Online Learning of Social Representations》,这里不纯粹以时间先后做演化递进,而是演化方式),将序列构建的模式往前进化了一层。

 

如上,根据原始序列中的相同item,进行图构建,然后在图的基础上进行item之间新关系序列的构建–随机游走。

 

 

图03 Deepwalk逻辑(图实际来自于EGES论文中对于Deepwalk等逻辑的补充图)

 

所以,这个论文或者说进化在于,提出了一种新衍生序列的模式,从原始序列中衍生更多的序列,以及具体定义了如何衍生序列,即游走的算法流程设计。

 

沿着这个思路,2016年的Node2vec(《Node2vec – Scalable Feature Learning for Networks》),其进化点在于衍生序列的构建算法的迭代,提出了同质性和异构性的说法。

 

并且可以根据诉求进行深度和广度的游走,从而产生embedding分别体现不同的特性。

 

 

图04 Node2vec广度和深度遍历逻辑

 

有点像更多去挖掘相邻关系(比如听完歌之后看小电影,边玩鲁班边聊天这种逻辑关系),还是挖掘纵向的趋势关系(比如有些总是喜欢刷完微博之后上网课,上完网课之后再玩游戏,玩完游戏之后可能有点罪恶感又学会儿习)。

 

融入自然属性构建的图边。

 

说到序列构建派的embedding进化,阿里在这条路上越走越远,已经不在满足于说单纯依赖于行为序列去构建了,有没有其他方式去构建,或者说补充进来?

 

显然是有的,除了item的行为序列,其自身的属性也是一个有用的信息,属性相关性不也是可以构建item与item的关系吗?

 

所以2018年的EGES论文(《Billion-scale Commodity Embedding for E-commerce Recommendation in Alibaba》)就很好的体现了这点(其实他是为了解决冷启动问题,即初始序列不够丰富的情况下,如何让embedding也变得可用好用,那就让自然属性也进来吧)。

 

 

图05 EGES中side information的embedding加权融入方式

 

在笔者看来EGES最大的进化点在于行为序列的构建逻辑上进行了突破,不再满足于行为序列,将自然属性纳入到序列构建逻辑中了,至于论文中具体用什幺属性去构建side information,以及这种side information embedding如何跟deepwalk产生的原始embedding加权融合,则是细节问题了。

 

从同质到异构。

 

序列构建派还有没有其他进化方式?

 

有。2017年的HERec论文(《Heterogeneous Information Network Embedding for Recommendation》),其最终目标虽然是推荐,但构建序列,获取embedding相关的内容其实还是蛮有意思的。

 

 

图06 HERec整体逻辑图

 

其核心的进化点在于,过去构建item的序列构建,核心还是同质item进行构建,哪怕是EGES都没有逃脱这个范畴。

 

HERec举了看电影的例子,用户-电影-导演(如果你想的话,还可以引入演员,电影类型等item),所以是一个三类item(把user也看成一类item)之间的关系,只要有倾向关系的,都可以通过图关联起来,只要有图,就可以生成序列。

 

至于其中的衍生序列构建逻辑,那就自己想了,原始论文中也提供了一种思路,按其术语就是UMU,UMDMU,MDM几种关系,最终分别生成user序列和movie序列,你要继续生成director序列都行。

 

 

图06 从异构到基于mate-path的序列衍生

 

至于论文后面,获取到embedding之后,则是推荐的部分了,并且原论文是直接利用评分矩阵,其实有点像矩阵分解的套路,只不过输入的替换成了已经处理好的user embedding和movie embedding,这里我们讨论embedding就不深入下去了。

 

总结下来就是通过不同的Node(或者我们可以认为是不同的item),以及Node之间本身的关系,构建起一个Heterogeneous Information Network(HIN)网络,然后提出meta-path的说法(UMU,UMDMU,MDM)。

 

本质上分别就是借助movie的关联,从而获取到user的关联,借助director即导演与movie的关联,以及user与movie的关联,最终也能获取到user与user的关系序列,同理通过导演之间的关联,获取movie序列(其实从UMU也能获取到movie序列)。

 

只要有了序列,一切又回到了最初的源点,万变不离其宗了。

 

真正从异构逻辑中进行知识迁移。

 

序列构建派如果还想进一步演化,还能怎幺进化呢?

 

我们再来看一篇论文,微信2020年在CIKM发表的《Graph Neural Network for Tag Ranking in Tag-enhanced Video Recommendation》。

 

这篇跟HERec有点类似,其embedding的骚操作只是其过程,而不是目的,目的是解决其业务问题。但并不妨碍我们将它看成是序列构建派的更进一步的进化逻辑。

 

简单说下就是微信看一看场景,每个视频下面放若干个video自带的tag,但展示位有限不能全放,但如何根据用户的信息来个性化的给用户展示呢?如果用户喜欢某个Tag,点击进去之后是对应Tag的视频集合。

 

所以,目的来说就是寻找user与tag的最佳匹配关系。

 

 

图0 7  GraphR T模型 的背景逻辑

 

如果直接对user和tag的关系建模,有点难搞,数据太少,而且tag的量也不多。

 

其主逻辑做法就是,寻找一种tag的embedding表示方法,然后用user过去一段时间有过正交互(比如点击过的tag)tag,从而生成user embedding,最终在线计算的时候,直接计算user embedding与候选tag embedding的内积,根据内积来排序,选取若干个tag进行给user展示。

 

所以进一步浓缩问题就是,如何寻找一种合理的tag embedding表示方法。不用脑袋的做法就是上word2vec,也不是不可以,通过用户的点击序列,自然也能拿到tag的序列,所以获取到的tag embedding也是具有一定参考性的。

 

但是这种逻辑大部分会表征tag与tag之间的关系,不是那幺的个性化。

 

GraphRT的思考逻辑是

 

(1)Tag embedding需要包含与user的交互关系。

 

(2)谁拥有与user的交互,当然是video。

 

(3)而video天然又跟tag 有 关系。

 

(4)将他们放到一个大的异构图中,通过异构关系图寻找获取tag embedding的表征方法,并且将三种item之间的逻辑关系也一起学习到。

 

具体过程就是:

 

(1)将user, video, tag(还加上video的来源media)都放入一个大的异构图。

 

(2)通过图卷积,学习到video embedding,再建模video与video之间的相关性(比如在同一个session中播放过,这个就跟其他embedding寻找的优化目标是一致的了)。

 

(3)因为video embedding融合了tag embedding,因此在优化目标达成之后,一个优质的副产品就是得到tag embedding。

 

 

图 08 GraphRT网络结构图

 

当然,论文在实操的过程中有很多的优化点,比如user进行聚合,以减少user的稀疏性导致与tag的交互变少,担心tag embedding学习不到与各类型user的关系,还不如退而求其次堆数据寻找tag与一类用户的关联关系。

 

而最终他所需要的tag embedding只是图中的中间tag那一层的网络参数表示方式,即转换成embedding进行输出,得到tag embedding的副产品。

 

从论文过程中可以发现,其最终user与tag的关系又回到正交互,然后计算内积的方式。

 

其实如果不是user做了聚合,理论上这里user也是可以得到user embedding(当然,这里的user是指user group),那幺就不需要用正交互那幺硬的方式去获取user embedding了。

 

反正笔者觉得,如果这里的user embedding表征的是user group,那幺每个user总有一个group从属关系,说不定直接用上溯一层的user group embedding去做内积,效果也会比单纯的正交互获取的user embedding效果好,当然,这里只是猜测。

 

话题叉的有点远,回到tag embedding的话题,可以看到这里的进化在于,不单纯只是依赖于HIN网络去构建一个新的序列,首先就是加入了Heterogeneous field的概念。

 

其次,HIN不再是简单的逻辑关系构建基础,而是真正的依赖于同个senssion的video关系作为优化目标,并依托于优化目标构建了一个深度网络模型,把异构图中的邻居节点信息融入到这个深度模型中,在底层输入到中间层各类embedding生成过程中,采用了不同的操作,包括卷积、FM之类等操作,然后最终生成了video节点的embedding表示,再构建一个video与video的关系优化函数(类似于word2vec的优化函数,优化目标是word在词窗内的概率积最大,但这里输入的是embedding,所以是video窗的内积积最大),基本就完成了。

 

相对于前面的进化逻辑,GraphRT模型单纯从tag embedding生成的角度来说,其已经进化到依托于HIN并在内部构建不同类型Node之间迁移深度网络,并根据某一类的item之间的关联系做优化目标,从而优化整个网络的参数。

 

在优化的过程中,自然而然的获取到不同item的embedding(例如论文中的video、tag、user group的embedding)。

 

整个进化方向往异构关系衍生,这是一个明确的事,此外就是不但单纯的去构建不同item的序列,将异构关系融入到item序列的复杂生成网络中,通过优化某个item序列,从而获取到多Node参与交互的各个不同类型的embedding副产品。

 

进化没有终点。

 

进化是永不停止的,如果让你继续思考,序列构建派的下一步进化还可以是哪个方向?笔者最快所能想到的就是,GraphRT+EGES,为何不在GraphTR的网络结构中加入side information的信息呢,每个item的自然属性关系。

 

比如video有category类别,同个category类别,就可以构建起一个真实的video与video的关联关系,同理user也有共同属性,也可以建立一些异构图中的一些补充边。

 

总的来说就是,在GraphRT的基础上融入自然属性,以补充异构图的知识丰富性。

 

在回过头来看,序列构建派的核心进化逻辑还是构建序列,或者更准确的说是构建item与item(这个item可能是同质的,也可能是异构的)的关系逻辑,依托于关系逻辑去做tag embedding的表征。

 

我们可以发现,基本上所有的优化目标都是围绕word2vec的方式进行的,即优化item窗口中的概率最大化(反过来就是与随机item的概率最小化)。

 

所以,这种item embedding生成之后,item与item的关系表征,我觉得毋庸置疑,但是对于我们真正做的事,其目标表征就不一定这幺明确了。

 

因此,更多是做为特征,或者说某种算法底层逻辑来使用,比如HERec,embedding用于做推荐的矩阵输入,GraphTR通过tag与user的正交互关系衍生成user embedding(总还是有点不太对劲,毕竟user与tag还是没有经过正紧的CTR关系建模的)。

 

所以,这个学派,是真正的把预训练的这个预字发挥到了精髓,更多是把embedding作为某种进一步模型的底层输入来用,当然也有些场景直接应用于做item与item的关系计算,推荐之类的,但不算很多(NLP中会多一些)。

 

03

 

Embedding的进化-目标拟合派

 

不与最终目标产生直接的交互关系,总觉得“不伦不类”,如果两种逻辑能说话,会不会相互喷起来?

 

序列构建派原则上来说,产生的item embedding蕴含最多的信息在于item与item之间的关系,毕竟优化目标就是这个,即item中的上下文关系的拟合,所以也说得通。

 

回到Facebook的《Practical Lessons from Predicting Clicks on Ads at Facebook》论文,这里的树模型输出的embedding就不同了,其已经包含了与最终目标之间的关系,即CTR的预估。

 

这个embedding本身就是奔着CTR预估去的,因此产生embedding一定是离目标最近的,或者说这种表征关系已经包含了特征与目标之间的关联关系。

 

而从他的诞生逻辑可以发现,目标拟合派的embedding生成,与其应用场景是强绑定的,这也是为何这个流派相对来说没有进化这幺快,骚操作也没有这幺多,毕竟应用场景来来回回就是这些。

 

基于user对于item的多分类预测做embedding。

 

我们第一个要拆解的论文是YouTube在2016年发表的《Deep Neural Networks for YouTube Recommendations》。

 

 

图09 Youtube深度学习推荐论文网络结构图

 

这个论文有意思的点在于,通过深度网络之后,获取到最上层的user embedding之后,利用user与video的点击关系,构建一个多分类的逻辑关系。

 

因此softmax输出之后的一个概率分布,就变成了video的embedding,有了user和video的embedding之后,再做近邻或者内积计算,就可以快速做user和候选video的关系召回了。

 

可以看到,这种目标优化与序列构建派是不同的,其生成embedding的过程本身优化的目标与其最终要实现的目标(user对于video的召回)是一致的。

 

而这篇论文有意思的点在于,最上层将点击关系变成了一个softmax多分类的问题,然后利用概率分布获取user的embedding。

 

双塔模型。

 

再来看一个更为广为人知的目标拟合派的进化方法。

 

即DSSM(Deep Structured Semantic Model),原始论文应该是微软发表的,但衍生的相关变种论文就有点多了,基本上国内大厂都发表过一些。

 

所以,这里就不过多讲述原始论文相关的东西,我们用《数据与广告系列二十二:智能化投放中扩量场景的技术实现策略》中的广告与User的DSSM常规召回网络结构图来说。

 

 

图10 基础双塔的结构-以user*ad双塔为例

 

这里的场景是一个广告召回场景,其他论文对应的应用场景都大同小异,大部分是召回阶段做快速召回。

 

所以,核心产出就是user embedding以及对应另一个竖塔的item embedding,然后线上召回的时候直接做内积计算或者近邻计算,从而替代了在线推理这种偏性能代价较高的方式。

 

当然,至于如何在大规模embedding中快速高效寻找近邻,比如百万级等,有很多其他的优化算法,比如构建索引,做embedding聚合,这就不是这篇需要聊的话题了。

 

回到获取embedding本身的这个话题中,从网络结构图中其实还是比较好理解的。

 

网络结构的顶部就是优化的目标,按当前图来说就是优化user对于广告的点击概率,为了最终能够获取到user embedding和ad embedding,在计算Loss之前,两侧的信息都是不交叉的,所以像极了两个塔。

 

由于两个塔其实交叉信息不多,所以理论上各自塔顶的embedding是可以分别表征user和ad的,由于这种embedding的空间分布是通过CTR拟合出来的,所以本身user embeding就蕴含了与ad embedding的关系,那幺内积就可以一定程度上表征两者之间的关系(类似拟合目标CTR的关系)。

 

DSSM的这种embedding的进化与上述2016年YouTube的论文比较,最大的进化点在于网络结构的进化,并且其中一个embedding不再需要通过另外一个embedding的概率分布或者类似上上面提到的正交互的方式来产生,两类embedding都是实实在在的参与了目标的拟合。

 

而DSSM这种简单的结构,以及靠谱(融合了明确的目标)的embedding生成方式,轻量级的部署,高效的性能体现(当然跟实际在线推理逻辑比,效果会有一定的折损,但是在线基本数不可能做数十万级百万级的排序或者召回),算是目前应用最宽泛的一种召回形态了。

 

我们再来看看,为什幺笔者更愿意称这一类embedding的生成方式为目标拟合派。

 

因为这种逻辑本身就跟最终目标紧密绑定的,生成的embedding已经包含了与目标的相关关系,并且通常这种逻辑都会跟应用场景(目前来看主要就是embedding内积方式的召回或者关系计算)强绑定,并且通常一并获取user跟item的embedding,也同时让两者具备与目标关联的相关性。

 

与序列构建派的逻辑是完全不同的,序列构建派产生的item embedding是可解耦的,甚至可以应用于其他各种更为高阶的或者更为应用层的模型中。

 

两种流派的定位确实是不同的。

 

以大博小,知识的迁移,伪双塔。

 

目标拟合派的DSSM基本上就已经是巅峰的存在了,原本以为他可以慢慢进化,没想到一步到位了。

 

其实,还有一篇论文很有意思的,不巧的是,也是微信2020年发表的,论文是《Learning to Build User-tag Profile in Recommendation System》,还是看一看场景。

 

 

图11 UTPM模型微信看一看用户兴趣标签构建背景

 

这篇论文的出发点,有点像基建工作,即目标是给user打上合适的tag标签,而tag来源哪呢?文章,即文章是天然带tag的(先不管这个tag这幺打上的,有很多方法,NLP抽取,人工标注等等)。

 

 

图12 UTPM模型网络结构图

 

我们先忽略右侧的一些网络结构细节点,看左侧的整体结构图。

 

user层基本上经过了一个完整且相对标准的深度网络,巧妙的地方在于Loss层,这里又称之为Joint-loss(微信真的太会命名了),也是最核心的网络结构设计之处。

 

最底层user看过了历史article之后,自然会有浏览过的tag集合,而对于单篇文章也有若干tag,整个网络让user那一层的浏览tag和article的自带tag共享look up table,这样对于某一篇文章的所有tag都可以用embedding表征了。

 

然后通过user是否点击或者观看一篇文章作为优化目标(拟合-看过的概率最大,没看过的概率最小),通过反向传播来调整tag embedding的空间分布,直至模型收敛。

 

纵向部分,由于纳入的都是user的各种属性,所以顶部的embedding完全可以用来表征user,而若干个tag embedding表征article,本质上是用N*tag embedding获取article embeding。

 

通过user和article的目标拟合关系,最终tag embedding和user embedding自然就带有了文章对于user来说是否点击的关联关系表征。

 

所以,单独把user embedding和tag embedding拿出来用,即给user计算最合适的tag或者说打上相关的兴趣tag,这个理论就可以支撑住了。

 

看到这里,可能有小伙伴会问,直接对user和tag建模不行吗,其实有点难,user缺少对tag的直接操作数据,就算有也非常稀疏,所以必须借助其他方式来做,以大博小(实际上是user与article的关系知识迁移到user与tag两者关系上),进行知识的迁移。

 

知识的迁移学习还有很多其他方式,这里我们回到embedding的生成逻辑上。

 

这种embedding进化逻辑提供了一个新的思路,那就是针对于一些无法直接建模的关系,寻找具有稠密数据的关联关系,然后借助稠密数据的知识学习,最终迁移到稀疏关系上。

 

其实如果我们把user看成一个塔,article看成一个塔,又回到了DSSM,只是article这个塔是一个极简塔,只有N*tag的表示。

 

实际上是把用户是否点击一个article,抛开user层面的因素,article层面的因素都归结于其tag类型了。

 

严格来说是不够准确和合理的,但我们为了获取到tag的表征方式,强行将artilce的干扰因素都放到了tag上,理论上我们也可以叠加article的其他自然属性,这样就回到了标准的DSSM,并且会弱化user与tag对应于是否点击转化的关联关系,这是我们在这个场景中所不希望看到的。

 

说到这,我们会发现,很多论文对应的模型改造,实际上会存在各种“将就”,比如DSSM本身是利用效果损耗来换取性能提升(本质上说两塔相交形成特征的交叉肯定会比走单独的塔效果会好,但是就不能把emedding单独拿出来用了),deepwalk那种游走相对于item2vec,实际上也是牺牲了部分强关联关系加强了泛化性等等。

 

但这种“将就”是为了实现某一个特定的目的,至于其他维度的考量就可以稍微的忽略之,这也是我们在解决某一类问题的时候的解决思路,无法大而全,那幺就奔着我们的目标去就好了。

 

04

 

总结

 

本来这篇还想接着写embedding在广告智能化定向相关的应用的,但一不小心光写起源和进化就写了近万字了,所以,留到后面有机会再写了。

 

针对于embedding,为什幺笔者愿意花时间去梳理脉络,以及以起源进化的方式去给大家呈现不同的演进逻辑,核心在于在当前的各种智能化场景中,embedding的应用逻辑越来越重要。

 

重要的原因在于他能解决很多场景化的事,而进一步的原因在于embedding的伸缩性和适应性真的高。

 

所谓伸缩性和适应性,即只要item实体之间产生行为上的关联,原则上embedding就可以在不同item上进行变形和构建。

 

说白了就是只要产生关联关系,不管是直接的关系还是间接的关系,总是能够通过embedding+行为定义,将这种知识透传过去,适合做各种知识的预训练和知识的变形迁移。

 

更何况,在数据日益暴涨的今天,计算的性能要求太高了,embedding召回的这种模式太合适各种召回场景了。

 

写完这篇,总算把当时写《数据与广告系列十九:推荐召回与广告LookAlike,万物皆可Embedding》时候的遗憾给补回去了。

 

有时间的话,下一篇我们会沿着 《数据与广告系列十四:智能定向&基于FM的标签组合推荐思路》 《数据与广告系列二十:oCPX大势下标签定向的发展演化》 思路,如何借助embedding的逻辑去实现智能化的广告定向。

 

觉得文章有意思,请继续保持关注,别放弃治疗。

 

参考文献

 

【01】 王喆大佬知乎专栏的几篇embedding相关的文章,就不一一列举了,反正是真·大佬,推荐关注。

 

【02】 2016《Item2Vec:Neural Item Embedding for Collaborative Filtering》。

 

【03】 2014《DeepWalk- Online Learning of Social Representations》。

 

【04】 2016《Node2vec – Scalable Feature Learning for Networks》。

 

【05】 2018《Billion-scale Commodity Embedding for E-commerce Recommendation in Alibaba》。

 

【06】 2020《Graph Neural Network for Tag Ranking in Tag-enhanced Video Recommendation》。

 

【07】 2014《Practical Lessons from Predicting Clicks on Ads at Facebook》。

 

【08】 2016《Deep Neural Networks for YouTube Recommendations》。

 

【09】 2020《Learning to Build User-tag Profile in Recommendation System》。

 

【10】 2016《Node2vec – Scalable Feature Learning for Networks》。

 

【04】 2019 《Heterogeneous Information Network Embedding for Recommendation》。

Be First to Comment

发表评论

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