From dbb95ecad3aaf98d78dcce342bf40000aadabc77 Mon Sep 17 00:00:00 2001 From: koala Date: Sun, 11 Feb 2018 16:32:11 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=85=AC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\346\216\250\350\215\220/ALS.md" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/\346\216\250\350\215\220/ALS.md" "b/\346\216\250\350\215\220/ALS.md" index 582f4b7..cd12346 100644 --- "a/\346\216\250\350\215\220/ALS.md" +++ "b/\346\216\250\350\215\220/ALS.md" @@ -74,7 +74,7 @@   我们的目的是找到用户向量`ui`以及商品向量`vj`来表明用户偏好。这些向量分别是用户因素(特征)向量和商品因素(特征)向量。本质上,这些向量将用户和商品映射到一个公用的隐式因素空间,从而使它们可以直接比较。这和用于显式数据集的矩阵分解技术类似,但是包含两点不一样的地方: (1)我们需要考虑不同的信任度,(2)最优化需要考虑所有可能的`u,v`对,而不仅仅是和观察数据相关的`u,v`对。显性反馈的矩阵分解优化时,对于`missing data`(没有评分),是不会当做训练数据输入到模型的,优化时针对已知评分数据优化。而这里隐性反馈,是利用所有可能的`u`,`i`键值对,所以总的数据是`m*n`,其中`m`是用户数量,`n`是物品数量。这里没有所谓的`missing data`,因为假如`u`对`i`没有任何动作,我们就认为偏好值为0,只不过置信度较低而已。因此,通过最小化下面的损失函数来计算相关因素(`factors`)。 -$min_{u,v}\sum _{i,j}c_{ij}(p_{ij}-u_{i}^{T}v_{j})^{2} + \lambda (\sum_{i}\left \| u_{i} \right \|^{2} + \sum_{j}\left \| v_{j} \right \|^{2})$ +$$min_{u,v}\sum _{i,j}c_{ij}(p_{ij}-u_{i}^{T}v_{j})^{2} + \lambda (\sum_{i}\left \| u_{i} \right \|^{2} + \sum_{j}\left \|v_{j} \right \|^{2})$$ ### 2.4 求解最小化损失函数