最近接到一个大四学长的毕业设计,他准备做一个推荐商品的模型。使用的数据集时Amazon商品评论数据集。
接到需求时,客户是要求基于评论做推荐,因为之前有做过NLP相关的项目,也看过一些推荐系统的介绍,就爽快的答应了。
首先经过调研,推荐系统分为两种:基于项目(商品)和基于用户 =====引申出还有基于两者混合的
按照我的理解:
基于用户的推荐系统就是,查找相似的用户,看相似的用户买了些什么,然后推荐给对象。
基于项目的推荐系统就是,查找相似的商品,找到相似(排序)的商品,然后推荐给对象。
对于这个数据集我看到github上有很多人把两者都分别实现了一次。深入了解后,我觉得两者各有利弊。所以我在想,如果不是特别复杂,就做一个混合的。
初步构思
1.首先将各个商品的相似的计算出来,得到每个商品与商品之间相似度,然后排序,得出每个商品与其最相似的N个商品
2.计算对应用户评论与该商品下其他用户评论的相似度,然后得出最相近的n个人的nn个商品。
3.模型接受(商品id,用户评论),然后将1、2步得出的商品加权排序,得出推荐列表
ps1.商品相似度由评论来计算(这里是根据主题词来计算还是余弦相似度计算,待考虑)
ps2.客户要求使用Pytorch来做,所以我准备使用Bert做词嵌入(相似度的计算就使用余弦相似度吧)
施工ing