首页 > 编程知识 正文

全国fm电台哪个好听,rabin-karp算法

时间:2023-05-03 22:45:20 阅读:30536 作者:4436

1概述

在排序模型中,特征主要使用离散的one-hot代码特征。 这是由任务本身的特点和历史发展和模式的特点决定的。

首先从任务本身来说,主要涉及的特征可以分为用户特征-物品特征-行为特征。 这些特征往往是离散的,如用户性别、用户兴趣和项目分类

关于历史发展,由人工规则----lr----gbdtlr----FM----发展而来,这里趋向离散特征

对于发展过程中最关键、工业应用中最常用的模型LR来说,离散特征更具优势

相反,由于one-hot码的离散特征容易引入非线性和后续特征的组合,单独热码的离散特征在推荐系统排序和CTR预测中非常普遍。

1.1特征和特征区域(特征场) ) ) ) ) ) ) )。

例如,如果具有用户性别、年龄、物品品牌、物品价格等特征,则可以转换为

性别:“男、女”:“1、0”表示男人

年龄: [0-15岁、15-25岁、25-35岁、35-50岁、50岁以上]:[0、0、1、0、0]表示用户年龄在25-35之间

物品品牌:“李宁、特步、耐克、阿迪达斯、匡威”:“0、0、0、1、0”表示阿迪达斯

物品价格([0-500元、500-1000元、1000-2000元、大2000元) )、1、0、0 )表示物品价格为500-1000元

网域

性别

年龄

品牌

价格

特征

男人

女人

15

25

35

50

50

ln

tb

耐克公司

adi

kw

500

1000

2000

2000

样品

1

0

0

0

1

0

0

0

0

0

1

0

0

1

0

0

如果是

表示样品

y=1表示25-35岁的男性购买或点击了adi品牌价格在500-1000之间的商品或其广告

所以男女各有特点,用01来表示是否是其特征,性别作为男女抽象成为特征域。

这里对域没有严格的规定,常识上倾向于这样划分域,但同样也可以根据具体的样本特征进行分组。

其主旨是同一类型的特征构成一个域

是2fm (财务机器)

2.1模型推导

一般线性模型

请注意这里

表示样本的第I个特征,而不是第I个样本。 n表示每个样本的总n维特征。

LR

LR是线性模型的变换。

但是,从线性模型的公式可以看出,线性模型只使用单一的特征,没有考虑不同特征之间的交叉的因素。 例如,构成性别与品牌的交叉、新的特征“男-Nike”、“女-Nike”、“男-李宁”、“女-李宁”等也同样可以提供信息。

所以,可以设计新的模型

这与一般的线性模型相比,二元特征交叉的信息更多。 当然,也可以继续追加三元交叉、四元交叉等

但是,这里也必须考虑计算量的问题。 首先,请注意对于CTR任务,n非常大。 这是因为在自己的热编码之后,域的展开非常大。 考虑到二元交叉的特征,组合的特征是

订单的

这样,参数数量呈指数增长,采样量m大致恒定。 其结果是,当三元等更高的特征交叉时,特征维容易超过采样量m

当特征维度远大于样本量m时,各参数难以得到充分的训练,导致拟合不足

所以暂时只考虑二元特征交叉

只是二维特征交叉,其参数

水平的。 然后又是

因为本身很稀疏

在更稀疏、整体的样本中,容易出现某种组合

始终为0时,以这种方式应对

不能接受训练。

为了解决这个问题,必须减少参数的数量。

众所周知,可以利用矩阵分解技术从线性代数的知识中分解矩阵w

w是的

维,v是

维,当令

enter">时,就可以把计算量从

降到

所以根据这样的思想,我们可以对每个特征

构建一个向量

,则

则式(2.3)可以转换成

进一步转化得

式(2.4)(2.5)就是FM模型,我们称

为隐向量或者

的隐向量

2.2 优化算法

我们对式(5)的最后一部分做进一步转换

(详情见最后注释)

对于此模型,设有损失函数

可以是MAE,也可以是交叉熵损失函数

其根据链式法则梯度

即表示为损失函数对模型的导乘以模型对参数的导。

模型对参数的求导:

面对这样的情况,我们可以使用如下几种优化算法求解参数

随机梯度下降法(SGD)

交替最小二乘法(ALS)

马尔科夫链蒙特卡罗法(MCMC)

随机梯度下降法(SGD)

很容易理解,根据上述式子可以得出损失函数的梯度,得知梯度后就很方便的可以应用SGD

交替最小二乘法(ALS)

又称坐标下降法

即每次只优化一个参数。令导数=0,求解当前这个参数的最优值。

马尔科夫链蒙特卡罗法(MCMC)

不会不想查 :)

以上三种方法具体可移步参考链接

3 FFM(Field Factorization Machine)

3.1 模型推导

FM的核心是特征交叉,这里面最重要的就是隐向量。FM中,每个特征

都有且只有一个隐向量

在特征交叉时,对应的隐向量点乘得到这个交叉特征的权重

然而,每个特征所代表的意义是不一样的,例如在计算交叉特征:“男性-20到30岁”,“男性-Nike”时,用同一个男性隐向量v点乘20-30岁和nike的隐向量结果的区别度低。FFM认为,每个特征

的隐向量应该有多个,当该特征与不同类型(域field)的特征做交叉时,应该使用对应的隐向量,这样可以做到更精细地刻画交叉特征的权重。所以每个特征应该有和field数量相同的隐向量个数。

假设样本共有l个域

特征

分别属于域

有l个隐向量

分别对应l个域,v是一个k维向量

有l个隐向量

分别对应l个域,v是一个k维向量

则当

做交叉时,

应该选取

所在域对应的隐向量

应该选取

所在域对应的隐向量

这样更精准了,但是参数量多了l倍。所以实际应用中,FFM设置的隐向量长度k会比FM的k小很多以尽可能降低计算量。

3.2 优化算法

同FM

4 总结

FM模型相比传统LR模型,多了二元交叉特征组合。提高了模型表征能力。

从根本上来说,FM之所以可以这么容易的拓展与组合,是因为任务使用的是独热编码的离散化特征

FM全称Factorization Machine。其中Factorization是因式分解的意思。通过上面的介绍,我想很容易理解这个因式分解的意思。当出现特征交叉如

,必然会有这个交叉特征的参数

,而FM把这个参数分解成了两个向量的点乘

。而这两个向量可以看成是特征

的一种编码。

对隐向量的进一步探讨

对于onehot编码来说,

特征对应着向量

其中第i位=1,其他=0;

特征对应着向量

其中第j位=1,其他=0;

所以

的隐向量=

等价于

被编码成

表示两特征交叉,其权重

则被FM表示成了两隐向量的內积

注意式子

虽然看似有

的复杂度,但实际上

绝大多数时候都=0,这表示对于每一个样本,式(4.1)计算量远达不到

。对于一个特定的样本,式(4.1)退化成

表示该样本的稀疏特征中1的数量。

请理解这段,这段在理解DeepFM中有用。

参加过一个会议,会上有人说对于CTR预测或推荐系统重排序来说,最根本的是做特征组合。

因为独热编码的特征,每一维表征的信息太少,需要通过组合来提高每一维的表征能力。

同时,特征组合引入了非线性,可以提高拟合能力。

其实GBDT+LR模型,也是一种特征组合。

FM实际上做了一个Embedding 工作,把稀疏的独热特征转换成了稠密特征,这对于深度学习是友好的,所以后续有很多FM和神经网络结合的工作。

未完待续。。。

5 注释

[1].此处应用平方和公式

参考

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。