9.2.1 学习标的物的嵌入表示

通过构建算法模型,基于用户行为数据、标的物metadata将标的物嵌入到低维向量空间中,得到每个标的物的嵌入向量表示。有了标的物的嵌入向量,我们可以通过如下三种方式实现推荐业务。

1.构建标的物关联推荐

将标的物嵌入到同一个空间后,“距离”越近的标的物往往越相似。我们可以利用该性质来计算两个标的物之间的相似性。一般计算相似性可以采用余弦的方法。

我们可以为每个标的物求出最相似的N个标的物作为关联推荐。具体在大规模数据情况下怎么分布式求topN相似度,在4.3.1节计算topN相似度时有详细讲解,这里不再赘述。

2.对标的物进行聚类,构建个性化专题或用于关联推荐

有了标的物的向量表示,我们还可以对标的物进行聚类,同一类的标的物往往是相似的,这一类标的物可以用于制作专题,通过人工增删部分标的物,给专题起一个描述性标题,就可以用于人工运营,这是算法和人工配合的一个很好的案例,特别适合长视频行业。另外,聚类后的标的物也可以作为关联推荐,将同一类的其他标的物构造成关联推荐列表。

3.为用户推荐个性化的标的物

有了标的物的嵌入向量表示,我们可以非常容易地为用户进行个性化推荐。具体的推荐策略有如下两个。

(1)通过标的物的嵌入获得用户的向量表示,使用用户向量与标的物向量内积计算预测评分

通过用户操作过的标的物的嵌入的“聚合”来获得用户的嵌入表示,可以采用(加权)平均或者RNN(见本章参考文献[15],本章不讲解)等方式来聚合。

,记是按照时间顺序取出的用户最近操作过的k个标的物(v1是最近操作过的),标的物vi的嵌入表示记为ei,那么我们可以用如下方式来获得用户的嵌入表示:

其中,wi是标的物vi的权重,我们可以取wi=1/k,这时不同时间段的标的物权重是一样的,也可以按照时间做等差或者等比的衰减,保证时间最近的标的物权重最大。

通过上面的方法获得了用户的嵌入向量表示,再根据用户向量与标的物向量的内积,计算出用户与每个标的物的评分,按照评分降序排序取topN作为推荐列表(剔除用户已经操作过的标的物)。

(2)通过与用户操作过的标的物相似的标的物为用户推荐

该方法可以将用户最近操作过的标的物作为种子标的物,将与种子标的物最相似的N个标的物作为推荐的候选集。具体如下:

当然,上面只是选择出了候选集,一般我们还要给候选集中的标的物打分,按照分值高低将高分的topN推荐给用户。具体给候选集中标的物打分的方法如下:用户u操作过标的物vi,可以根据具体操作来给vi打分(如果是视频播放,那么根据播放时长占整个视频时长的比例来打分),而vj又与vi相似,那么肯定有一个相似得分(相似度),这两个得分相乘就是用户u对标的物vj的评分。