在交叉领域的推荐方法中,通常研究两个领域的交叉的场景,根据用户的重叠情况和商品的重叠情况,具体分为以下四类:
\qquad\qquad
- 用户重叠(User Overlap)。在源领域和目标领域之间存在部分公共的用户,用符号可表示为 U S T ≠ ∅ U_{ST} \neq \emptyset UST̸=∅,他们对两个领域的商品都有评分,但是每件商品只属于一个领域。
- 商品重叠(Item Overlap)。在源领域和目标领域之间存在部分公共的商品,用符号可表示为 I S T ≠ ∅ I_{ST} \neq\emptyset IST̸=∅,这些商品被来自两个领域的不同用户评过分。
- 用户重叠和商品重叠(Full Overlap)。在源领域和目标领域之间既存在部分公共的用户,也存在部分公共的商品,用符号可表示为 U S T ≠ ∅ U_{ST}\neq\emptyset UST̸=∅ 且 I S T ≠ ∅ I_{ST}\neq\emptyset IST̸=∅。
- 无重叠(No Overlap)。在源领域和目标领域之间既不存在公共的用户,也不存在公共的商品,用符号可表示为 U S T = ∅ U_{ST}=\emptyset UST=∅ 且 I S T = ∅ I_{ST}=\emptyset IST=∅。
符号 | 描述 |
---|---|
S S S | 源领域 |
T T T | 目标领域 |
U S U_S US | 源领域中用户的集合 |
U T U_T UT | 目标领域中用户的集合 |
I S I_S IS | 源领域中商品的集合 |
I T I_T IT | 目标领域中商品的集合 |
R S R_S RS | 源领域中用户-商品评分矩阵 |
R T R_T RT | 目标领域中用户-商品评分矩阵 |
U S T U_{ST} UST | 源领域和目标领域的共同用户的集合 |
I S T I_{ST} IST | 源领域和目标领域的共同商品的集合 |
T r u u , v T_{ru_{u,v}} Truu,v | 源领域的用户 u u u 对目标领域的用户 v v v 的信任关系 |
R ^ u , i \hat{R}_{u,i} R^u,i | 用户 u u u 对商品 i i i 的预测评分 |
- 通常,任何基于协同过滤的推荐方法都能被应用到前三种场景中去解决交叉领域的推荐问题。对于这三类推荐场景,通过合并两个领域的评分到一个统一的数据集中,这些场景中的交叉领域问题可以转化为单领域内的推荐问题。然而,在第四种交叉领域的场景中,由于在两个领域之间没有任何公共的用户也没有任何公共的商品,该场景下的交叉领域推荐难以进行。参照前三种场景的情况,通过存在的交叉领域的用户或者商品之间的关联,并结合现有的推荐技术,可实现第四种场景下的交叉领域推荐,解决数据稀疏性问题和冷启动问题。因此,在该场景下的研究问题主要包含两点:
(1)如何准确地构建交叉领域的用户或商品之间的关联;
(2)如何结合现有的推荐技术建立更好的推荐模型和方法,改进推荐的效果。
TUCross 推荐方法
为了克服单领域推荐面临的数据稀疏性问题和冷启动问题,针对没有任何公共用户和公共商品的两个领域的场景,有人提出一种新的推荐方法 TUCross,其基本思想是通过交叉领域的用户之间的信任关系预测并补全源领域用户对目标领域商品的评分,进而分析交叉领域的商品的关联性,利用交叉领域的商品之间的关联构建两个领域的联接,并融合现有推荐技术,最终实现交叉领域的推荐。
\qquad\qquad
TUCross 方法主要包含两个步骤:
- 粗略的评分预测(TCross,为对比方案)
该步骤通过两个不同领域的用户间的信任关系建立交叉领域之间的关联,然后,利用信任信息和目标领域的评分信息预测源领域的用户对目标领域的商品的评分。尽管该步骤都能够生成预测的评分,但是,由于该阶段并没有充分利用可用的信息如源领域用户的评分信息等,产生的预测评分并不够准确,而且对于没有信任关联的用户无法预测评分。
-
-
单领域的基于信任关系的评分预测过程如下:
R ^ u , i = ∑ u , v ∈ U , i ∈ I ( T u , v × R v , i ) ∑ T u , v \hat{R}_{u,i}=\dfrac{\sum_{u,v\in U,i\in I}(T_{u,v}\times R_{v,i})}{\sum T_{u,v}} R^u,i=∑Tu,v∑u,v∈U,i∈I(Tu,v×Rv,i)
其中,用户 u u u 和用户 v v v 属于同一领域的用户集 U U U, T u , v T_{u,v} Tu,v 表示单领域的用户之间的信任关系。 -
在交叉领域的推荐场景中,来自两个不同领域的用户,如果他们存在信任关系,那么他们的喜好在一定程度上也是相似的。因此,可以将一个源领域用户在目标领域的信任用户作为该用户的邻居或者相似用户,利用这些相似用户的评分数据,计算源领域用户对目标领域商品的评分,得到粗略的评分预测结果。
R ^ u , j = ∑ u ∈ U S , v ∈ U T , j ∈ I T ( T u , v × R v , j ) ∑ T u , v \hat{R}_{u,j}=\dfrac{\sum_{u\in U_S,v\in U_T,j\in I_T}(T_{u,v}\times R_{v,j})}{\sum T_{u,v}} R^u,j=∑Tu,v∑u∈US,v∈UT,j∈IT(Tu,v×Rv,j)
其中, R ^ u , j \hat{R}_{u,j} R^u,j 表示源领域的用户 u u u 对目标领域的商品 j j j 的预测评分, T u , v T_{u,v} Tu,v 表示源领域的用户 u u u 对目标领域的用户 v v v 的信任关系的权重, R v , j R_{v,j} Rv,j 表示目标领域的用户 v v v 对目标领域的商品 j j j 的实际评分。
-
- 精确的评分预测(TUCross)
在精确的评分预测阶段中,基于源领域用户对目标领域商品的粗略的预测评分,结合源领域用户对源领域商品的实际评分,通过关联性分析建立交叉领域的商品之间的关联,并将这些关联应用到协同过滤技术当中,得到源领域用户对目标领域商品的更加精确的评分。
该过程具体包括:
- 商品表示
通过组合源领域用户的历史评分和对目标领域商品的粗略评分,可构造一个统一的基于两个领域的评分矩阵。商品表示阶段通过在这个统一的评分矩阵上进行商品的关联性分析,计算两个领域上的所有商品两两之间的共生程度,并根据阈值判定商品是否关联,最终生成关于所有商品的关联矩阵以及所有商品的向量表示形式。
\qquad\qquad\qquad
基于统计理论中常用的关联表,我们利用卡方检验来计算两两商品间的共生程度。表 2.5显示了关于任意两个商品 i i i 和 j j j 的关联表的一个示例。其中,商品 i i i 和 j j j 被共同评分 F 11 F_{11} F11 次,有 F 12 F_{12} F12 个用户对商品 i i i 进行了评分而没有对商品 j j j 进行评分,有 F 21 F_{21} F21 个用户对商品 j j j 进行了评分而没有对 i i i 进行评分,有 F 22 F_{22} F22 个用户对这两个商品都没有评分。对于前文构造的统一的用户-商品评分矩阵而言,关联表中的用户可以是两个领域中的任意用户。
\qquad\qquad\qquad\quad
下面这条公式显示了
χ
2
\chi^2
χ2 的累积分布函数,该函数用于将实数范围内的
χ
2
\chi^2
χ2 值转化为
0
0
0 到
1
1
1 之间的关联概率
p
p
p。
χ
2
=
(
∣
F
11
F
22
−
F
12
F
21
∣
−
N
2
)
2
R
1
R
2
C
1
C
2
\chi^2=\dfrac{(|F_{11}F_{22}-F_{12}F_{21}|-\frac N2)^2}{R_1R_2C_1C_2}
χ2=R1R2C1C2(∣F11F22−F12F21∣−2N)2
其中,
R
1
=
F
11
+
F
12
R_1=F_{11}+F_{12}
R1=F11+F12,
R
2
=
F
21
+
F
22
R_2=F_{21}+F_{22}
R2=F21+F22,
C
1
=
F
11
+
F
21
C_1=F_{11}+F_{21}
C1=F11+F21,
C
2
=
F
12
+
F
22
C_2=F_{12}+F_{22}
C2=F12+F22,
N
=
C
1
+
C
2
=
R
1
+
R
2
N=C_1+C_2=R_1+R_2
N=C1+C2=R1+R2。
之后,通过给定一个阈值 β \beta β,两个商品能被确定是否存在明显的共生:
-
当 p > = β p>=\beta p>=β 时,两个商品被认定为是明显共生也是关联的
-
当 p < β p<\beta p<β 时,两个商品被认定为不是明显共生也不是关联的
p = F ( x ∣ v ) = ∫ 0 x t v / 2 − 1 ⋅ e − t / 2 2 v / 2 ⋅ Γ ( v / 2 ) d t p=F(x|v)=\int_0^x\displaystyle\dfrac{t^{v/2-1}\cdot e^{-t/2}}{2^{v/2}\cdot \Gamma(v/2)}dt p=F(x∣v)=∫0x2v/2⋅Γ(v/2)tv/2−1⋅e−t/2dt
其中, v v v 是关联表对应的自由度,对于只有两个属性的关联表,它的值为1。 Γ ( ⋅ ) \Gamma(\cdot) Γ(⋅) 是伽马函数, x x x 是计算得到的 χ 2 \chi^2 χ2 卡方值。 -
商品相似度计算
基于得到的商品-商品关联矩阵,通过度量商品向量间夹角的余弦相似度,计算两商品之间的相似度,如下:
s i m i , j = V i ⋅ V j ∣ V i ∣ ⋅ ∣ V j ∣ sim_{i,j}=\dfrac{V_i\cdot V_j}{|V_i|\cdot |V_j|} simi,j=∣Vi∣⋅∣Vj∣Vi⋅Vj
其中, V i V_i Vi 和 V j V_j Vj 是商品 i i i 和 j j j 的商品向量,这两个商品分别属于源领域商品集 I S I_S IS 和目标领域商品集 I T I_T IT,余弦相似度的取值在 0 0 0 到 1 1 1 之间。 -
评分预测
通过以下公式,我们预测源领域的用户 u u u 对目标领域的商品 j j j 的评分。
R ^ u , j = ∑ ( s i m i , j × R u , i ) ∑ s i m i , j \hat{R}_{u,j}=\dfrac{\sum(sim_{i,j}\times R_{u,i})}{\sum sim_{i,j}} R^u,j=∑simi,j∑(simi,j×Ru,i)
其中,用户 u u u 属于源领域用户集 U S U_S US,商品 i i i 属于源领域商品集 I S I_S IS,商品 j j j 属于目标领域商品集 I T I_T IT。
可采用数据集
Ciao 数据集
数据要求:
- 用户对各种各样的商品如电影、音乐、书籍、汽车等进行评论并进行打分,评分为 1 1 1~ 5 5 5
- 用户 A A A 对用户 B B B 是否信任,值为 0 0 0 或 1 1 1
- 在Ciao数据集中,商品评分数最多的5个类别为:DVDs、Beauty、Books、Travel、CiaoCafe(其中单个领域的评分稀疏度都很高,达到99%以上)