SIGIR2021 | DCDIR:深度跨领域保险推荐系统

阅读日期:2021.8.27
论文地址:论文来源(我阅读的是arxiv上的预印版)
论文信息:Ye Bi, Liqiang Song, Mengqiu Yao, Zhenyu Wu, Jianming Wang, and Jing Xiao. 2020. DCDIR: A Deep Cross-Domain Recommendation System for Cold Start Users in Insurance Domain. Proceedings of the 43rd International ACM SIGIR Conference on Research and Development in Information Retrieval. Association for Computing Machinery, New York, NY, USA, 1661–1664. DOI:https://doi.org/10.1145/3397271.3401193

关于发表在SIGIR2021上的一篇跨领域推荐的研究——DCDIR:A Deep Cross-Domain Recommendation System for Cold Start Users in Insurance Domain,本文主要内容包括预印版论文内容进行的总结与一些思考。

文章目录

  • 发现问题
  • 主要内容
  • 研究方法
    • 1. 目标域隐特征的学习
      • a. 预训练知识图谱
      • b. 生成元路径
      • c. Top-K路径采样
      • d. 生成 路径embedding和用户特征表示
    • 2. 源域隐特征的学习
    • 3. 域间映射函数
    • 4. 模型训练
    • 5. 如何利用模型进行跨领域推荐
  • 思考


发现问题

针对 网络保险产品 的推荐问题,目前面临两个挑战

  • Item complexity:保险政策非常复杂,普通用户通常缺乏相关知识
  • Cold start & Data Sparsity:保险产品通常是长期使用的,购买次数较少,因此存在数据稀疏和冷启动问题

主要内容

  针对目标领域内的冷启动用户问题,提出了一种深度跨领域保险推荐系统DCDIR。首先,学习源域和目标域中用户和项目隐特征。在目标领域,考虑到保险产品的复杂性,模型在构建的知识图谱上设计了一种基于元路径的方法。在源域中,模型使用门循环单元(GRU)来模拟用户的动态兴趣。然后,在获得两个域间重叠用户的隐特征后,利用多层感知器(MLP)学习两个域之间的特征映射函数。
  模型利用辅助领域信息,主要考虑了用户序列化的历史记录(此处指的是按照时间顺序排列的二元的隐式反馈),以及目标域下构建的知识图谱,通过学习域间的映射关系(特征映射函数),最终为目标域下的用户提供保险推荐。模型框架如下图所示:
SIGIR2021 | DCDIR:深度跨领域保险推荐系统_第1张图片
模型主要分为三个部分:目标域隐特征的学习,源域隐特征的学习,特征的映射。

研究方法

1. 目标域隐特征的学习

本文的重点主要是这个部分。考虑到保险产品的复杂性,该模型通过设计元路径来帮助用户更好的理解保险产品。该模块如下图所示,主要分为四个步骤:
a. 预训练知识图谱
b. 生成元路径
c. Top-K路径采样
d. 生成 路径embedding和用户特征表示,
SIGIR2021 | DCDIR:深度跨领域保险推荐系统_第2张图片

a. 预训练知识图谱

  研究者本身拥有一个保险知识图谱(insurance knowledge graph,ISKG),它由多种实体类型(如产品Product,特征Feature,需求Need)和许多“实体-关系-实体”(entity-relation-entity)三元组组成。
  因此,第一步是通过TransD技术预训练知识图谱ISKG,从而得到实体和关系的embedding。

b. 生成元路径

  由于知识图谱中的三元组描述了项目的关系属性,用户交互过项目和目标项目(候选推荐项目)之间可以构成多条路径。某用户交互过的物品 e 1 e_{1} e1到目标物品 e v e_{v} ev的路径可以表示为:
在这里插入图片描述
因此, S u S_{u} Su表示用户 u u u的所有生成路径。此处有一个需要注意的地方:由于该保险知识图谱的特性,关系 r l − 1 r_{l-1} rl1 e l e_{l} el具有相似的语义关系,因此路径 p e 1 , e L p_{e_{1},e_{L}} pe1,eL表示为 [ e 1 , e 2 , . . . , e L ] [e_{1},e_{2},...,e_{L}] [e1,e2,...,eL](后文还会用到,注意!)。
  为了避免过长的路径会引入噪声,研究者根据特定的实体类型和路径长度设置了两种元路径:(P ,F ,N ,F ,P ) 和 (P ,N ,F ,N ,P ), 其中P , N和 F分别表示 “Product” , “Need” and “Feature”。举例如下:
  SIGIR2021 | DCDIR:深度跨领域保险推荐系统_第3张图片
  其中GEF是重大疾病保险,EBS是健康保险,AXBFB和BWRWX是意外事故保险。

c. Top-K路径采样

  由于元路径数量较多,研究者通过设置得分函数,更有效的对路径进行采样。对于给定的路径 p e 1 , e L = [ e 1 , e 2 , . . . , e L ] p_{e_{1},e_{L}}=[e_{1},e_{2},...,e_{L}] pe1,eL=[e1,e2,...,eL],得分函数:
在这里插入图片描述
N I u t NI^t_{u} NIut是目标域内用户交互过的项目序列, P P P e 1 e_{1} e1在该序列中的位置。该式子分为前半部分和后半部分。其中,前半部分衡量了交互的时间(序列中最近交互的项目对用户接下来的操作有更大的影响)。后半部分衡量了目标项目和元路径的相似性。为什么能表示相似性呢?首先,由于向量的内积越大说明向量越相似。其次,前文提到由于该保险知识图谱的特性,关系 r l − 1 r_{l-1} rl1 e l e_{l} el具有相似的语义关系,因此路径 p e 1 , e L p_{e_{1},e_{L}} pe1,eL表示为 [ e 1 , e 2 , . . . , e L ] [e_{1},e_{2},...,e_{L}] [e1,e2,...,eL],所以目标物品 e L e_{L} eL ∑ i = 1 L − 1 e i ∣ ∣ e i ∣ ∣ \sum^{L-1}_{i=1}{\frac{e_{i}}{||e_{i}||}} i=1L1eiei的内积表示相似性。
  最终根据选择得分最高的K条路径,用 S u t o p − K S^{top-K}_{u} SutopK表示。

d. 生成 路径embedding和用户特征表示

  路径实体是节点实体的序列,研究者利用GRU(Gated Recurrent Unit)技术将该序列嵌入到低维向量:
SIGIR2021 | DCDIR:深度跨领域保险推荐系统_第4张图片

令路径 p e 1 , e L = h n p_{e_{1},e_{L}}=h_{n} pe1,eL=hn,即为路径embedding。
用户特征表示利用top-K路径的最大池化(max-pooling)表示 u t u_t ut
在这里插入图片描述

2. 源域隐特征的学习

  本研究应用的场景中,源域是非金融领域,且其中的每个项目都有其相关的内容信息。用 c i c_i ci表示物品 i i i的内容描述。
  为了学习隐特征,这里采用了word2vec技术。假设 c i c_i ci中有n个单词,则利用word2vec输出这些单词向量,用集合表示为: { w k i } k = 1 n \{w^i_{k}\}^n_{k=1} {wki}k=1n。根据内容信息表示项目embeeding:
  在这里插入图片描述
  进一步地,为了表示源域用户特征向量 u s u_s us,根据用户在源域中交互过的项目序列 N I u s NI^s_{u} NIus,仍然采用GRU技术,将输入 e n e_n en替换为 i i i,加入到公式(2)中。

3. 域间映射函数

  利用多层感知机(MLP, multi-layer perceptron),将源域用户表示 u s u_s us作为输入,目标域用户 u t u_t ut表示作为输出进行训练,其损失函数为:
在这里插入图片描述

4. 模型训练

  训练过程主要包含两部分,除了上述的 域间特征学习损失,还有源领域和目标域的推荐损失,以目标域损失为例:
在这里插入图片描述
其中, y ^ u v \hat{y}_{uv} y^uv如下式所示,其中 σ σ σ表示sigmoid激活函数, f f f是一个排序函数,可以是点积或深度神经网络。该值为二元值,用于和ground-truth中用户u是否与项目v进行交互的预测进行比较。当二者有交互时 y u v = 1 y_{uv}=1 yuv=1,否则 y u v = 0 y_{uv}=0 yuv=0
在这里插入图片描述
  因此,总损失函数表示为域间特征学习、目标域和源域的推荐损失的综合:
  在这里插入图片描述

5. 如何利用模型进行跨领域推荐

  通过训练得到了模型的相关参数。假设现在有一个用户在源域(非金融领域)中有历史记录,但第一次进入目标域(保险领域)。模型首先学习其源域用户表示 u s u^s us,再通过映射函数得到预测的目标域用户表示 u ^ t = f m l p ( u s ) \hat{u}^t=f_{mlp}(u^s) u^t=fmlp(us),再利用 y ^ u v \hat{y}_{uv} y^uv为该冷启动用户进行目标域物品的推荐。


思考

  模型有两点可改进之处(个人意见,仅供参考):

  • 模型主要从用户角度进行训练,而物品embedding直接采用Word2vec或者是KGE方法训练得到,可进一步完善。
  • 前文提到了“由于保险产品的复杂性,该模型通过设计元路径来帮助用户更好的理解保险产品”。则该研究在实际应用时应该可以利用选取的元路径为用户提供一定的解释性,但是文中没有体现(也可能在正式发布的论文中作者会提到)。

你可能感兴趣的:(推荐系统,跨领域推荐,推荐系统,机器学习,人工智能)