Page 406 - 《软件学报》2024年第6期
P. 406
2982 软件学报 2024 年第 35 卷第 6 期
部过小 (或过大), 哪怕近段周期内存在 (或不存在) 对该种项目产生新的行为, 也会演算出较小 (或较大) 的兴趣量.
因此, 下面对该兴趣量的演算方式进行优化.
12
11 f
10
9
8 g
7
6
5 兴趣指数变化趋势
4 b
3 d e
2
1 a
0
−1
−2
−3 c
−4
并且最终计算出用户对每个项目类型的兴趣量. 具体过程见算法
重组 重组 重组
行为记忆序列重组
图 4 兴趣浮点模型
3.3.2 兴趣量演算优化
我们引入双曲正切 Sigmoid 函数对兴趣量进行优化. 该函数在数据工程里面, 通常被用作归一化处理, 以减小
某些离散值对整体数据分布的影响. 为更好地模拟用户的行为变化规律, 并充分利用 Sigmoid 函数的分布特点, 将
第 3.3.1 节提出的兴趣指数变化转变为 Sigmoid 函数中横坐标值 (x 值) 的变化, 而兴趣量变化则转变成纵坐标值
(y 值) 的变化. 先要设置合理且有效的 TPN, 对兴趣指数进行累计演算, 然后代入 Sigmoid 函数, 求解出的值作为当
前周期中的目标项目兴趣量因子, 这样就有效地规避了局部数值过大的风险.
参考 Sigmoid 函数曲线可知, 函数的曲率变化及曲线两端的近似值, 对解析兴趣量因子有很大影响. 因此, 为
使兴趣量因子能呈现出更好且更合理的变化趋势, 并限定在一个可控的范围内, 我们将 Sigmoid 函数进行一定的
优化 (将函数分别进行横向、纵向对称拉伸), 如公式 (10) 所示:
Sigmoid(x) = (z−ze −2µx )/(1+e −2µx ) (10)
通过这种优化, 可将解控制在 (−z, z) 区间 (z 是兴趣量饱和值), 通过控制变量 µ 的值即可调节曲线斜率, 这样
更能体现用户对项目的兴趣变化规律. 为更好地模拟兴趣量因子变化, 设定几点兴趣量因子解析规则.
1) 有效切分指数从第一次出现用户对该项目产生行为开始计数, 逐个切分周期递进, 有行为则加一个单位, 否
则减一个单位.
2) 若兴趣量达到饱和时, 则其不再发生变化 (或变化可忽略不计), 故需预先设置有效的饱和值.
3) 若用户对新项目产生行为, 则兴趣指数从 0 开始计数; 若用户对旧项目再一次产生行为, 则兴趣指数在原来
的数值上继续计数.
综上兴趣量因子解析过程, 可准确且显式地表示出用户对每个项目类型在其历史行为中的兴趣量变化情况,
2.
算法 2. 兴趣量因子解析.
i
输入: 用户所有的行为记忆 B , 有效饱和值 z (正数);
u
ϕ .
输出: 用户对应项目类型的兴趣量集
Begin
ϕ = ∅ /* 初始化兴趣量集*/
1.