如果知道SVD的空间几何意义,理解投影过程就很简单:原来的用户的评分向量(1xn)是在V空间中(n维),将其与Vk矩阵相乘就知道这个用户向量的坐标,然后根据S进行坐标缩放(同时截取前k个值即可),获得的坐标就是用户的评分向量在U空间中的坐标了。
用数学表达的话,设用户向量是,投影到U空间后的向量为P,则有:
然后就可以计算这个用户(用P向量)与其他用户(的各行向量)之间的相似度了。
大量的实验表明,计算相似度的话还是使用欧式距离比较有效。上面的算法瓶颈是如何在“茫茫人海”中找到最相似的那个User。