阅读 82

文本获取和搜索引擎之推荐系统

coursera课程 text retrieval and search engine 第六周 推荐。

推荐系统

推荐系统即把恰当的内容推送给用户,类似于在一系列文档中过滤出用户想要的。一般有两种方式:

  1. 看用户喜欢什么样的东西,然后检验当前文档是否和用户喜欢的相似【content-based】;
  2. 看喜欢特定文档的都是什么样的用户,然后看当前用户是否和他们一样[collaborative]。
    传统的基于内容推荐模型是:
    他存在如下问题:
  • 必须做一个yes/no的决策
  • 初始的数据很少,基本基于配置
  • “学习”通过用户的yes判断,而且还要靠慢慢积累

通过向量模型可以做如下改进

  1. 是它利用了TR已有的模型作为相关性【分数】计算
  2. 对于初始的配置来讲也可以当做是一个向量用来和文档做计算分数
  3. 通过阈值模型来做决定是否推送给用户,并对过滤的结果通过效用模型来评估
  4. 用户得到的反馈之后反过来更新阈值学习和向量模型的学习系统

向量学习系统即调整向量本身的位置,和搜索类似

阈值模型困难在于:能被用户判断的数据都是送给用户的;开始的时候被标记的数据少;提供给用户一些试点的数据,看用户如何反应,太少了达不到效果,太多又会担心都是用户用不到的数据

Beta-Gamma阈值学习

y轴是实际的作用(比如有点击的),x轴是排序中的位置;

\theta_{zero}表示继续调低阈值那么推送过去的都是无效的;\theta_{optimal}表示阈值的上界,即只要大于这个阈值,基本都是有效的。它和\theta_{zero}之间还有可能存在一定的数据是有用。衡量真实的取值则可以用\alpha来表示:

\theta=\alpha*\theta_{zero}+(1-\alpha)*\theta_{optimal}

一般来说,更偏向于\theta_{zero},这样得到的数据显得更全面。但是有时候不需要显示这么多,可以通过训练来达到另一种取值方式

当训练的样本数足够的时候,认为已经足够了解用户了,那么\alpha可以取较小的值,不够的时候,偏向于\theta_{zero})即可;训练样本的权重则通过\gamma来控制