[关闭]
@M1saki 2017-12-15T15:27:58.000000Z 字数 1706 阅读 1807

推荐算法

软工实践



version 1.1

算法修改

现在的思路是:

xp的意思是想要仅保存用户点击第一篇文章的特征,然后之后就都以这篇文章为标杆去推荐,而不去做不停的维护了

第一次,就是随机推送,然后以后每次用户看完第一篇,将第一篇id返回 存在数据库中,第二天的时候,就根据这篇文章进行推送…

学长的建议:

用户文章的评分矩阵的存储确实是个问题,这一点可以考虑NoSQL的数据库,存储一个用户ID-评分矩阵的键值对,利用JSON做序列化的工作。

当然,其实也不必要非得存一个用户对600篇文章的,值的部分可以存成(Index,Float)列表形式,只有在比较两个用户相似度的时候才拼接成完整向量,平时存储都是稀疏存储。

稀疏存储的思路感觉挺棒的,但是实现上可能会有点困难,暂时按现在的思路实现。


Version 1.0

算法概要

PM:准备先采用最朴素的做法,去构造 文章-标签 的 0-1矩阵,以及 用户-文章 的评分矩阵,然后用余弦计算喜好程度。

先照这个做法的话,分成4块

  1. 构造 文章-标签 的 0-1 矩阵
  2. 构造 用户-文章 评分矩阵
  3. 计算相似度(余弦相似性)
  4. 推荐

变量说明

预处理 文章特征01矩阵

  1. for all articles j = 1 to M
  2. for all features k = 1 to N
  3. if (articles[j] 拥有 features[k] 属性)
  4. MA_{j}[k] = 1;
  5. else
  6. MA_{j}[k] = 0;


构造 用户-文章评分矩阵

计算相似度

对于某一个用户

推荐

对于用户 ,遍历整个文章集,计算 和每个文章的相似度(推荐度),选择相似度最高的前若干个文章,推荐给用户


算法说明

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注