Google News在www 2010上放出了《Personalized News Recommendation Based on Click Behavior》。这篇文章重点解决推荐精准性和新资讯的冷启动问题,文章想法也很朴素自然,主要是基于贝叶斯理论进行建模。他们假设用户兴趣有两个方面:个人不断变化的兴趣以及当前新闻热点。在具体建模之前,作者先基于历史数据进行了统计分析,验证了他们的假设,得到如下基本结论:用户的兴趣是随时间变化的,新闻热点也是随时间变化的。还有一个比较比较有趣的结论是不同地区同一时间的新闻热点是不一样的。下图是不同地区不同时刻体育类新闻的阅读占比。
这幅图纵轴是体育新闻阅读量在该地区总新闻阅读量的占比,越高表示该地区的用户越喜欢看体育新闻。横轴则是时间点,用黑线标示出的三个时间点从右到左则分别对应奥运会、欧洲杯以及美国职业棒球大联盟进行时。而图中的三条不同(颜色)标示的线则代表西班牙、美国、英国三个地区。不难发现,这副图不仅揭示了同一地区用户对体育新闻的感兴趣程度是随时间变化的,更揭示出西班牙、英国等国家更爱看体育新闻。
确实如此,一种简单的做法是把用户近期点过的所有新闻的vector取个平均或者加权平均就可以得到user的vector了。但这种模式还有优化的空间:1)用户点击是一个序列,每次点击不是独立的,如果把序列考虑进去就有可能得到更好的表示;2)点击行为和曝光是有联系的,点击率更能体现用户对某个或某类新闻的感兴趣程度。鉴于这两点,我们很容易想到通过深度学习里经典的解决序列学习的RNN方法,Yahoo japan的人使用的就是一个经典的RNN特例:LSTM。训练时将用户的曝光和点击行为作为一个序列,每次有点或不点这样的反馈,就很容易套用LSTM训练得到user的vector,具体做法如下图所示。
微软还发表了《A Multi-View Deep Learning Approach for Cross Domain User Modeling in Recommendation Systems》,文章提出了一种有趣的得到user vector的方法,这是一个典型的multi-view learning的方法。现在很多公司都不仅仅只有一个产品,而是有多个产品线。比如微软可能就有搜索、新闻、appstore、xbox等产品,如果将用户在这些产品上的行为(反馈)统一在一起训练一个深度学习网络,就能很好的解决单个产品上(用户)冷启动、稀疏等问题。具体网络结构如下,总体的优化目标是保证在所有视图上user和正向反馈的item的相似度大于随机选取的无反馈或者负向反馈的相似度,并且越大越好。用数学公式形式化出来是:
对应的神经网络结构如下图所示。