Yang Cheng

行万里路,读万卷书

选择content-based的特征

论文

recsys2013的poster[selection content-based features for collaborative filtering recommenders] [p1]

八卦

作者是 [p1]: http://www.eng.tau.ac.il/~noamk/papers/feature_selection_recsys_2013.pdf

Pairwise Learning

背景介绍

recsys2013 Linkedin pairwise learning的报告

观测数据:用户U产生行为Y(在linkedin场景行为是加入的社区),形成一条数据(u,y)

推荐问题:给定一些(u,y)的元组,为一个用户u推荐用户可能产生的行为(加入社区),或者一个用户u是否会加入社区y

常用方法:收集用户的profile和偏好, 计算用户和社区的相似程度

计算相识度的算法非常多, 启发式方法: 利用启发式公式,计算用户和社区的相似程度。 常用的计算相似度的方法包括:jaccard余弦相似, 欧式距离等:

具体的方法和普通的协同过滤算法类似,定义了user * item的矩阵,计算 item-base的方法是先把item表示成user的向量,

itemA : <userA,userB,userC,userD>
itemB : <userA,userB,userE,userF>

用户以上的相似计算方法度量itemA和itemB的相似性,为了映射到itemA和user的相似性,把user表示成item的向量

userA: <itemB, itemC, itemD>

那么itemA和userA的相似性可以表示层:itemA和<itemB,itemC,itemD>的平均相似性,或者其他值

基于模型的方法 直接通过数据特征和把目标,预测用户对目标的偏好程度,常见的机器学习方法比如Logistic Regression

LR

这里的x指用户和社区的特征,比如用户的性别,年龄,兴趣,社区的主题,用户和社区的特征组合等等,而目标即用户是否加入社区

一些观察

通常pointwise的排序方法就够用了,但是很多场景下,我们很难度量用户对某个item的喜好程度,但是我们可以定义一些用户的偏好; 另一方面,排序算法会利用点击日志来调整算法的效果,用户只能点击到我们投放给用户的item,用户行为表现更多的是偏向,而不是程度。

比如:在搜索结果场景中,通常会给用户展示多个候选集合,用户浏览集合然后从中挑选出自己偏好的集合。这里的用户行为实际上表现了一些用户的喜好, pointwise的假设是用户的喜好是全局的,用户对候选的表现是独立,不会受到前后的影响。而实际情况确有不同,比如用户通常会对比候选,然后挑选出一个。 因此用户的偏好常常是相对的,为了描述这种相对偏好,常常采用pairwise或者listwise的ranking方法。

对单次点击的pairwise样本:

  • Click > Skip Above
  • Last Click > Skip Above
  • Click > Earlier Click
  • Last Click > Skip Previous
  • Click > No-Click Next

分析

如何结合整体点击率,在单次点击里抽样样本

  • 同query下,每个item的统计CTR
  • 可选择:消除position bias
  • 选择CTR差值有一定置信度的Pair, 比如:A->B, E->C, C->E
  • 对单次点击过滤掉行为噪音,满足购买>点击>无行为, 从每次pv中过滤掉不满足约束的Pair,剩下A->B, E->C
  • 特征改进

    • 按照原始特征分布去筛选样本分布
    • 没有区分度的特征通过样本选择的方式去改进
  • 负样本采样
    • 没有最优的负样本采样策略

算法

  1. rankSVM
  2. PLSA

并行化

  1. GPU
  2. 并发
  3. 分布式
    • BSP on MPI:
    • Hadoop
    • Scala

结果

参考

冷启动问题求解

| Tags: Recommender Systerm

摘要: 本文介绍冷启动的问题以及常用的求解思路

冷启动问题的解决

冷启动问题的分类:

  1. 用户冷启动(新用户来了);
  2. 物品冷启动(新物品来了);
  3. 系统冷启动(整个推荐系统都是新的,也可以认为,它和“用户冷启动”的区别是,所有用户对系统冷启动来讲都是新用户,都面临冷启动问题)

冷启动是稀疏数据问题一种特殊形态。用户跟系统的交互非常少,导致可以利用的数据比较小,也很难为用户建立Profile和兴趣,因此会导致一般的推荐算法失效。

冷启动问题的解决方案:说白了,就是尽可能利用信息给用户一个可以接受的物品列表,最常见的就是热门排行。

有的是根据冷启动问题分类来的,有的是从解决方案(能利用用户什么类型信息)来的。

启发式方法

Linear combination of regression and CF models
Filterbot Add user features as psuedo users and do collaborative filtering
Hybrid approaches Use content based to fill up entries, then use CF

http://grouplens.org/papers/pdf/filterbot-CSCW98.pdf

Matrix Factorization

Good performance on Netflix (Koren, 2009)

Model-based approaches

  • Bilinear random-effects model (probabilistic matrix factorization)
  • Good on Netflix data [Ruslan et al ICML, 2009]
  • Add feature-based regression to matrix factorization (Agarwal and Chen, 2009)
  • Add topic discovery (from textual items) to matrix factorization (Agarwal and Chen, 2009; Chun and Blei, 2011)

推荐系统多样性的问题

DIVERSITY方面的相关文章 关于diversity方面的推荐系统论文,搜索了一下相关的文章,下面是一些比较著名的文章的列表

  1. Similarity vs. Diversity
  2. Avoiding monotony: improving the diversity of recommendation lists
  3. Improving recommendation lists through topic diversification
  4. Being accurate is not enough: how accuracy metrics have hurt recommender systems

    其中第3篇是第一篇有关diversity的经典论文。第二篇是去年Resys08的一篇论文,主要贡献是用线性二次优化来找到整数二次优化问题的次优解。第4篇是一篇定性的文章,主要在于diversity背后哲学问题的讨论

imrchen去年也整理过diversity方面的文章,因为他的博客大陆不能访问,不过可以访问他在CiteULike的链接:

http://www.citeulike.org/user/imrchen/tag/diversity

WI2009收录的两篇Diversity方面的论文 1. Statistical Modeling of Diversity in Top-N Recommender Systems, Mi Zhang 2. Novel Item Recommendation by User Profile Partitioning, Mi Zhang

Google Ctr预估系统

简介

kdd2013 google的论文就像一枚重磅炸弹 Ad Click Prediction: a View from the Trenches

算法

##工程考虑 ##结语

下一代推荐系统

| Tags: Recommender Systerm

摘要: 主要围绕Gediminas等的论文,讨论下一代推荐系统的形态

前言

讨论祖先和子孙的问题一向是比较困难的事情,什么是上一代,他们有什么特点?下一代推荐系统到底是什么?前后代有什么不一样,是什么关键特征定义了下一代? 本文的重点是,讨论一些论文观点,旨在回答以上的一些疑问 从Gediminas Adomavicius和Alexander Tuzhilin的Towards the Next Generation of Recommender Systems: A Survey of the State-of-the-Art and Possible Extensions来看(这篇文章引用率非常高),我的理解是:

第一代推荐系统主分三类:

  1. content-based,基于内容的推荐
  2. collaborative,基于协同过滤的推荐
  3. hybrid recommendation, 混合型推荐

第二代推荐系统的主要特点是:

  1. user和item的理解
  2. 结合上下文信息
  3. 支持多维度的评价指标
  4. 提供更加有弹性和更少打扰的结果

其人

Gediminas Adomavicius在推荐系统方面有很多研究, 有兴趣可以看看CAREER: Next Generation Personalization Technologies,研究主题包括:

  1. 多准则推荐系统
  2. 推荐查询语言
  3. 推荐的多样性
  4. 时效数据的聚类
  5. 上下文感知推荐
  6. 用户偏好对推荐的影响
  7. 推荐算法的稳定性
  8. 数据特性对推荐的影响

相关讨论

第一代推荐系统

早期的推荐系统主要是“评分预测”和“TOPN”预测,不论是哪一种推荐方式,其核心的目标是找到最适合用户c的项集合s,从集合里挑选集合是一个非常复杂的问题优化方案,通常采用的方案是用贪婪的方式,而我们只需要定义一个的效用函数,选取TOPN。

基于内容的推荐

定义效用函数为:用户c和项s的内容上的”相似性”,比如商品推荐中,为了一个用户推荐一款合适的商品,会计算商品和用户历史上看过或者买过的某些特征上的相似性(比如:品牌的偏好,类目的偏好,商品的属性,商品标签等等)。很多推荐都会在有文本的实体上进行推荐,改进的主要思路是:

  1. 扩展实体的文本标记。比如:标签,语义树
  2. 用户的文本Profile。比如:taste,preferences,needs。

因此,基于内容的推荐算法的关键问题是建立,item的content profile和user的content profile。 对于有问题内容的推荐实体,一般的方法是利用关键词抽取技术,抽取item中最重要的或者最有信息量的一些text。 第一个任务是选择什么的文本,构建的text从来源上可以分成几个,如果来之item本身的内容,通常称为keywords; 如果来自用户的标记,通常称为tags;如果来之外部的query,通常称为intents。 第二个任务是如何在候选词里做weighting和selection。selection的方式一般是用贪心方法,选出topn weighting的词。

构建user的content profile是比较困难的。因为user本生是没有标记的,通常是通过user从前看过的item和当前看过的item做 标记。从时间的维度上,user的content profile可以分成历史和实时部分,历史部分通常是通过挖掘获取,而实时部分通常是 通过巧妙的”average”或者model-based的方法发现用户content profile, 比较出名的content-based推荐系统是Fab, “adaptive filtering”是一种通过user的浏览记录不断提升精度的content profile构建方式

协同过滤推荐

是大家最为熟悉的推荐算法。算法只涉及到user-item的交互矩阵,推荐方式是Heuristic-based(memory-based)方法(item-based和user-based)和 model-based的方法,后面发展的一批改进协同过滤算法的策略,比如:

  1. Default Voting;
  2. Inverse User Frequency;
  3. Case Amplification;
  4. Weighted-majority Prediction 当然其他的协同过滤算法也非常多,下次讨论协同过滤算法的时候在仔细探讨

混合方法,主要是混合基于内容和协同过滤的方法。变种非常多,这里暂不讨论

第二代推荐系统

  1. model-based的一些变化。谈到第二代,论文提供了一些扩展,比如:model-based方法,通常是基于统计和机器学习的方法, 后面有演化出一些基于数学近似的方法,我理解的数学近似方法其实很简单, 就像我们在高中学习的展开式,或者泰勒公式等等,用无穷多的弱项组合成一个误差最小的结果。
  2. 多维度的推荐。其实目前多数的推荐是单维度的,就是对user进行item的推荐,但是有些应用场景,比如:对住在北京的男性用户进行品牌推荐, 或者在妇女节给女性用户推荐优惠商品。这些场景下需要推荐从对个维度上考虑问题,所以在多维的推荐系统中需要一个受众定向的功能。
  3. 多准则的推荐。一般情况下,我们即需要推荐的准确,多样性,惊喜度,时效性,覆盖率等等指标;有时候,我们需要保证推荐的推荐的品质, 比如高端的品牌推荐,不能给用户推荐一些低质量的品牌商。
  4. 不打扰。很多系统为了搜集用户的兴趣,有时候会强迫用户给商品打分,这样会干扰用户的行为。 怎么在用打扰用户的情况下,搜集潜在的用户反馈;对新用户怎么增量的用户信息量最大item,也是快速构建用户profile的一种方式。

当然还有很多推荐系统应该解决的问题和扩展, 但是,就这样还不能是二代推荐系统的特征, 推荐系统的发展永远是围绕着“用户体验”来做的。

参考文献