多步相关:图模型Embedding(推荐系统 知识十一)

图模型Embedding模型

由于随机游走无法彻底解决稀疏性问题,两步相关性自能扩大覆盖半径,无法提升主商品的推荐覆盖。


流行的做法是:把物品用embedding表示。

  • 稀疏向量:【1,0,1,0】*【0,1,0,1】相关性为0
  • 稠密向量:【0.8,0.7,0.7,0.5】*【0.5,0.6,0.9,0.8】相关性不为0
  • 稠密向量任意两个物品的相关性都不为0

如何生成embedding

使用word2vec:

  • 相近的词,具有相近的向量, V1 V2 相似度就高
  • 构造词序列:a quick fox jumps over..
  • 训练数据:【a quick fox】【quick fox jumps】...
  • 基于训练数据生成embedding表示

使用近似KNN算法获取每个embdedding的最相似的结果,找出i 的 topK的j 有很高的复杂度,所以用KNN去。

那么word2vec对标到用户行为中的时候

  • 构造行为序列
  • 划分session(相当于划分句子)一个session就是一个意图
  • session内划分窗口,相当于句子内的窗口,session里有i个物品,【i1,i2, i3, i4, i5 ...】
  • 放到word2vec的模型中训练模型得到embedding,得到向量
  • 使用FAISS等近似KNN工具获取TOPk相似结果
  • 其他方法:DeepWalk(依赖局部信息随机游走生成序列,先基于所有人的数据生成图,在进行点与点进行采样);
  • Node2vec(控制游走方式,深度优先vs广度优先)

Embedding数据的使用:

  • 可解释稀疏性问题,提高全面覆盖
  • 相关性比CF差,适合配合使用
  • 可解释性较差,不宜用在需要强解释理由的场合

图片文字说明


欢迎技术探讨