新零售智能引擎事业群出品
神经网络模型目前已经被广泛地应用于各种推荐系统中。这些基于神经网络的推荐算法通常只会从用户的行为序列中学习到一个用户表征向量,但是这个统一的表征向量往往无法反映用户在一段时期内的多种不同的兴趣。以下图为例,用户Emma的商品点击序列反映了她近期三种不同的兴趣,包括珠宝、手提包和化妆品。我们提出了一种可调控的多兴趣推荐框架来解决这种情形。多兴趣抽取模块会从用户的点击序列中捕获到用户多种不同的兴趣,然后可以用来召回一些相似的商品。聚合模块会将这些不同兴趣召回的商品整合起来作为推荐的候选商品,供下游的任务来使用。
对于多兴趣抽取模块,我们参考了已有的工作MIND[1]。MIND首先将胶囊网络[2]中的动态路由算法用于抽取用户的多兴趣。在我们的工作中,我们不仅尝试了动态路由算法,还探索了基于自注意力的方法来作为我们的多兴趣抽取模块。事实上,使用何种方法来作为多兴趣抽取模块仍然值得进一步的探索。这一模块的训练是通过基于用户历史的点击序列来预测下一个点击行为来进行的。具体来说,对于训练集中的一个样本对(u,i),通过用户u在点击商品i之前的行为序列得到用户的多个表征v_1,v_2,…,v_K,并从中选取一个与商品i的表征e_i最为接近的用户表征v_t,优化如下的负对数似然函数
其中I表示整个商品的集合。由于分母的求和式计算开销过大,所以我们使用一种基于采样的softmax技巧来近似计算。经过训练之后,这一模块就可以用于从用户历史的点击序列中学习到用户的多个表征。这一模块的训练过程如下图所示。
对于多兴趣抽取模块,我们在2个公开数据集Amazon和Taobao数据集上进行了实验,验证了我们所提出的模型的有效性。如下表所示,在2个数据集上,我们提出的ComiRec-SA/DR取得了最好的效果(SA表示基于自注意力的方法,DR表示基于动态路由的方法)。
我们基于一个实际用户进行了案例分析。我们的多兴趣抽取模块从用户的历史点击序列中学习到了用户近期的四种不同的兴趣,包括甜品、礼物盒、手机壳以及小配件。左侧是用户点击过的商品,右侧是对应的兴趣表征从大规模商品池中召回回来的一些商品。
通过多兴趣抽取模块得到用户的表征之后,如何更好地利用用户的多兴趣表征来帮助下游的任务是一个非常值得研究的问题。在这一点上,我们提出了一种可调控的聚合模块。给定用户的多兴趣表征v_1,v_2,…,v_K,一种最直接的方式是把商品和用户的相似度定义为商品与该用户最相关的兴趣表征之间的得分,即f(u,i)=max┬(1≤t≤K)(v_t^T e_i )。这种方式能够最大化推荐的精度,但是没有充分利用用户的多兴趣表征。我们提出的可调控的聚合模块可以根据用户的多兴趣表征来调控推荐的精度和多样性。具体来说,我们定义了如下的关于用户u和商品集合S的价值函数
其中g(i,j)表示商品i和商品j之间的差异性,例如g(i,j)=δ(CATE(i)≠CATE(j)),CATE(i)表示商品i的类别,δ(⋅)是一个指示函数。通过从各个兴趣表征分别召回的商品中选择一个商品集合S来最大化这一价值函数Q(u,S)来得到推荐的商品集合。对于这一函数,我们可以采用一种贪心的策略来求得一个比较好的解。近似求解算法的过程如下:
在超参设置上,如果希望最大化推荐的精度,则可以设置λ=0,与上述最直接的方式相同;如果取λ=+∞,聚合模块会找到最多样化的商品集合。我们在Amazon数据集上进行了调控实验。当我们增大因子λ时,推荐的recall指标会有些许下降,但是推荐的多样性会显著地提升。提升推荐的多样性能够在一定程度上改善用户的体感。
参考文献:
[1] Li, Chao, et al. "Multi-interest network with dynamic routing for recommendation at Tmall." Proceedings of the 28th ACM International Conference on Information and Knowledge Management. 2019.
[2] Sabour, Sara, Nicholas Frosst, and Geoffrey E. Hinton. "Dynamic routing between capsules." Advances in neural information processing systems. 2017.
更多数据挖掘内容查看:《KDD论文精华解读》