论文网址:Enhancing Long-Tail Bundle Recommendations Utilizing Composition Pattern Modeling

论文代码:Anonymized Repository - Anonymous GitHub

目录

1. 心得

2. 论文逐段精读

2.1. Abstract

2.2. Introduction

2.3. Related Works

2.4. Preliminary

2.4.1. Problem Formulation

2.4.2. Base Model

2.5. Methodology

2.5.1. Composition-aware Long-tail Adapter

2.5.2. Dual-view Prototype Learning

2.5.3. Model Optimization

2.6. Experiments

2.6.1. Experimental Setup

2.6.2. Overall Performance

2.6.3. Ablation Study

2.6.4. Effectofthe Parameter

2.7. Conclusion

1. 心得

(1)不是我的领域...脑翻英可能会出现很别扭的名词

(2)梦回学注意力的时候,一毛一样的公式但是W不一样就是两个意味

(3)这个原型个数居然是超参数吗...

(4)这个任务本身好绕啊,看力竭了

2. 论文逐段精读

2.1. Abstract

        ①因为现在捆绑推荐里的东西只有少部分会让人非常感兴趣,而捆绑的其他一堆东西都没啥用

        ②为了抓住用户的兴趣,作者设计了Composition-Aware Long-tail Bundle Recommendation(CALBRec)

2.2. Introduction

        ①双视图的两个视角:

user-bundle view 建模用户与捆绑物之间的交互,关注用户是否点击、购买或喜欢某个捆绑(如歌单、套餐、图书组合)
user-item view 建模用户与单个物品之间的交互,关注用户对捆绑中具体物品的行为(如歌曲、书籍)

skew  v.歪斜;偏离;歪曲;曲解;影响…的准确性;使不公允  n.斜交;扭曲;斜砌石;歪轮  adj.弯曲的;歪的;曲解的;误用的

        ②(a)捆绑包中少数物品交互多,多数物品交互少,常用推荐算法在常交互的(头部)物品上性能好,而在尾部物品上性能差;(b)头部物品要和能互补的尾部物品捆绑:

        ③要解决的问题:复杂的组合和长尾分布

2.3. Related Works

        ①以前的捆绑推荐都是基于矩阵工程或者图学习

        ②捆绑推荐任务类型:现有捆绑包精准推荐,个性化捆绑包组合,利用对话方式来推荐,增加多样性,提出新捆绑包

        ③现有解决问题的办法:数据增强和基于辅助信息的方法,作者说现在的方法都是针对单个物体而没考虑复杂的组合

2.4. Preliminary

2.4.1. Problem Formulation

        ①用户集\mathcal{U} = \{u_1, u_2, \dots, u_M\},捆绑包集\mathcal{B} = \{b_1, b_2, \dots, b_N\},物品集\mathcal{I} = \{i_1, i_2, \dots, i_O\},其中M是用户个数,N是捆绑包个数,O是物品个数

        ②输入:

用户-捆绑包矩阵 \mathbf{X}_{M \times N} = \{x_{ub} \mid u \in \mathcal{U},\, b \in \mathcal{B}\}
用户-物品矩阵 \mathbf{Y}_{M \times O} = \{y_{ui} \mid u \in \mathcal{U},\, i \in \mathcal{I}\}
捆绑包-物品矩阵 \mathbf{Z}_{N \times O} = \{z_{bi} \mid b \in \mathcal{B},\, i \in \mathcal{I}\}

其中如果某个值等于1就是有关系,0就是没关系

2.4.2. Base Model

        ①对\mathbf{X}\mathbf{Y}使用LightGCN(似乎节点特征是随机化的?然后用户,捆绑包和物品都会成为节点,邻接矩阵就是这些输入)(下面大图第一列很清楚):

\text{LightGCN}(v, \mathcal{N}_v, k) = \sum_{u \in \mathcal{N}_v} \frac{1}{\sqrt{|\mathcal{N}_v|} \sqrt{|\mathcal{N}_u|}} \mathbf{e}_u^{(k-1)}

其中\mathbf{e}_v^{(k)}是第k层的节点嵌入,\mathcal{N}_v是节点v的邻居集

        ②用户-捆绑包\mathbf{X}的更新:

\mathbf{h}_u = \sum_{k=0}^K \frac{1}{k+1} \mathbf{h}_u^{(k)},\quad \mathbf{h}_b = \sum_{k=0}^K \frac{1}{k+1} \mathbf{h}_b^{(k)}

其中\mathbf{h}_u\mathbf{h}_b分别是用户和捆绑包的嵌入

        ③用户-物品\mathbf{Y}的更新:

\mathbf{a}_u = \sum_{k=0}^K \frac{1}{k+1} \mathbf{a}_u^{(k)},\quad \mathbf{a}_i = \sum_{k=0}^K \frac{1}{k+1} \mathbf{a}_i^{(k)}

其中\mathbf{a}_u\mathbf{a}_i分别是用户和物品的嵌入

        ④基于以上嵌入得到:

h_{ub} = \mathbf{h}_u^\top \mathbf{h}_b,\quad a_{ub} = \mathbf{a}_u^\top \mathbf{a}_b,

算出来的东西是用户-捆绑包和用户-物品的匹配得分

2.5. Methodology

        ①CALBRec的框架图:

2.5.1. Composition-aware Long-tail Adapter

        ①建模可学习的且共享的全局特征向量\mathbf{t}

\mathbf{t}_b^k = \phi\bigl(\mathbf{h}_b^k, \mathbf{a}_{i_1}^k, \mathbf{a}_{i_2}^k, \dots, \mathbf{a}_{i_m}^k, \mathbf{t}^k\bigr),

其中b代表不同的捆绑包,\phi代表将\mathbf{t}转换为局部特征向量\mathbf{t}_\mathbf{b}个性化公式,\mathbf{h}_b^k是捆绑包b在用户-捆绑包在第k层的表示,\mathbf{a}_{i}^k是物品i在用户-物品视角中属于捆绑包b的特征

        ②调整整合的程度:

$\mathbf{t}_k^b = \phi\left(\mathbf{h}_k^b, a_k^{i_1}, a_k^{i_2}, \dots, a_k^{i_m}, \mathbf{t}^k\right) = \left(\boldsymbol{\gamma}_k^b + 1\right) \odot \mathbf{t}^k + \boldsymbol{\beta}_k^b$

其中$\boldsymbol{\gamma}_k^b \in \mathbb{R}^{d_k}$控制了模式缩放重要性,$\boldsymbol{\beta}_k^b \in \mathbb{R}^{d_k}$提供了针对捆绑包的调整。这两个参数分别由以下公式求得:

\boldsymbol{\gamma}_b^k = \text{LeakyReLU}\left( \mathbf{W}_\gamma^{k,1} \mathbf{h}_b^k + \mathbf{W}_\gamma^{k,2} \sum_{i \in \{i_1, i_2, \dots, i_m\}} \mathbf{a}_i^k \right),\\ \boldsymbol{\beta}_b^k = \text{LeakyReLU}\left( \mathbf{W}_\beta^{k,1} \mathbf{h}_b^k + \mathbf{W}_\beta^{k,2} \sum_{i \in \{i_1, i_2, \dots, i_m\}} \mathbf{a}_i^k \right),

其中$\mathbf{W}_*,^* \in \mathbb{R}^{d_k \times d_k}$是可学习矩阵

        ③不是所有的捆绑包都需要补充特征,头部捆绑包已经学到了可靠的表示,但尾部捆绑包没有获得足够的交互(这个是代码里面作者给头部和尾部标签吗?就是按照图上那样头部和尾部直接分开了?)

        ④对于头部捆绑包,保持学习好的表示,最小化额外模式影响:

$\forall b \in \mathcal{B}_{\text{head}}: \mathbf{t}_b \to \mathbf{0}.$

        ⑤对于尾部捆绑包,通过控制的模式整合增强表示:

$\hat{\mathbf{a}}_b = \mathbf{a}_b + \lambda \mathbf{t}_b$

        ⑥尾部表示增强后的用户-物品视角得分:

$a_{ub} = \mathbf{a}_u^T \hat{\mathbf{a}}_b$

2.5.2. Dual-view Prototype Learning

        ①为了缓解用户-捆绑包交互中的噪声,作者设计了一个原型学习去把捆绑包表示映射到可学习原型

        ②构建K个原型向量\mathbf{C} \in \mathbb{R}^{K\times D},分配矩阵$\mathbf{Q} \in \mathbb{R}^{B \times K}$,其中$\mathbf{Q}_{b,m}$代表捆绑包b和原型m的分配强度

        ③定义约束:

$\mathbf{Q}^\top \mathbf{1}_B = \frac{1}{K} \mathbf{1}_K,\quad \mathbf{Q} \mathbf{1}_K = \frac{1}{B} \mathbf{1}_B,$

约束时为了保证每个原型接收到同等来自捆绑包的分配权重并且每个捆绑包对原型分配了同等的权重(这,我要晕了)

        ④这个解决办法因为满足Sinkhorn-Knopp algorithm而可以最快收敛:

        ⑤通过Softmax归一化\mathbf{Q}

$\mathbf{P}_{b,m} = \frac{\exp\left(\mathbf{Q}_{b,m}/\tau\right)}{\sum_{k=1}^K \exp\left(\mathbf{Q}_{b,k}/\tau\right)},$

其中\mathbf{P}_{b,m}代表把捆绑包b分配到原型m的概率比

2.5.3. Model Optimization

        ①推荐目标使用贝叶斯个性化排序损失(Bayesian Personalized Ranking,BPR):

$\mathcal{L}_{BPR} = \mathbb{E}_{\left(u, b^+, b^-\right) \sim p_{data}} \left[ -\ln \sigma\left(\hat{y}_{ub^+} - \hat{y}_{ub^-}\right) \right]$

其中$\hat{y}_{ub} = h_{ub} + a_{ub}$是作者给出的偏好分,就是对捆绑包的兴趣程度+对物品的兴趣程度(为什么下标都给了b...我会以为第二个也是用户-捆绑包...oh nono)

        ②组合优化:

$\mathcal{L}_m = \sum_{b \in \mathcal{B}_{\text{head}}} I_b \sum_{k=1}^\ell \left\| \mathbf{t}_b^{k-1} \right\|_2^2,$

其中I_b是头部捆绑包的指示公式,1表示头部,0表示尾部,\ell是网络层数。意思是惩罚头部而不惩罚尾部

        ③将归一化前的概率和归一化后的概率约束到尽量一致:

$\ell_b\left(\mathbf{h}_b, \mathbf{a}_b\right) = - \sum_{m=1}^K \mathbf{Q}_{b,m}^h \log \mathbf{P}_{b,m}^h,$

并且物品视图→捆绑包视图和捆绑包视图→物品视图要协调:

$\mathcal{L}_{proto} = \frac{1}{2n} \sum_{i=1}^n \left[ \ell_{b_i}\left(\mathbf{h}_{b_i}, \mathbf{a}_{b_i}\right) + \ell_{b_i}\left(\mathbf{a}_{b_i}, \mathbf{h}_{b_i}\right) \right],$

(这个反过来就是把上面损失的上标从h换成a

        ④总损失:

$\mathcal{L} = \mathcal{L}_{BPR} + \lambda \mathcal{L}_{proto} + \gamma \mathcal{L}_m,$

2.6. Experiments

2.6.1. Experimental Setup

        ①数据集:书捆绑包Youshu,歌单NetEase,时尚穿搭iFashion:

        ②数据集划分:7:1:2

        ③头部和尾部区分:前20% 和后80%

        ④实验:5次平均

        ⑤嵌入维度:64

        ⑥初始化:Xavier

        ⑦优化器:Adam,学习率为0.001

        ⑧批量大小:2048

        ⑨对超参数使用网格搜索

        ⑩设备:NVIDIA Titan-V GPUs

2.6.2. Overall Performance

        ①表现比较:

2.6.3. Ablation Study

        ①消融实验:

2.6.4. Effectofthe Parameter

        ①超参数实验:

2.7. Conclusion

        ~

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐