• 1
  • 2
  • 3
  • 4
  • 5
  • 6

LFM、Tensorflow、矩阵分解基础知识自学笔记

LFM算法是属于隐含语义模型的算法,不同于基于邻域的推荐算法。

在音乐推荐系统里,把用户在item上打分的行为,看作是有内部依据的,认为和k个factor有关系。每一个user_i会有一个用户的向量(k维),每一个item会有一个item的向量(k维)。

 

TensorFlow是一个开源软件库,用于各种感知和语言理解任务的机器学习。

TensorFlow 的底层核心引擎由 C++实现,通过 gRPC 实现网络互访、分布式执行。虽然它的 Python/C++/Java API 共享了大部分执行代码,但是有关于反向传播梯度计算的部分需要在不同语言单独实现。当前只有 Python API 较为丰富的实现了反向传播部分。所以大多数人使用 Python 进行模型训练,但是可以选择使用其它语言进行线上推理。

 

矩阵分解属于协同过滤技术,而推荐系统中最为主流与经典的技术之一是协同过滤技术。

对于推荐系统来说存在两大场景即评分预测(rating prediction)与Top-N推荐(item recommendation,item ranking)。评分预测场景主要用于评价网站,比如用户给自己看过的电影评多少分(MovieLens),或者用户给自己看过的书籍评价多少分(Douban)。其中矩阵分解技术主要应用于该场景。

对于评分预测任务来说,我们通常将用户和项目(以电影为例)表示为二维矩阵的形式,其中矩阵中的某个元素表示对应用户对于相应项目的评分,1-5分表示喜欢的程度逐渐增加,?表示没有过评分记录。推荐系统评分预测任务可看做是一个矩阵补全(Matrix Completion)的任务,即基于矩阵中已有的数据(observed data)来填补矩阵中没有产生过记录的元素(unobserved data)。值得注意的是,这个矩阵是非常稀疏的(Sparse),稀疏度一般能达到90%以上,因此如何根据极少的观测数据来较准确的预测未观测数据一直以来都是推荐系统领域的关键问题。

重点:推荐系统的评分预测场景可看做是一个矩阵补全的游戏,矩阵补全是推荐系统的任务,矩阵分解是其达到目的的手段。因此,矩阵分解是为了更好的完成矩阵补全任务(欲其补全,先其分解之)。之所以可以利用矩阵分解来完成矩阵补全的操作,那是因为基于这样的假设:假设UI矩阵是低秩的,即在大千世界中,总会存在相似的人或物,即物以类聚,人以群分,然后我们可以利用两个小矩阵相乘来还原它。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注