程序员推荐系统

Hulu的推荐算法课程(7月15号发布)

2020-07-20  本文已影响0人  Howyi

最近,Hulu又推出了推荐算法课程,关键是免费的,太良心了有没有。平常动辄几百几千的小象学院的课程,现在统统不要钱。我听了第一节,感觉实用性很强,肯定不会有很深入的讲解,适合学生和想入场推荐系统的算法工程师来学习。同时Hulu提供了几道推荐算法的面试题,大家可以体会一下。

第一节课主要讲了几种基础的推荐算法模型(协同过滤,因式分解机,逻辑回归,提升树)

推荐算法在使用场景有:

1 视频网站,推荐视频(例如hulu,抖音等)

2 网购网站,推荐商品(例如京东,淘宝,Amazon)

3 新闻网站,推荐新闻(例如今日头条)

推荐算法的基础假设:

1 信息过载

2 用户不确定自己想看的内容

协同过滤算法:

协同过滤算法是一种上下文无关的推荐算法

它的初衷是用户的历史和未来趋势保持一致

协同过滤算法有两种:基于用户的推荐算法和基于物品的推荐算法

基于用户的推荐算法:通过找到类似的用户,从而做推荐

基于物品的推荐算法:通过购买或者点赞的产品从而做推荐

好处:

简单,可解释性强

缺点:

需要占用存储(维护矩阵),稀疏矩阵问题

矩阵分解:

上下文无关的推荐算法

初衷:发现高维特征

r_{u,i}=p_{u}^{T}q_{i}

进一步完善矩阵分解:

x_{u,r}=u+b_{i}+b_{u}+p_{u}^{T}q_{i}

u表示平均打分在目录中

b_{i}表示商品间的打分差异

b_{u}表示用户的打分差异

优点:

更泛化性(即使两个用户没有给相同商品打分),节约存储空间(只需要保存两个低维向量)

缺点:

不好解释;更加稀疏

逻辑回归模型:

初衷:增加上下文信息到模型,把推荐系统作为一个分类问题来解决

r_{u,i}=\frac{1}{1+e^{-Wx+b}}

用户,商品,上下文信息可以被转化为分类变量(比如性别,时间区间等)

最后加入sigmoid函数映射到0-1空间中。

好处:可解释性比较强;可以并行快速训练;训练开销比较低;可以在线训练

缺点:需要特征工程;模型的表达能力差

因式分解机:

初衷:考虑到特征间的交叉

y(x)=sigmoid(w_{0}+\sum_{i=1}^{n}w_{i}x_{i}+\sum_{i=1}^{n-1}\sum_{j=i+1}^{n}w_{ij}x_{i}x_{j})

好处:表达能力比较强;很好泛化能力了;相对低的训练开销

缺点:做更高层的特征交叉比较难

Gradient Boosting Decision Tree(GBDT)提升树

提升树是基于Boosting的原理:使用多个弱分类器串行成集成分类器

F_{m}(x)=\sum_{m=1}^MT(x;\theta _{a}   )

提升树算法是通过集合多个决策树而得到的

第一道:从基于用户的协同过滤和基于物品的协同过滤的原理思考,下列场景中使用哪种协同过滤算法更加适合?为什么?

(1)新闻资讯推荐

新闻网站更适用于基于用户的协同过滤算法,兴趣相似的用户关注的新闻相似的概率比较大。

(2)电商网站推荐

电商网站更适用于基于物品的协同过滤算法,使用用户关注或者购买过的物品可以更精准推荐他未来购买的物品。

第二道:为什么逻辑回归模型在工业界受到了广泛应用?LR相对于其他的模型,尤其是GBDT模型,突出的优点是什么?

逻辑回归可解释性强,并且可以在线计算。相对于GBDT串联型结构,LR可以并行,所以得到工业界的欢迎。

第三道:为什么说提升树模型(GBDT)难以并行化?从Boosting方法的角度上给出简单的解释。

Boosting是通过不断增加新的模型预测,这种方式是无法并行化操作。

出自:世相科技

欢迎点赞支持

上一篇下一篇

猜你喜欢

热点阅读