Page 408 - 《软件学报》2024年第6期
P. 408
2984 软件学报 2024 年第 35 卷第 6 期
内的所有项目作为一个嵌入层, 该嵌入层聚合了用户-项目的交互信息来进一步细化用户 (或项目) 的嵌入. 每增加
一个嵌入传播层, 就能包含更多用户 (或项目) 的交互信息, 且用户 (或项目) 的嵌入表示均由上一个传播层细化得
到. 因此, 在传播过程中, 更容易挖掘到更高阶用户-项目交互信息, 或者增强用户-项目间的协作信号.
i 1
i 10
i 2 i 8
i 9
c 1 c 3
i 3 i 12 i 11
u 1
i 4 u 3
u 6
u 2
i 5
i 7
u 3 i 6 c 2 u 2 i 5 i 6 c 2
u 5
i 7
u 4
i 8 u 1
u 4
u 5
i 9 i 2 i 4
i 3
u 6 i 10 c 3 i 1 c 1
i 11
i 12 2 阶
1 阶 3 阶
用户项目交互关系 用户-类型-项目三元图结构
图 5 用户项目交互关系及用户类型-项目三元图结构
µ =
例 5: 叠加 1 层 (初始嵌入层) 捕获 u 1 ←i 1 ←u 2 , u 1 ←i 1 ←u 3 的 1 阶行为相似性; 叠加 2 层捕获 u 1 ←i 5 ←u 4 的 1 阶
行为相似性, u 1 ←i 1 ←u 2 ←i 7 ←u 5 的 2 阶行为相似性, 及 u 1 ←i 1 ←u 2 ←i 7 , u 1 ←i 5 ←u 4 ←i 6 的 1 阶潜在推荐; 叠加 3 层捕
获 u 1 ←i 1 ←u 3 ←i 9 , u 1 ←i 1 ←u 3 ←i 1 的 2 1 阶潜在推荐, u 1 ←i 1 ←u 2 ←i 7 ←u 5 ←i 1 的 1 2 阶潜在推荐, u 1 ←i 1 ←u 2 ←
i 7 ←u 5 ←i 11 ←u 6 的 3 阶行为相似性, 及 u 1 ←i 1 ←u 2 ←i 7 ←u 5 ←i 11 ←u 6 ←i 8 , u 2 ←i 7 ←u 5 ←i 11 ←u 6 ←i 1 的 0 3 阶潜在推荐.
信息流的强度 (由层间可训练权重估计) 决定了项目的推荐优先级. 模型 LG_APIF 将嵌入层以用户兴趣项目
类型 c (即用户的兴趣类型) 为界, 需清楚嵌入层间的联系与权重 (即兴趣项目类型及相应的权重).
自适应周期和兴趣量因子的特征求解完成后, 用公式 (2) 求得用户对所有项目类型的兴趣度, 再将用户对每
类项目的兴趣度与所有项目类型的兴趣度相比, 即用 f A (用户对项目类型 A 的兴趣度) 除以 f All (用户对所有项目
类型的兴趣度), 便可得到推荐比例, 记为 w. 项目类型 A 在此次兴趣中的占比 w A 的计算方式, 如公式 (11) 所示:
( b ) ( b )
20e ∑ N 20e
w A = f A /f All = ×φ A / ×φ i (11)
(λT A +t 0 ) c i=1 (λT A +t 0 ) c
在实验中可发现, 用户的潜在项目兴趣类型集中所包含的潜在项目的数量依然很大, 且不同类型的项目间极
可能存在相近的兴趣度. 为对用户近期行为做出及时反馈, 将最近一个周期内浏览过的项目类型权重加大, 这也符
合用户的浏览习惯, 同时不易丢失一些潜在兴趣. 得到对应项目类型 A 的权重计算方式, 如公式 (12) 所示:
( )
∑ M
′
w = µ 1+c A / c I ×w A (12)
A
I
其中, µ 为用户意图系数, M 为一个周期内用户浏览项目的类型数, c I 为对应项目类型 I 中项目的浏览次数.
由公式 (12) 可知, 用户意图系数 µ 表示最近周期内的浏览行为对未来行为的影响权重. 比如, 目的性强的用户
一般很明确自己的意图, 浏览的项目类型稀疏性相对较小; 目的性弱的用户则不明确自己的意图, 浏览的项目类型
稀疏性相对较大. 为此, 用户意图系数 µ 值定义为最近一个或多个周期内的各类浏览项目数与对应项目类型中项
目总数之比并求和, 如公式 (13) 所示:
N M J
∑ ∑
(c I /M I ) (13)
J I
其中, M J 表示选择距离当前时刻最近 N 个周期内的第 J 个周期的浏览项目类型总数, c I 表示对应周期内用户对项
目类型 I 的浏览次数, M I 表示项目类型 I 中的项目总数.
根据用户的兴趣占比 (见公式 (11)) 及其意图系数 µ (见公式 (13)), 计算每个项目类型的得分, 排序得到多个用
户潜在项目类型, 再据此构建多个嵌入传播层. 接下来具体阐述如何捕获协作信号以进行项目个体推荐.
3.4.2 兴趣项目个体推荐
由文献 [3] 和文献 [4] 的设计思想及其实验可知, 使用 GCN 技术来模拟协同过滤, 并不能简单地、直接地套
用 GCN 框架, 因为其中很多构件对协同过滤任务并不一定有用. 此外, 本文构建的用户-类型-项目三元图结构中