美文网首页
推荐系统学习笔记

推荐系统学习笔记

作者: YANJINING | 来源:发表于2020-12-30 09:37 被阅读0次

    随笔:将学习中有疑惑的点记录一下

    1.关于embedding的理解:

    embedding其实是对特征的向量表达形式,它由一个维度的空间向另一个维度空间映射得到,这个映射关系可以是高维向低维进行映射,也可以是低维向高维映射,在推荐中通常做的是降维处理,作用之一是为了解决one-hot编码带来的空间占有率大的问题,解决了其矩阵的稀疏性,使矩阵变得更加稠密,我们通过映射得到的emebdding向量用余弦相似度的方法就可以计算出两个或者多个特征之间的相似性,从而就得到了相似性矩阵。

    2.关于特征交叉的理解:

    特征交叉本质上是特征组合,用于将两个或多个特征通过相乘,求次方等运算进行交叉,得到新的有价值的特征,比如电商中的性别和日期做交叉,我们把性别为女和日期为双11进行交叉得到新特征。再比如新闻推荐中职业和主题做交叉,我们可以把职业为人工智能算法工程师和深度学习主题做交叉得到新特征。这些交叉后得到的新特征就可以帮助我们更好的做推荐了。

    3.疑问1:什么是深度交叉?如何做深度交叉?

    个人理解:随着网络层数不断增加,输入特征通过残差层不断进行特征映射的过程视为深度交叉

    疑问2:随着神经网络层数增加,模型拟合效果可能不如浅层网络,是因为过拟合还是因为难以拟合恒等映射导致的网络退化,或是其他的原因?

    解决方法:引入残差网络
    随着网络层数增加,会发生梯度消失或者梯度爆炸,这是由于反向传播中对sigmoid函数的链式求导造成的,解决方法可以将激活函数换成relu。因为relu导数在参数大于零时,导数为1,小于等于0时,为0,很好的控制了梯度消失和梯度爆炸。

    4.对于反向传播的理解:

    因为传统的优化损失函数的方法都是需要求出损失函数中要优化参数的梯度,然后将这个梯度放入优化器中去优化,对于机器学习模型来说,因为其节点少,参数不多,我们通常用的手段就是梯度下降来优化,但是对于深度学习来说,深层神经网络的参数非常多,随着层数的加深,参数是以指数级的速度增长的,这就给我们计算偏导数带来了极大的挑战,试想,如果有上亿个参数,那么前向传播中每一个样本进行求导(注意前向传播没有梯度下降的过程)就需要计算上亿个参数的偏导数,这非常消耗资源和时间,这个时候反向传播登场了,前向传播是对每一个参数计算导数,计算一次导数就进行一次前向传播,就更新一次参数,训练一个样本就需要计算上亿次参数的导数(运行上亿次前向传播),这是非常恐怖的,而反向传播恰恰是解决了这个难题,反向传播能一次性的计算出所有参数的梯度(偏导数),这就相当于加速了上亿倍,效率极大的提高了。反向传播是根据链式求导法则来进行的,一次反向传播计算出所有参数的梯度后,交给优化器去更新参数。

    相关文章

      网友评论

          本文标题:推荐系统学习笔记

          本文链接:https://www.haomeiwen.com/subject/dwbcoktx.html