简单的内容关联算法
算法的基本原理是将一个item的基本属性、内容、一级/二级类别标签等信息提取出来,抽成一个taglist,为每个tag赋一个权重。将所有item对应的taglist做一下倒排转换,放到倒排索引服务器中存储起来。当需要对某一个item做相关推荐的时候,将该item对应的taglist拿出来拼成一个类似搜索系统中的query表达式,再将召回的结果做一下排序作为推荐结果输出。当需要对某个用户做个性化推荐的时候,将该用户最近喜欢/点击/操作过的item列表拿出来,将这些item的taglist取出来merge一下作为用户模型,然后将用户模型的taglist请求倒排索引服务,将召回的结果经过过滤、粗排、精排等模块后作为候选推荐给该用户。
基于内容的推荐算法
更系统、更一般地,CB的过程一般包括以下三步:
- Item Representation:为每个item抽取一系列特征来表示此item;
- Profile Learning:利用一个用户过去喜欢/不喜欢的item的特征数据,学习出此用户的偏好模型(profile);
- Recommendation Generation:通过比较/模型学习前面得到的用户profile与候选item的特征,为此用户推荐一组相关性最大
的item。
以上三个步骤可以用下面的流程图来表示,第一步对应着Content Analyzer,第二步对应着Profile Learner,第三步对应着Filtering
Component:
对于个性化阅读来说,一个item就是一篇新闻/文章。根据上面的第一步,我们首先要从文章内容中提取出代表该文章的属性/特征,常用的方法主要有Bag Of Words、TF-IDF、LSA、LDA、Word / Document Embedding 等。利用上面的方法,一篇抽象的文章就可以使用具体的一个数值向量来表示了。第二步就是根据用户过去喜欢/不喜欢的文章来产生刻画此用户喜好的profile