特征交叉03:LHUC(PPNet)
本博文引自王树森老师推荐系统。视频地址:特征交叉03:LHUC (PPNet)_哔哩哔哩_bilibili课件地址: https://github.com/wangshusen/RecommenderSystem
上节课介绍的交叉网络可以用于召回和排序,这节课介绍一种比较相似的神经网络结构,叫做LHUC,跟交叉网络的想法有些类似,LHUC在工业界确实有效,但只能用于精排。
这是标准的多目标排序模型,中间这部分是shared bottom,被多个任务共享,他用什么样的神经网络结构都可以,包括全连接网络,深度交叉网络,或者是这节课介绍的LHUC。
LHUC是语音识别的学者在2016年提出的,对语音识别的效果有提升,想深入了解LHUC的话,可以看下面引用的论文,后来快手将LHUC用在精排模型中取得了效果,快手把这种模型叫做ppnet,感兴趣的话可以看下面引用的网页。
我先从语音识别中的LHUC讲起,语音识别的输入是一段语音信号,我们希望用神经网络对输入的信号做变换,得到更有效的表征,然后识别出语音中的文字。语音是人说的,不同的人声音会有所区别,所以最好是加入一些个性化,也就是用到说话者的 ...
特征交叉02:DCN深度交叉网络
本博文引自王树森老师推荐系统。视频地址:特征交叉02:DCN 深度交叉网络_哔哩哔哩_bilibili课件地址: https://github.com/wangshusen/RecommenderSystem
这节课我们继续研究推荐系统中的特征交叉,这节课内容是深度交叉网络,缩写(DCN),用来代替简单的全连接网络,DCN既可以用于排序,也可以用于召回。
回顾我们先回顾以前介绍的召回和排序模型,讨论其中哪些结构可以被替换成DCN。这是前面召回课程中讲过的双塔模型,双塔是一种框架,而不是一种很具体的神经网络。用户塔和物品塔可以用任意的神经网络结构,最简单的模型结构当然是全连接网络,这节课介绍的深度交叉网络效果比全连接网络更好。
这是前面讲过的标准的多目标排序模型,输入是很多特征,输出是对点击率,点赞率等指标的预估,网络的整体结构很简单,我就不再讲一遍了。中间的神经网络负责对特征做变换,然后输出一个特征向量,这个神经网络被所有任务共享,所以叫做shared bottom,它的网络结构可以任意,最简单的实现就是用多个全连接层,如果用更好的神经网络结构,预估的准确性会更高。
这是排序用的M ...
特征交叉01:Machine(FM)因式分解机
本博文引自王树森老师推荐系统。视频地址:特征交叉01:Factorized Machine (FM) 因式分解机_哔哩哔哩_bilibili课件地址: https://github.com/wangshusen/RecommenderSystem
前面的课程介绍了召回和排序模型,这节课后面几节课内容是特征交叉,在召回和排序中都会用到。这节课介绍最基础的factorized machine,缩写是fm。几年前fm在召回和排序中都很常用,但是现在fm已经不太常用了,但大家不妨了解一下fm的思想,知道早些年特征交叉是怎么做的。在讲fm之前,我先讲一下线性模型,设模型用到第一个特征,用$d$维向量$x$表示,用下标表示向量中的元素。这是个线性模型,公式中的$b$是偏移项,英文叫做bias或者intercept,第二项是对$d$个特征的连接,其中的$w_i$表示每个特征的权重,把线性模型的输出记作$p$,它是对目标的预估,为了方便这里我没有用激活函数,如果做二分类,可以用sigmoID激活函数。这个线性模型有d+1个参数,$w_1$到$w_d$是权重,$b$是偏移项,不难看出,线性模型的预测 ...
排序06:粗排模型
前面的课程介绍了多目标排序模型,没有具体区分粗排和精排,其实前面介绍的模型主要是用于精排,这节课我们来看看粗排该怎么做。
粗排与精排首先对比一下粗排和精排:在推荐系统的链路上,粗排在精排之前,粗排给几千篇笔记打分,而精排只给几百篇笔记打分。每做一次推荐,粗排模型要给几千篇笔记打分,单次推理的代价必须很小,而精排只给几百篇笔记打分,单次推理的代价很大也没有关系。精排的模型规模可以很大,模型结构可以很复杂,粗排预估的准确性不高,牺牲准确性是为了保证线上推理的速度足够快,准确性差一些没有关系。粗排的目的是做初步筛选,从几千篇笔记中选出几百篇,而不是真正决定把哪些笔记曝光给用户。精排的模型足够大,牺牲更多的计算,确保预估的准确性足够高。
复习精排模型在讲粗排之前,我们先来回顾一下精排模型和双塔模型。这是之前介绍的精排模型,最下面是精排模型用到的特征,包括用户特征,物品特征,统计特征,还有场景特征,直接对这些特征做concatenation,然后输入一个神经网络。这个神经网络叫做shared bottom,意思是他被多个任务共享,把它输出的向量输入上面多个头,得到对点击率,点赞率等指标的预估。精 ...
排序05:排序模型的特征
前面的课程讲解了排序模型的结构,这节课内容是排序模型用的特征。
用户画像召回和排序的模型中都有用户属性,用户属性记录在用户画像中。用户ID是排序中最重要的特征之一,用户ID本身不携带任何有用的信息,但是模型渠道的ID embedding向量对召回要排序模型有很重要的影响。召回和排序都会对用户ID做embedding,通常用32位或者64位向量。人口统计学属性包括性别,年龄等等,不同性别,不同年龄段的用户兴趣点差别很大。用户的账号信息包括用户注册时间,活跃度新用户和老用户,高活低活用户的行为区别很大,模型需要专门针对新用户,低活用户做优化。再就是用户感兴趣的类目、关键词、品牌,这些信息可以是用户自己填写的,也可以是算法自动提取的,这些用户兴趣的信息对排序也是很有用的。
物品画像与用户画像相对的是物品画像,现在几乎所有的工业界推荐系统中都会使用用户画像和物品画像。物品ID的重要性自然不用说,物品ID embedding在召回和排序中的重要性非常高。物品的发布时间或者物品年龄也是非常重要的特征。在小红书一篇笔记发表的时间越久,价值就越低,尤其是明星出轨、电商打折之类的强时效性话题热度只有几天 ...
排序04:视频播放建模
本博文引自王树森老师推荐系统。视频地址:排序04:视频播放建模_哔哩哔哩_bilibili课件地址: https://github.com/wangshusen/RecommenderSystem
上节课介绍了预估分数的融合,这节课专门讨论视频播放的建模,讨论播放时长和完播率这两个指标。
视频的播放时长先来研究视频的播放时长。图文笔记排序和视频的排序有显著的区别,对于图文笔记排序的主要依据是这些指标,包括点击、点赞、收藏、转发、评论,也就是说用户的点击和交互反映出用户对图文笔记的兴趣。视频有些区别,视频的排序依据还有播放时长和完播,尤其是对于一些视频网站,时长和完播是最主要的指标,其次才是点击和交互。如果用户把一个视频看完,即便没有点赞、收藏、转发,也能说明用户对视频感兴趣。我们先来讨论播放时长,由于它是个连续变量,大家自然而然会想到用回归拟合播放时长,但直接做回归的效果并不好。实践中对播放时长建模最好的方法是下面这篇youtube的论文,接下来我要讲这篇论文的方法,但我讲的跟这篇论文有些区别,原因是直接用这篇论文的方法会有偏差。
这是排序模型用的特征,其中包含用户特征、视频特征、 ...