推荐系统(七)

这部分主要是关于 CARS(context-aware recommendation system)的一些讨论。

什么是 context

其实事实上很多领域都会谈及 context,而 context 本身是跟 context 相关的概念 -,- 有时候甚至无法把 context 和 user 侧的 feature 区分开来:比如一个音乐推荐系统,它认为给用户推荐的音乐应该注意用户的心情,那么心情这个东西到底算是个用户的 feature 呢还是所谓的 context 呢?下面是一些领域里面对 context 的不同的 interpretation:

  • 数据挖掘任务里面通常将用户某些“状态”的转变看成是 context 的切换,如用户的工作(职业),婚姻状况,是否产子以及退休。这样一来通常的做法是为不同的 context 准备不同的 model;
  • 电子商务的个性化。用户的 intent 可以认为是某种 context,这会影响用户的购买行为:比如为自己购买一些日常用品和为朋友购买一些礼物,这两种行为下需要推荐的商品肯定是差异巨大的。尽管这些购买行为是通过一个电子商务账号发生的。事实上也有利用时间、天气、伴侣个数等信息的。
  • ubiquitous 和 mobile 相关的推荐,这经常会考虑到的是用户的位置,用户附近用户的身份,另外相关的还有 date、season 甚至温度,更细力度甚至会使用到 mic/sensor 的信号来获得用户当前的状态(行走?休息)。常见的用例是 LBS 进行 coupon 等信息的推送
  • 对数据库的某些请求增加额外的信息(如用户的偏好),这样节省用户叙述 query 的时间;
  • IR 里面除了 query 以外可以用来帮助获得更好地 retrieval 结果的信息,比如前面输入 query 以及点击的行为
  • 营销管理方面所说的 context 是指可能改变用户购买行为的一些因素(氛围?)

怎么利用 context

前面也讨论过一种策略,就是把 context 作为 segment,这样不同的 context 下面使用不同的 model,这是一种最直观的策略。那么我们应该期望:使用几个 model 会比一个 model 提高推荐的效果;几个 model 有显著的差异。

另外一种策略就是在推荐使用的 user、item 侧的 feature 之外另引入 context 的 feature(也就是不那么明显隶属于 user/item 的 feature)。

我个人倾向于这么看待 context:所谓的 feature,往往是“直接”与我们 predict 的问题相关的“原因”,而 context 往往不是直接的影响,它可以作用在某些 feature 上,也可以作用在 model 上,可以认为是一种“高阶”逻辑关系。以前面的音乐推荐为例,比如我们有一个用户根据 demographics 信息和历史听歌的偏好关系构造的 profile,我们利用这个 profile 为后续推荐歌曲做 ranking。那么此时用户的 mood 可以认为是作用在此 profile 上的一个临时的 bias,这个 bias 可能还是一个 time-variant 的东西。

如果我们的系统无法让用户输入这种 context,我们很可能要用 latent variable 把这种关系表达出来;如果用户能够暗示或者从某种方式输入,这个模型就可能简化。

一般说来 CARS 里面的常见用法分为

  • recommendation via context-driven querying and search(将 context 作为 query 的一部分)
  • contextual preference elicitation and estimation(将 context 学出来)

从工程的角度来说前者更直接容易,反馈也可能更加迅速;后者有点“猜测”,往往是在长期用户数据观察之上做出来的,也更适合 preference 这种短期变化不大的 context,而对类似“mood”这类飘忽不定的东西恐怕束手无策。后者常有以下三种应用的策略,

  • contextual pre-filtering,即 context 参与 first stage retrieval
  • contextual post-filtering,即 context 仅仅作为对原系统输出的修正
  • contextual modeling,在 model 里面加入 context 相关的东西

其实也就是最后这种是做 learning 的人比较关心的。如,利用 context 修正原先的 distance,这样 nearest neighbor 系的方法就算 context-aware 了吧…

最后提一句,既然 learning-based recommender 需要大量的数据,很可能在一个 business 初期这套方法是完全不可用的。从某种程度来说,一个企业从小到大的发展势必在每个时期拥有最适合那个时期的工具,learning 很可能在较晚的产品中才扮演起重要的角色。这算是对 start-up 的一个建议,一开始弄得很复杂,只会 delay 产品。如果 start-up 希望通过某些 learning 技术搞定一切,那么首先必须解决流量问题,否则一切都是空谈。

——————-
And they said to him, Where is Sarah your wife? And he said, Behold, in the tent.

Advertisements
推荐系统(七)

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s