WSS推荐系统学习笔记9:物品冷启动1
1 优化目标&评价指标UGC 比 PGC 更难,因为用户上传的内容质量良莠不齐,而且量很大,很难用人工去评判,很难让运营人员去调控。
为什么要特殊对待新笔记?因为新笔记刚刚那个发布,缺少与⽤户的交互,导致推荐的难度⼤、效果差。此外,扶持新发布、低曝光的笔记,可以增强作者发布意愿。
优化冷启的目标:
精准推荐:克服冷启的困难,把新笔记推荐给合适的⽤户,不引起用户反感。
激励发布:流量向低曝光新笔记倾斜,激励作者发布。
挖掘高潜:通过初期⼩流量的试探,找到⾼质量的笔记,给予流量倾斜。
冷启动的评价指标主要包含作者侧、用户侧和内容侧:
作者侧指标:发布渗透率、⼈均发布量。
⽤户侧指标:
新笔记指标:新笔记的点击率、交互率。
⼤盘指标:消费时长、⽇活、⽉活。
内容侧指标:⾼热笔记占⽐,可以反应出冷启是否能挖掘出优质笔记
作者侧和用户侧指标是工业界通用的,技术比较好的大厂都会用这两类指标。内容侧指标只有少数几家在用。
冷启动的优化点为优化全链路(包括召回和排序)和流量调控(流量怎么在新物品、老物品中分配)。
1.1 作者侧指标作者侧指标主要有发布渗透率和人均发布量。
1.1. ...
WSS推荐系统学习笔记8:重排
1 推荐系统中的多样性1.1 物品相似性的度量可以基于物品属性标签:类⽬、品牌、关键词……如果两个物品相同的属性标签越多,那么两个物品就越相似。
也可以使用基于物品的向量表征,⽤召回的双塔模型学到的物品向量表征效果不太好,但是使用基于内容的向量表征效果比较好,也就是使用 CV 和 NLP 模型提取图片和文字的特征向量。
1.2 基于物品属性标签物品属性标签通常是 CV 和 NLP 算法根据物品内容推断出的,不一定准确,可以根据⼀级类⽬、⼆级类⽬、品牌等标签计算相似度。例如有两个物品:
物品 $i$:美妆、彩妆、⾹奈⼉
物品 $j$:美妆、⾹⽔、⾹奈⼉
则相似度为 $\operatorname{sim}{1}(i, j)=1, \operatorname{sim}{2}(i, j)=0, \operatorname{sim}_{3}(i, j)=1$,对三个分数求加权和,即可得到相似度的总分,其中的权重需要根据经验设置。
1.3 基于向量表征计算相似度双塔模型的两个塔分别把用户特征和物品特征映射成向量,记作 $a$ 和 $b$,两个向量的余弦相似度 $\ ...
WSS推荐系统学习笔记7:用户行为序列建模
1 LastN 特征LastN 表示⽤户最近的 $n$ 次交互(点击、点赞等)的物品 ID,可以反应出来用户最近对什么物品感兴趣。召回的双塔模型、粗排的三塔模型和精排模型都可以使用 LastN 特征,LastN 特征很有效。
如下图所示,对 LastN 物品 ID 做 embedding,得到 $n$ 个向量。把 $n$ 个向量取平均得到一个向量,这个向量作为⽤户的⼀种特征,表示用户曾经对什么样的物品感兴趣。
小红书的召回、粗排和精排都用到了 LastN 特征。可以对用户的最近点击过的、点赞过的和收藏过的物品 ID 做嵌入,然后取平均后得到相应的向量,把这些向量拼起来作为一种特征,用于召回等步骤。
2 DIN 模型(注意力机制)2.1 工作原理上面介绍的 LastN 特征是对嵌入后的向量取平均,但是取平均不是最好的方法。最近几年有很多论文提出了对 LastN 特征序列建模更好的方法。其中 DIN 是阿里在 2018 年提出的。
想法很简单,就是用加权平均代替平均,即注意力机制(attention)。其中权重是候选物品与用户 LastN 物品的相似度,哪个 LastN 物品和候选物 ...
读书记录1:许三观卖血记
《许三观卖血记》是中国当代作家余华创作的长篇小说,首次发表于《收获》1995年第6期。
1 前言
最近刚读完了余华的《许三观卖血记》,在之前读过了余华的《活着》,当时读《活着》的时候就感触很深,福贵很惨,他的家人不断离他而去:父母、伴侣、孩子、孙子,最后只有一头老牛和他相依为命。所以在读《许三观卖血记》的时候,一看到这个名就知道肯定和《活着》的内容差不多,讲一个人命运很苦的,而且最后的下场很惨。但是《许三观卖血记》是余华笔下为数不多的幸福大结局的书籍,接下来就写下读完这本书的一些感悟。
2 经典句子
事情都是被逼出来的,人只有被逼上绝路了,才会有办法,没上绝路以前,不是没想到办法,就是想到了也不知道该不该去做。
就算是你不是我的儿子,就算再骂你,你饿了还是要给你买面吃。
我今天算是知道什么叫血汗钱了,我在工厂里挣的是汗钱,今天挣的是血钱。
这苦日子什么时候能完?小崽子苦得都忘记什么是甜,吃了甜的都想不起来这就是糖。
他的泪水在他的脸上纵横交错地流,就像雨水打在窗玻璃上,就像裂缝爬上快要破碎到碗,就像蓬勃生长出去的树枝,就像渠水流进了田地,就像街道布满了城镇,泪水在他脸上织 ...
WSS推荐系统学习笔记6:特征交叉
1 Factorized Machine(FM)1.1 线性模型设模型有 $d$ 个特征,记作 $\mathbf{x}=\left[x_{1}, \cdots, x_{d}\right]$,则线性模型:
$$p=b+\sum_{i=1}^{d} w_{i} x_{i}$$
模型有 $d+1$ 个参数:$\mathbf{w}=\left[w_{1}, \cdots, w_{d}\right]$ 和 $b$(偏移项),预测是特征的加权和(只有加,没有乘)。
1.2 二阶交叉特征线性模型 + 二阶交叉特征,其中的 $x_{i} x_{j}$ 是两个特征的交叉,$u_{ij}$ 是两个特征交叉的权重,两个特征不仅能够相加,还能够相乘:
$$p=b+\sum_{i=1}^{d} w_{i} x_{i}+\sum_{i=1}^{d} \sum_{j=i+1}^{d} u_{i j} x_{i} x_{j}$$
模型有 $O\left(d^{2}\right)$ 个参数,如果 $d$ 比较小,那么这样的模型没有什么问题。 ...
WSS推荐系统学习笔记5:排序
1 多目标排序模型
接下来主要研究粗排和精排,粗排和精排的原理差不多,在学习的过程中先不区分粗排和精排。
对于每篇笔记,系统记录:
曝光次数(number of impressions)
点击次数(number of clicks),点击率 = 点击次数 / 曝光次数
点赞次数(number of likes),点赞次数 = 点赞次数 / 点击次数
收藏次数(number of collects),收藏率 = 收藏次数 / 点击次数
转发次数(number of shares),转发率 = 转发次数 / 点击次数
排序模型预估点击率、点赞率、收藏率和转发率等多种分数,之后融合这些预估分数(比如加权和),根据融合的分数做排序、截断。
1.1 多目标排序1.1.1 工作过程
把用户特征、物品特征、统计特征和场景特征都输入神经网络,这些神经网络可以是很简单的神经网络,也可以是复杂的神经网络。
这个神经网络输出一个向量,之后把这个向量送入四个神经网络,这四个小神经网络各有 2~3 个全连接层,再通过 Sigmo ...
WSS推荐系统学习笔记4:召回3
1 Deep Retrieval
经典的双塔模型把⽤户、物品表示为向量,线上做最近邻查找。Deep Retrieval 把物品表征为路径(path),线上查找用户最匹配的路径。Deep Retrieval 类似于阿⾥的 TDM。
1.1 索引
索引是把物品表征为路径,如下图所示:
深度:depth=3depth =3depth=3
宽度:width=Kwidth=Kwidth=K
把一个物品表示为一条路径(path),比如 [2, 4, 1]。一个物品可以表示为多条路径,比如 {[2,4,1],[4,1,1]}\{[2,4,1],[4,1,1]\}{[2,4,1],[4,1,1]}。
之后建立两个索引,分别是物品到路径的索引和路径到物品的索引。其中一个物品可以对应多条路径,一条路径也可以对应多个物品。
1.2 预估模型
之后需要预估用户对路径的兴趣,用 3 个节点表示⼀条路径:path=[a,b,c]path =[a, b, c]path=[a,b,c]:
给定用户特征 xxx,预估用户对结点 aaa 的兴趣 p1(a∣x)p_{1}(a \mid {x})p1(a∣x)
给 ...
WSS推荐系统学习笔记3:召回2
1 双塔模型1.1 模型结构双塔模型可以看作是矩阵补充模型的升级版。可以对用户 ID、用户离散特征和用户连续特征做处理,处理之后得到很多向量,并把这些向量拼起来。
之后输入深度神经网络,神经网络可以是很复杂的结构,神经网络输出一个向量,这个向量就是对用户的表征。
对物品的处理也是类似,如下:
双塔模型的不同之处在于使用了除了 ID 之外的更多的信息来进行处理,如下图所示,可以看到整体结构就像两个塔一样:
两个塔的输出都是一个向量,之后再计算这两个向量的余弦相似度,余弦相似度的大小介于$[-1, 1]$。
1.2 模型训练双塔模型的训练可以有以下3种方法:
Pointwise:独⽴看待每个正样本、负样本,做简单的二元分类
Pairwise:每次取一个正样本、一个负样本
Listwise:每次取一个正样本、多个负样本
如何选择正负样本?
正样本:用户点击的物品
负样本:可以有多种定义,比如没有被召回的、召回但是被粗排、精排淘汰的、曝光但是未点击的
1.2.1 Pointwise 训练把召回看作二元分类任务:
对于正样本,⿎励 $\cos(a,b)$ 接近 $+1$
对于负样 ...
WSS推荐系统学习笔记2:召回1
1 基于物品的协同过滤ItemCF1.1 ItemCF的原理
推荐系统如何知道《笑傲江湖》与《鹿鼎记》相似?
看过《笑傲江湖》的⽤户也看过《⿅⿍记》
给《笑傲江湖》好评的⽤户也给《⿅⿍记》好评
1.2 ItemCF的实现
预估用户对候选物品的兴趣:
$$\sum_{j} \operatorname{like}\left(\right. user, item \left._{j}\right) \times \operatorname{sim}\left(\right. item _{j}, item )$$
左边是用户对物品的兴趣,右边是两个物品之间的相似度
根据上面的公式进行计算即可得到:
$$2 \times 0.1+1 \times 0.4+4 \times 0.2+3 \times 0.6=3.2$$
表示用户对候选物品的兴趣,比如有多个候选物品,则可以计算用户对每一个物品的候选分数,然后选出分数较高的几个物品。
1.3 物品的相似度两个物品的受众重合度越⾼,两个物品越相似。例如,喜欢《射雕英雄传》和《神雕侠侣》的读者重合度很⾼,则可以认为《射雕英雄传》和《神 ...
WSS推荐系统学习笔记1:概要
1 评价推荐系统的指标1.1 消费指标
点击率 = 点击次数 / 曝光次数
点赞率 = 点赞次数 / 点击次数
收藏率 = 收藏次数 / 点击次数
转发率 = 转发次数 / 点击次数
阅读完成率 = 滑动到底次数 / 点击次数 × f(笔记长度)
上面只是短期消费指标,不是最重要的指标。衡量推荐系统的好坏最重要的指标是北极星指标。
1.2 北极星指标北极星指标是衡量推荐系统好坏的根本指标。
用户规模:日活用户数(DAU)、月活用户数(MAU)
消费:人均使用推荐的时长、人均阅读笔记的数量
发布:发布渗透率、人均发布量
2 实验流程
离线实验: 收集历史数据,在历史数据上做训练、测试。算法没有部署到产品中,没有跟用户交互。
小流量AB测试:把算法部署到实际产品中,用户实际跟算法做交互。
3 推荐系统的链路
推荐系统的目标是从几亿个物品中选出几十个物品展示给用户。
3.1 召回有很多召回通道,快速从上亿篇笔记中取出几千篇笔记,作为候选集。
召回通道:协同过滤、双塔模型、关注的作者 ...