推荐系统实践——第三章 推荐系统冷启动问题

20180608 开始第三章的学习
20180620 完成大致内容的阅读
20180621 (计划)阅读论文完善《在登陆时要求用户对一些物品进行反馈》这一章的遗留部分


冷启动问题是什么?

推荐系统是建立在大量的用户行为数据上的,如果一个个性化推荐系统在启动之初,不具备大量的用户行为数据,怎么设计一个个性化推荐系统并且让用户对推荐的结果满意,初步 产生用户粘性。这就是冷启动问题需要考虑的范畴。
冷启动问题简介

利用用户的注册信息

主要是如何通过用户注册时填写的人口统计信息给用户提供粗粒度的个性化推荐。人口统计信息包括:年龄、性别、工作、学历、居住地、国际、民族等。

基于注册信息的个性化推荐算法基本流程如下:

  1. 获取用户的注册信息
  2. 根据用户的注册信息对用户进行分类
  3. 给用户推荐他所属分类的用户喜欢的物品

一种简单的推荐方式是:分别保存用户的性别-物品相关表、年龄-物品相关表、学历-物品相关表。当新来一个用户时,按照用户填写的基本信息分别查询这些表,并将这些表中的topN按照一定权重相加,得到最终的推荐表。另一种方式是考虑组合特征,比如将年龄性别作为一个特征来处理。

基于注册信息的推荐最重要的第三步,计算每个特征的用户喜欢的物品。一般可以这样定义物品i在具有特征f的用户中的热门程度:
特征-热门物品计算公式.png

其中N(i)表示喜欢物品i的用户集合,U(f)表示具有特征f的用户集合。分母用于避免热门物品具有太高的权重,$\alpha$为了解决稀疏问题,一般$\alpha$的值比较大。
使用Last.fm的年龄、性别、国家和喜好物品的数据集,通过实验可以发现分类的粒度越细致,召回率、准确率和覆盖率就会越高。比如单纯使用性别-物品(相当于2个类别)进行推荐的效果不如使用性别、年龄段、国家三个特征(2 * 5 * |国家数目|个类别)进行推荐。

在登陆时要求用户对一些物品进行反馈

对于需要用户首先对物品进行评分,然后才能开启个性化推荐的系统来说,需要解决的首要问题是,如何选择让用户进行评分的启动物品,一般来说需要具有以下的特征:

  1. 热门
  2. 具有代表性和区分性
  3. 启动物品集合需要有多样性 启动物品需要具有高覆盖率来覆盖几乎主流的用户兴趣。

在论文Adaptive Bootstrapping of Recommender Systems Using Decision Trees中,作者使用决策树设计了一个选择启动物品集合的算法。选择合适的启动物品这个问题,也可以看成是选择最能区分人群的物品,决策树算法在每层划分节点的时候,都会选择信息熵最大的那个特征进行划分。那么类比到这里,我们可以在划分时,使用能最大程度划分用户兴趣的物品。方差可以用来衡量一群用户的兴趣程度。(暂时先到这里,这部分还没有看懂,等我看了论文之后补充)

利用物品的内容信息

主要是针对物品冷启动问题。新物品需要能够在第一时间展现给用户。在前一章的UserCF和ItemCF中,UserCF对新加入的物品不敏感,因为他的工作原理是推荐与用户兴趣相似的一群用户喜欢的物品,因此新物品进入推荐列表需要解决第一推动力问题,然后才能扩散到更多的用户列表中。ItemCF的原理是推荐给用户和他历史喜欢的物品相似的物品,系统会事先计算好物品-物品相关性矩阵,新的物品不会存在于这个矩阵中。虽然可以通过频繁更新物品相似度表来解决,但是基于用户行为计算物品相似度非常耗时。所以也需要利用物品内容进行相似性计算物品相关度矩阵,然后推荐给用户。
物品的相似性计算:

  1. 使用空间向量模型将物品的文字表述或者是关键字转化为空间向量(中文需要经历分词、关键字抽取、重要性排序TF-IDF、关键字向量),空间向量的每个分量都是权值,表示关键字对应的权重。可以使用TF-IDF计算权重,避免热门关键词对向量构建的影响。
  2. 使用余弦相似计算来物品对应的向量两两之间的相似性。考虑到计算的时间复杂度,可以先创建关键字-物品倒排表(和UserCF的原理类似)
  3. 利用之前的ItemCF的方式,将新物品推荐给用户。

基于物品内容的推荐算法---ContentItemKNN与ItemCF算法的比较
基于物品内容的推荐算法ContentItemKNN,也就是上面提到的先利用空间向量计算余弦相似性,然后基于相似性进行推荐的算法,具有计算简单并且可以解决物品冷启动问题,但是当内容向量比较稀疏的时候,它在准确率和召回率上的表现都仅仅优于随机推荐,差于mostpopular推荐,更差于ItemCF。只有当用户的行为强烈收到某一内容属性影响的时候,ContentItemKNN才会在精度上优于ItemCF(在github数据集上的表现,ContentItemKNN要优于ItemCF ,因为作者这一个内容属性是一个强属性)。但是这种强内容不是所有物品都会拥有的。总结来说,ContentItemKNN算法强烈受到内容多少以及内容质量的影响,不如ItemCF普适。

空间向量模型在内容数据丰富的时候效果很好,但是在内容稀疏的时候则不能很好的衡量两个物品之间的相似度。有时候两篇文章应该是相同的,但是因为标题的关键字表面上没有关系,因此空间向量模型不能知道其中的关系。这时候就需要话题模型来建立文章、话题和关键字之间的联系。经典的话题模型是LDA,关于这个算法的具体思想可以参考David M. Blei的论文“Latent Dirichlet Allocation”

引入专家系统

对物品进行人工的标记,比如电影可以标记心情、剧情类型、类别、故事时间、地点、观众类型、获奖情况、风格、主旨、画面技术等等。Jinni在电影标记中采用了半人工半自动的方式,在专家标记了一定样本之后使用自然语言理解和机器学习技术,通过分析用户对电影的评价和电影自身的内容属性对新电影进行自我标记。同时还设置了用户反馈界面,通过用户反馈进行改善。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,108评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,699评论 1 296
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,812评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,236评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,583评论 3 288
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,739评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,957评论 2 315
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,704评论 0 204
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,447评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,643评论 2 249
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,133评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,486评论 3 256
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,151评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,108评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,889评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,782评论 2 277
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,681评论 2 272

推荐阅读更多精彩内容