zoukankan      html  css  js  c++  java
  • 个性化推荐中的用户兴趣建模浅析

    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的点击情况,将返回到“用户点击日志”系统中,供下一次更新用户兴趣模型时使用。因为用户的兴趣往往是不断变化的,通过这样一套循环系统,能够不断的捕捉用户的兴趣点,让推荐结果保持优质

  • 相关阅读:
    处处留心皆学问,世事如棋局局新…
    【转载】2017 软件测试行业现状调查报告_From_51testing_On_20180625
    Hello World In Go ...
    C# 易错题整理
    C# 函数
    C# 哈希表,队列,栈
    C# 数组,集合,泛型集合
    C# 如何生成验证码
    C# 年月日时间题+Timespan
    闰年的一个BUG
  • 原文地址:https://www.cnblogs.com/fx2008/p/4115133.html
Copyright © 2011-2022 走看看