@M1saki
2017-12-14T19:47:17.000000Z
字数 1811
阅读 1426
软工实践
PM:准备先采用最朴素的做法,去构造 文章-标签 的 0-1矩阵,以及 用户-文章 的评分矩阵,然后用余弦计算喜好程度。
感觉又迷了路。。。
先照这个做法的话,分成4块
for all articles j = 1 to M
for all features k = 1 to N
if (articles[j] 拥有 features[k] 属性)
MA_{j}[k] = 1;
else
MA_{j}[k] = 0;
对于某一个用户 :
计算 所有评分的均值:
计算用户 对 的喜好程度
计算 和 的相似度
对于用户 ,遍历整个文章集,计算 和每个文章的相似度,选择相似度最高的前若干个文章,推荐给用户
首先是看了学长的建议
如果利用相似推荐的话,那就是对用户特征进行相似分析。比如A与B喜欢的文章里有80%是重合的(重合可以定义为两篇文章相似度阈值超过某个值,而非完全一致),那么可以把A看过但B没有看过的文章推荐给B。当然,在对相似分析的时候也可以采用另外的方法:就像文章中说的,将用户对不同文章的打分拼接为一个向量,利用余弦相似性分析两个用户的相似程度。
也可以直接从文章相似度角度进行分析,比如A看过了一篇文章,觉得它很不错,那么利用余弦相似性的衡量方式,寻找3篇与该文章类似的文章推荐给用户,在这个推荐的过程中也可以加入一些随机变量影响的因素,模仿基因突变的过程,以拓宽用户的兴趣种类。
现在也有用词向量和LSTM模型对文章构造特征向量的,随便Google可以得到一大把,以上供参考。
目前的思路应该是更偏向于文章相似度的角度
参考着去搜了词向量和LSTM模型的相关内容
首先是LSTM模型,参考了理解 LSTM 网络,一路下来半知不解,似乎应用到stardust不是很可能
再是词向量,参考了知乎-词向量( Distributed Representation)工作原理是什么?和基于词向量特征的文本分类模型研究,感觉和神经网络扯上边似乎现在使用不是很实际。但是在阅读过程中看到TF-IDF算法,好奇去了解了一下
基于内容的推荐这篇文章中介绍的TF-IDF和Rocchio算法似乎可以代入到我们的文章推荐中(?)。基于文中【Item Representation】下对于文章和词典的说明,得到某个词在某篇文章中的权重。根据Rocchio算法,维护用户的profile。现在得到的是,文章用n维的向量表示,用户的profile用n维的向量表示,那么可以考虑余弦相似性的方式,(扫一遍所有文章?)得到与用户属性最相关的k个文章作为推荐返回给用户