首页 > 代码库 > 个性化推荐中的用户兴趣建模浅析

个性化推荐中的用户兴趣建模浅析

http://in.sdo.com/?p=1386

引言

在互联网上,信息的数量越来越大。用户可以选择的面也越来越广,推荐系统的任务是,要从众多的资讯中,过滤并挑选出符合每个用户口味的内容,推荐给不同用户。在这个过程中,对用户兴趣的刻画、建模是最为重要的一环。

 

传统的用户兴趣刻画,大多集中于用户基本属性上,例如性别、年龄、职业、收入等,这样提取的用户属性,对用户兴趣的刻画并不够直接,对推荐系统来说,更需要一类直接面向待推荐内容的用户兴趣描述方法,并能方便的应用于个性化推荐系统,进行精准的个性化推荐。本文就此简单做些介绍,注意实际运用时会因地制宜进行更深入的改进。(文/陈运文)

 

符号标记方法(Notation)

本文中,约定 user代表用户,item代表被推荐对象,log代表用户点击的历史,tag代表标签(标签由一个或多个词汇构成,例如 范冰冰、曲棍球、美国职业篮球联赛等);category代表分类(例如 体育、娱乐、军事等);

 

实现步骤

1 用户点击行为的日志记录

2 基于点击行为,对用户兴趣进行建模,分为三部分进行挖掘,也是本专利的核心内容

3 基于上节生成的用户兴趣模型,进行个性化推荐

4 用户接收到个性化推荐结果后,点击反馈行为将被回收并记录到用户点击行为日志中,用户下一次循环时更新兴趣模型

点击行为记录

点击行为是后续的用户兴趣建模的数据基础。以系统日志的方式进行存储,记录有userid,itemid,时间,点击行为等

 

用户兴趣建模过程

用户兴趣建模从日志中提取近一段时间的用户点击行为后,对该用户点击的item(对象)进行一下的分析。首先从标签系统说起,因为标签(tag)是对item的一种灵活描述方法。(如下图是图书标签示例)

 

假定用户日志中,有N个item,分别为item1,item2…, itemN, 每个item携带若干个标签,如item1的标签为:tag1_1, tag1_2, tag1_3…

 

同样的,我们可以通过item所属的类别(category)来对用户进行建模刻画,例如采用贝叶斯(Bayers)的统计思想进行计算:

公式中,p(click)表示用户点击的概率,计算方法为: 用户点击的总数/用户被推荐的结果总数;P(category_i|click)表示类别category_i被点击的条件概率,计算方法为:属于该category_i的item被点击的数量/用户所有点击的item数量

 

 

与该用户的兴趣相似的其他用户,也可以作为用户兴趣建模的一部分。因为这些用户阅读的内容,也可以作为结果推荐给该用户。因此,用户兴趣建模的第三部分,是挖掘相似兴趣的用户并记录在用户兴趣模型中(user interest profile):

这样能形成User—>User—->Item的推荐过程,将下图中虚线框的部分存储起来,可以构成用户模型的一部分。如果有来自SNS的user间关系,则这里的sim计算可以更复杂一些。

 

用户兴趣建模和推荐过程

此处的个性化推荐从上面挖掘的3个来源来生成结果,分别是:

 

1根据user-tags关系,从item中,挑选其中有感兴趣tag的item,加入推荐列表

2 从用户感兴趣的category中,取出最新的item,加入推荐列表

3 用和用户兴趣相似的user中,取出最新观看的item列表,加入推荐列表

 

以上所有item合并起来,构成candidate item列表,为候选的个性化推荐结果,给用户。用户对这些item的点击情况,将返回到“用户点击日志”系统中,供下一次更新用户兴趣模型时使用。因为用户的兴趣往往是不断变化的,通过这样一套循环系统,能够不断的捕捉用户的兴趣点,让推荐结果保持优质

个性化推荐中的用户兴趣建模浅析