
数据科学正在成为任何营销活动的组成部分,而这本书是营销数字化转型的生动写照。 数据分析和智能算法可自动执行耗时的营销任务。 决策过程不仅变得越来越完美,而且变得越来越快,这在不断加速的竞争环境中至关重要。
“这本书是行销中数字化转型的生动写照。 它显示了数据科学如何成为任何营销活动的组成部分。 它详细描述了基于数据分析和智能算法的方法如何有助于传统上劳动密集型营销任务的深度自动化。 决策过程不仅变得越来越先进,而且变得越来越快,这对于我们不断加速的竞争环境至关重要。 这本书必须由数据处理专家和市场营销专家阅读,最好是他们在一起阅读。” Yandex战略营销总监Andrey Sebrant。
摘录。 5.8.3。 隐藏因素模型
在到目前为止讨论的联合过滤算法中,大多数计算是基于评级矩阵的各个元素。 基于接近度的方法直接从评分矩阵中的已知值评估缺失的评分。 基于模型的方法在评分矩阵的顶部添加了一个抽象层,创建了一个预测模型,该模型捕获了用户和元素之间的某些关系模式,但是模型训练仍然在很大程度上取决于评分矩阵的属性。 结果,这些协作式过滤技术通常面临以下问题:
评分矩阵可以包含数百万个用户,数百万个元素和数十亿个已知评分,这会产生严重的计算复杂性和可伸缩性问题。
评分矩阵通常非常稀疏(实际上,可能缺少约99%的评分)。 当用户或元素没有真正相似的邻居时,这会影响推荐算法的计算稳定性,并导致不可靠的估计。 大多数基本算法要么面向用户,要么面向元素,这限制了它们记录评分矩阵中可用的所有类型相似性和关系的能力,这常常使这一问题更加恶化。
由于用户和元素之间的相似性,评分矩阵中的数据通常具有很强的相关性。 这意味着评级矩阵中可用的信号不仅稀疏,而且冗余,这加剧了可伸缩性问题。
以上考虑表明,原始评级矩阵可能不是信号的最佳表示,应考虑更适合联合滤波的其他替代表示。 为了探索这个想法,让我们回到起点,对推荐服务的性质进行一些思考。 实际上,推荐服务可以被视为一种基于用户和元素之间相似度的度量来预测评分的算法:
确定这种相似性度量的一种方法是使用隐藏因子方法,并将用户和元素映射到某个k维空间中的点,以便每个用户和每个元素由k维向量表示:
必须构造矢量,以使相应的尺寸p和q彼此可比。 换句话说,每个维度都可以视为符号或概念,即puj是用户u和概念j的接近程度的度量,而qij分别是元素i和概念j的度量。 实际上,这些尺寸通常被解释为同时适用于用户和元素的体裁,样式和其他属性。 用户和元素之间的相似性以及相应的等级可以定义为相应向量的乘积:
由于每个等级可以分解为属于概念空间的两个向量的乘积,而两个向量在原始等级矩阵中没有直接观察到,因此p和q称为隐藏因子。 当然,这种抽象方法的成功完全取决于如何确定和构造隐藏因素。 为了回答这个问题,我们注意到可以将表达式5.92重写为如下矩阵形式:
其中P是从向量p组装而成的n×k矩阵,Q是从向量q组装而成的m×k矩阵,如图2所示。 5.13。 联合过滤系统的主要目标通常是使等级的预测误差最小,这使您可以直接确定与隐藏因素矩阵有关的优化问题:
假设隐藏维数k是固定的,并且k≤n和k≤m,则优化问题5.94简化为我们在第2章中考虑的低阶逼近问题。为演示该解决方案的方法,让我们暂时假设额定矩阵是完整的。 在这种情况下,优化问题可以通过评级矩阵的奇异值分解(SVD)来解析。 特别是,使用标准SVD算法,可以将矩阵分解为三个矩阵的乘积:
其中U是按列正交化的n×n矩阵,Σ是n×m对角矩阵,而V是按列正交化的m×m矩阵。 根据以下因素,可以得出问题5.94的最佳解决方案,将其截断为k个最重要的维度:
因此,可以通过奇异分解获得在预测精度方面最佳的隐藏因子,如下所示:
这种基于SVD的隐藏因子模型有助于解决本节开头描述的协同过滤问题。 首先,它用n×k和m×k因子矩阵替换了较大的n×m评级矩阵,后者通常要小得多,因为在实践中,隐藏维数k的最佳数量通常很小。 例如,在某些情况下,使用40个测量值可以很好地近似具有500,000个用户和17,000个元素的评分矩阵[Funk,2016]。 此外,SVD消除了评级矩阵中的相关性:5.97定义的潜在因子矩阵在列中是正交的,即隐藏维不相关。 如果在实践中通常是对的,那么SVD还可以解决稀疏问题,因为原始评分矩阵中存在的信号被有效地集中了(记得我们选择了具有最高信号能量的k维),并且隐藏因子的矩阵并不稀疏。 图5.14说明了此属性。 基于用户的接近度算法(5.14,a)折叠给定元素和给定用户的稀疏评级向量,以获得评级得分。 相反,隐藏因子模型(5.14,b)通过对两个维数较小且能量密度较高的向量进行卷积来估计等级。
刚刚描述的方法看起来像是隐藏因素问题的一致解决方案,但是实际上,由于假设评级矩阵是完整的,因此它具有严重的缺点。 如果评级矩阵是稀疏的(几乎总是这样),则标准SVD算法无法直接应用,因为它无法处理丢失(未定义)的元素。 在这种情况下,最简单的解决方案是使用一些默认值填充缺失的等级,但这会导致预测出现严重偏差。 另外,由于这种解决方案的计算复杂度等于整个n×m矩阵的SVD复杂度,因此计算效率低下,同时希望有一种方法的复杂度与已知等级的数量成正比。 这些问题可以使用以下各节中描述的替代分解方法来解决。
5.8.3.1。 无限分解
标准SVD算法是低阶逼近问题的解析解决方案。 但是,可以将此问题视为优化问题,并且也可以将通用优化方法应用于该问题。 最简单的方法之一是使用梯度下降法来迭代地精化隐藏因子的值。 起点是将成本函数J定义为剩余预测误差:
请注意,这一次我们不对隐藏因素矩阵施加任何限制,例如正交性。 计算成本函数相对于隐藏因素的梯度,我们得到以下结果:
其中E是残留误差矩阵:
梯度下降算法通过在梯度的负方向上每步移动来最小化成本函数。 因此,您可以根据以下表达式找到通过迭代地改变矩阵P和Q以收敛来最小化评级预测平方误差的隐藏因素:
其中α是学习速度。 梯度下降法的缺点是需要计算残留误差的整个矩阵,并在每次迭代中同时更改隐藏因子的所有值。 一种可能更适合于大型矩阵的替代方法是随机梯度下降[Funk,2016]。 随机梯度下降算法利用这样一个事实,即总预测误差J是评级矩阵各个元素的误差之和;因此,一般梯度J可以由一个数据点处的梯度近似,并且隐藏因子可以逐元素更改。 算法5.1中显示了此想法的完整实现。
该算法的第一阶段是隐藏因子矩阵的初始化。 这些初始值的选择不是很重要,但是在这种情况下,选择随机生成的隐藏因子之间已知等级能量的均匀分布。 然后,算法依次优化概念的维度。 对于每次测量,它会反复遍历训练集中的所有评分,使用隐藏因子的当前值预测每个评分,估计误差并根据表达式5.101校正因子的值。 当满足收敛条件时,将完成测量优化,此后算法将进行下一次测量。
算法5.1有助于克服标准SVD方法的局限性。 它通过循环遍历各个数据点来优化隐藏因素,从而避免因缺少评分而出现问题以及使用大型矩阵进行代数运算的问题。 与梯度下降相比,迭代方法还使随机梯度下降在实际应用中更为方便,后者使用表达式5.101修改了整个矩阵。
示例5.6
实际上,基于隐藏因素的方法是一整套教学表示方法,可以识别隐含在评分矩阵中的模式,并以概念的形式明确表示它们。 有时,概念具有完全有意义的解释,尤其是高能量的解释,尽管这并不意味着所有概念总是具有有意义的含义。 例如,将矩阵分解算法应用于电影收视率数据库可创建近似对应于心理维度的因素,例如情节剧,喜剧,恐怖等。让我们用一个使用Table的收视率矩阵的小数值示例来说明这种现象。 5.3:
首先,从所有元素中减去全局平均值μ= 2.82以使矩阵居中,然后执行算法5.1,其中k = 3次隐藏测量,学习率α= 0.01,以获得以下两个因子矩阵:
这些矩阵中的每一行都对应于用户或电影,图12中显示了所有12行矢量。 5.15。 请注意,第一列(概念的第一向量)中的元素具有最大值,随后各列中的值逐渐减小。 这可以通过以下事实来解释:第一个概念向量捕获的信号能量尽可能多地使用一次测量就可以捕获,第二个概念向量仅捕获部分剩余能量,依此类推。此外,请注意,第一个概念可以在语义上解释为戏剧轴-动作电影,其中正向对应于动作电影类型,而负向对应于戏剧类型。 此示例中的收视率高度相关,因此可以清楚地看到,前三个用户和前三个电影在第一个矢量概念(戏剧电影和喜欢此类电影的用户)中具有较大的负值,而后三个用户和后三个电影在同一列(动作电影和喜欢这种类型的用户)具有积极意义。 在这种特殊情况下,第二维主要对应于用户或元素的偏见,这可以解释为心理属性(用户判断的严格程度或电影受欢迎程度)。 其他概念也可以视为噪音。
所得的因子矩阵在列中并不完全正交,而是趋于正交,因为这源于SVD解决方案的最优性。 通过查看与对角矩阵接近的PTP和QTQ的乘积可以看出:
矩阵5.103本质上是一种预测模型,可用于评估已知评级和缺失评级。 可以通过将两个因素相乘并加总平均值来获得估算值:
结果将根据直观的期望准确地再现已知的并预测丢失的等级。 可以通过更改测量次数来增加或减少估计的准确性,并且可以在实践中通过交叉检查并在计算复杂度和准确性之间选择合理的折衷来确定最佳测量数。
»这本书的更多信息可以
在出版商的网站上找到»
目录»
摘录小贩优惠券可享受25%的折扣-
机器学习支付纸质版本的书后,就会通过电子邮件发送电子书。