用户序列建模方法总结

用户序列建模方法

摘要:

推荐系统用户的可用特征可以归类:

  • 静态特征:用户年龄、属性、地域等特征。
  • 动态特征:用户行为序列。

这里主要是对各种常见的算法对动态特征的建模进行总结
主要包括了:

  • 池化:DNN for youtube,deep&wide
  • attention: DIN,DIEN
  • 序列思路:GRU4REC,LSTM等
  • 多兴趣特征建模:MIND
  • 基于强化学进行建模的法

简介

用户行为序列特征是推荐系统中重要的动态变化的特征。 用户的行为序列可以明显的加强不同样本之间的区分度;在推荐系统中,用户的兴趣是动态变化的,因此,仅仅依靠静态特征进行产出推荐列表,不能满足用户兴趣的实时性保障。
目前,对用户的行为序列进行建模的思路可以分为以下三类:

  • 池化方式:最典型的池化方式就是sum、mean等,即将用户过去一段时间的行为看作一个无序的序列。例如,谷歌的DNN for youtube,deep&wide网络等。
    • 这种方法简便易行,但是他忽略用户行为序列的顺序等信息
  • 注意力机制:这种方式可以认为是采用了加权平均的池化方式。 参考了NLP中常见的各种注意力机制,利用输入的行为序列,计算序列各行为的权重,考虑序列行为中不同行为的贡献峰值。例如,Deep interest network,deep interest evlovenetwork等。然鹅,还是没有考虑行为序列的先后方式。
  • 序列的网络结构建模方式:这种方式将用户行为看作一个带有时间属性的序列,一般来说通过lstm,gru,transformer等可以考虑位置信息的组件来进行建模。
  • 目前也有研究认为用户具有多兴趣特征,而单一的hidden(lstm/attention/池化后出现来embedding)只能代表用户一个兴趣点。这些方式对用户的多兴趣表达进行了建模。 Multi-Interest Network with Dynamic Routing。

算法详解

一、 Pooling套路的算法

1. DNN for youtube

用户序列建模方法总结_第1张图片

引用自《Deep Neural Networks for YouTube Recommendations》

简单来讲就是:

  1. 根据用户的播放历史产出hunderds from millions 的候选集。候选集筛选网络通过协同过滤CF来完成。在youtube这个上面用了,user-based的协同过滤。“a matrix factorization approach trainedunder rank loss”
  2. 之后在召回的数百的list上进行ranking,rank网络通过用户行为序列特征、用户静态特征、vedio的特征输出分值,然后根据分值高低进行排序。
1.1 问题描述

在yotube的这个推荐算法里将推荐问题变成了多分类问题,因而,该问题可以由如下式子描述,其中 P ( w t = i ∣ U , C ) P(w_t=i | U,C) P(wt=iU,C) 代表用户 U U U在候选集 C C C中会去video i i i 的概率:
P ( w t = i ∣ U , C ) = s i ∑ j = 1 N s j P(w_t=i | U,C) = \frac{s_i}{\sum_{j=1}^{N}{s_j}} P(wt=iU,C)=j=1Nsjsi
where:
s i = e v j ∗ u s_i = e^{v_j*u} si=evju

1.2 求解问题/训练模型

在该算法里,作者尝试了hierachical softmax 来处理上面那个million级别的分类问题,但是效果不太好,我自己的猜测式,不同于训练word2vec词向量,这个事情比较难找好用建树的启发式规则。故而作者用了negative sampling的套路。

  • 每个训练输入采用负采样的获取多个负样例
  • 然后采用重要性权重进行修正

线上serve的时候从millions中搞出候选集,显然不能直接softmax分类,top N推荐:

  • 采用哈希分桶
  • 最近邻
1.3 模型架构与特征

具体细节可以从下面的图看出来:
用户序列建模方法总结_第2张图片

引用自《Deep Neural Networks for YouTube Recommendations》

图中展示采用的feature包括:

  • 静态特征: 年龄、性别、地理特征 等等等。
  • 动态特征: 观看的视频的集合、搜索的文本的集合。
    注意:这里它对动态特征的使用就是简单按分组进行平均, 也就是我们所说的平均的池化方式

二、attention方式的算法

1. Deep Interest Network

写在其他地方

你可能感兴趣的:(用户序列建模方法总结)