发明内容
有鉴于此,本发明的目的是提供一种基于用户行为的图书推荐方法,能根据用户的图书浏览行为来挖掘用户偏好,从而为用户提供更精准的图书推荐服务。
为了达到上述目的,本发明提供了一种基于用户行为的图书推荐方法,所述方法包括有:
步骤A、根据用户在当前一天中对图书的浏览时间、访问次数、访问路径数、每条访问路径的访问次数、访问路径深度以及图书的内容字节数,计算出每位用户对其所浏览图书的用户-图书兴趣度;
步骤C、基于用户-图书兴趣度计算用户之间的相似度,并为目标用户选择若干个相似度高的邻居用户,然后将邻居用户已阅读而目标用户尚未阅读的图书向目标用户推荐,
所述步骤C中,用户之间的相似度的计算公式如下:
其中,sim(μ,η)是用户μ和η的相似度,Bμη是用户μ和η共同浏览的图书集合,分别是用户μ、η对图书b的用户-图书兴趣度,分别是用户μ、η对其浏览的所有图书的用户-图书兴趣度的平均值。
与现有技术相比,本发明的有益效果是:本发明根据用户对图书的浏览时间、访问次数、访问路径数、每条访问路径的访问次数、访问路径深度以及图书的内容字节数,来计算用户-图书兴趣度,不仅对用户浏览行为信息(如浏览时间、频率)进行了分析,还考虑了图书的本身特征及其在图书阅读平台中的布局、用户的访问轨迹等因素的影响;进一步考虑了用户浏览图书过程中的标签使用行为,并根据计算出的用户-标签兴趣度对用户-图书兴趣度的值进行调整,从而能更准确的挖掘用户偏好;由于用户偏好随时间动态转移、历史兴趣随时间动态衰减,因此在计算用户在当前图书阅读平台访问过程中对图书、标签的兴趣度时,还考虑了用户的历史兴趣;根据用户-图书兴趣度来计算用户之间的相似度,并为每个目标用户选择与其相似度高的邻居用户,最后通过邻居用户已阅读而目标用户尚未阅读的图书的偏好值的计算,为目标用户形成符合其个人偏好的图书推荐集,从而实现为用户提供更精准的图书推荐服务。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图和实施例对本发明作进一步的详细描述。
如图1所示,本发明一种基于用户行为的图书推荐方法,包括有:
步骤A、根据用户在当前一天中对图书的浏览时间、访问次数、访问路径数、每条访问路径的访问次数、访问路径深度以及图书的内容字节数,计算出每位用户对其所浏览图书的用户-图书兴趣度;
步骤B、将用户在当前一天中标注到图书上的所有标签构成用户标签集,并根据用户对标签的使用频率,计算出用户对标签集中每个标签的用户-标签兴趣度,然后根据图书上被用户标注的标签所对应的用户-标签兴趣度,调整用户-图书兴趣度,所述标签是由图书阅读平台的编辑根据每本图书内容所选择的部分能代表图书内容特征的关键词,用户可以从由所有标签构成的标签库中选择多个标签,并标注到其浏览的图书上;
步骤C、基于用户-图书兴趣度计算用户之间的相似度,并为目标用户选择若干个相似度高的邻居用户,然后将邻居用户已阅读而目标用户尚未阅读的图书向目标用户推荐。
如图2所示,图1步骤A中,用户i对图书j的用户-图书兴趣度的计算进一步包括有:
步骤A1、计算用户i对图书j的单字节总浏览时间:其中tm是用户i在当前一天中对图书j的第m次访问时的浏览时间,M1是用户i在当前一天中对图书j的访问次数,byte是图书j的内容字节数;
步骤A2、计算用户i对图书j的单深度单路径总访问频率:其中S1是用户i在当前一天中对图书j的非重复访问路径数(即用户从图书阅读平台首页到达图书j的非重复访问路径数,当用户通过同一条访问路径多次到达一本图书时,其非重复访问路径数仍为1),nk是用户i在当前一天中通过第k条访问路径到达图书j的访问次数,dk是第k条访问路径深度(例如第k条访问路径为:首页-)热门图书-〉图书j时,则dk=2);
步骤A3、计算用户i对图书j的单字节有效浏览时间:当用户对图书在指定的阈值内(例如30分钟)无任何操作行为时,则此次访问为无效访问,否则为有效访问,t1和M2是在用户i对图书j进行有效访问时的浏览时间和访问次数,其中t1是用户i在当前一天中对图书j的第l次有效访问时的浏览时间,M2是用户i在当前一天中对图书j的有效访问次数;
步骤A4、计算用户i对图书j的单深度单路径有效访问频率:其中S2、nγ、dγ均是在用户i对图书j进行有效访问时的访问路径数、每条访问路径的访问次数和访问路径深度,S2是用户在当前一天中对图书j进行有效访问的非重复访问路径数,nγ是用户i在当前一天中通过第γ条访问路径到达图书j进行有效访问的访问次数,dγ是第γ条有效访问路径深度;
步骤A5、计算用户i对图书j的用户-图书兴趣度:
步骤A6、查询数据库中是否保存有用户i对图书j的历史兴趣度如果是,则从数据库中提取用户i对图书j的历史兴趣度以及对应的图书浏览日期,继续下一步;如果否,则将用户i对图书j的用户-图书兴趣度和当前的图书浏览日期作为用户i对图书j的历史兴趣度和对应的图书浏览日期,保存到数据库中,本流程结束;
由于用户对图书的兴趣具有随时间动态转移的特性,因此本发明在计算用户对图书的兴趣度时,还同时考虑了用户对该图书的历史兴趣度;
步骤A7、更新用户i对图书j的用户-图书兴趣度:其中是用户i对图书j的历史兴趣权重系数;
步骤A8、将数据库中用户i对图书j的历史兴趣度和对应的图书浏览日期更新成用户i对图书j的用户-图书兴趣度和当前的图书浏览日期。
由于用户的历史兴趣随时间动态衰减,步骤A7中,的计算还包括有:
判断用户i对图书j的历史兴趣度对应的图书浏览日期距离当前的图书浏览日期的时间间隔是否小于或等于2天?如果是,则=0.5;如果否,则=1
如图3所示,图1步骤B中,用户i对标签集中标签x的用户-标签兴趣度的计算进一步包括有:
步骤B1、计算用户i对标签x的用户-标签兴趣度:其中fix是用户i对标签x的使用频率(即使用次数),Y是用户i使用的标签总数;
步骤B2、判断用户i是否首次使用所述标签x?如果否,则从数据库中提取用户i对标签x的历史兴趣度以及对应的标签使用日期,继续下一步;如果是,则将用户i对标签x的用户-标签兴趣度和当前的标签使用日期作为用户i对标签x的历史兴趣度和对应的标签使用日期,保存到数据库中,本流程结束;
步骤B3、更新用户i对标签x的用户-标签兴趣度:其中λix是用户i对标签x的历史兴趣权重系数;
λix的计算还可以包括有:
判断用户i对标签x的历史兴趣度对应的标签使用日期距离当前的标签使用日期的时间间隔t6是否小于或等于2天?如果是,则λix=0.5;如果否,则λix=1/t6;
步骤B4、将数据库中用户i对标签x的历史兴趣度以及对应的标签使用日期更新成用户i对标签x的用户-标签兴趣度和当前的标签使用日期。
所述步骤B中,可以按如下公式对用户-图书兴趣度的值进行调整:其中α是图书浏览行为对用户偏好的权重值,β是标签使用行为对用户偏好的权重值(例如:设定α、β的值均为0.5),ωix是标签x的重要性值,其值可以用单位时间内用户对标签的有效使用频率表示,即 表示用户i一次图书阅读平台的访问时间长度,表示用户i一次图书阅读平台访问过程中对标签x的有效使用频率,所述标签的有效使用是指用户相邻两次标签使用的时间大于一个指定阈值下的使用行为,以防止恶意使用标签行为对分析结果产生的影响。考虑到数据量的问题,用户对图书阅读平台的访问期以天为单位,即用户每天访问的总行为作为其一次图书阅读平台访问行为。
所述步骤C中,用户之间的相似度可以采用pearson相似性度量方法,其计算公式如下:
其中,sim(μ、η)是用户μ和η的相似度,Bμη是用户μ和η共同浏览的图书集合,分别是用户μ、η对图书b的用户-图书兴趣度,分别是用户μ、η对其浏览的所有图书的用户-图书兴趣度的平均值。
本发明还可以进一步根据用户-图书兴趣度以及目标用户和邻居用户之间的相似度,对邻居用户已阅读而目标用户尚未阅读的图书的偏好值进行计算,其中目标用户对图书的偏好值的计算公式如下:
Pμj是目标用户μ对图书j的偏好值,分别是目标用户μ、邻居用户η对其浏览的所有图书的用户-图书兴趣度的平均值,是邻居用户η对其浏览的图书j的用户-图书兴趣度,sim(μ、η)是目标用户μ和邻居用户η之间的相似度,Nm是目标用户μ的邻居用户集合,可以根据计算的用户之间的相似度,选择与目标用户μ相似度较高的若干用户作为目标用户μ的邻居用户。
根据目标用户对图书的偏好值的高低,形成图书推荐列表,然后将图书推荐列表中目标用户明确不喜好或已重复推荐的图书进行过滤,并根据目标用户对图书所属类别的其它图书浏览情况对图书推荐列表的图书排序进行调整,其中属于目标用户经常阅读或浏览的图书种类则排序靠前,最后将图书推荐列表中排序靠前的若干图书作为最终的推荐图书集推荐给目标用户,从而向用户推荐符合其偏好的图书。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。