点击率估计中的FM与DeepFM算法:小学生也能懂的详细解释


1. 点击率估计是什么?

想象一下,你在看一个视频网站,上面有很多广告。广告商想知道,当他们展示一个广告时,你点击这个广告的概率是多少。这个概率就叫做点击率(CTR)。如果能准确预测点击率,广告商就能更好地选择展示哪些广告,这样也能让你看到更感兴趣的广告。


2. 什么是FM算法?

(1)简单例子

假设我们有一个广告系统,它会根据用户的年龄、性别和兴趣来判断用户是否会点击广告。比如:

  • 如果用户是10岁的小朋友,点击率可能是10%。

  • 如果用户是男生,点击率可能是15%。

  • 如果用户喜欢看动画片,点击率可能是20%。

但是,这些特征(年龄、性别、兴趣)之间可能有关系。比如,一个10岁的小男孩可能更喜欢看动画片,这样的组合可能会让点击率更高。FM算法就是用来捕捉这些特征之间的关系的。

(2)公式

FM算法的核心是通过一些数学公式来计算点击率。它的公式看起来有点复杂,但我会尽量解释清楚:

假设我们有三个特征:年龄(x1​)、性别(x2​)和兴趣(x3​)。每个特征都有一个权重(w1​、w2​、w3​),这些权重表示每个特征对点击率的影响。

一阶特征(单独特征的影响)

y一阶​=w1​⋅x1​+w2​⋅x2​+w3​⋅x3​

二阶特征(特征之间的组合影响): 为了考虑特征之间的组合关系,FM算法引入了“隐向量”(v)。每个特征都有一个隐向量,比如:

  • 年龄的隐向量是 v1​

  • 性别的隐向量是 v2​

  • 兴趣的隐向量是 v3​

然后,我们计算每两个特征之间的组合影响:

y二阶​=i=1∑3​j=i+1∑3​(vi​⋅vj​)⋅xi​⋅xj​

这里,vi​⋅vj​ 表示两个隐向量的点积,xi​⋅xj​ 表示两个特征的组合。

最终的点击率预测

y^​=y一阶​+y二阶​


3. 什么是DeepFM算法?

(1)简单例子

DeepFM是在FM的基础上增加了一个“深度神经网络”(DNN)。想象一下,我们不仅要看两个特征之间的关系,还想看三个、四个甚至更多特征之间的复杂关系。这就需要用到深度学习。

比如,一个10岁的小男孩,喜欢看动画片,而且正在放假,这些特征组合起来可能会让点击率更高。DeepFM可以捕捉到这些复杂的组合关系。

(2)公式

DeepFM的公式可以分为两部分:FM部分和DNN部分。

FM部分: 和FM算法一样,DeepFM也包含一阶和二阶特征的计算:

yFM​=y一阶​+y二阶​

DNN部分: DNN部分是一个深度神经网络,它的输入是每个特征的嵌入向量(和隐向量类似)。假设每个特征的嵌入向量是 ei​,DNN部分的输出可以表示为:

yDNN​=DNN(e1​,e2​,e3​,…)

最终的点击率预测: DeepFM将FM部分和DNN部分的输出结合起来:

y^​=yFM​+yDNN​


4. 总结

  • FM算法:通过一阶和二阶特征的组合来预测点击率。它适合处理简单的特征关系。

  • DeepFM算法:在FM的基础上增加了深度神经网络,可以捕捉更复杂的特征组合关系。它适合处理更复杂的数据。


5. 用一个简单的例子来说明

假设我们有一个广告系统,用户有三个特征:年龄(10岁)、性别(男)、兴趣(动画片)。我们用FM和DeepFM来预测点击率。

FM算法
  • 一阶特征:y一阶​=10%+15%+20%=45%

  • 二阶特征:假设年龄和性别、性别和兴趣、年龄和兴趣的组合分别增加5%、3%、2%。那么:

    y二阶​=5%+3%+2%=10%
  • 最终点击率:yFM​=45%+10%=55%

DeepFM算法
  • FM部分:yFM​=55%

  • DNN部分:假设DNN捕捉到更复杂的特征组合,增加了5%的点击率。

  • 最终点击率:y^​=55%+5%=60%


希望这个解释能帮助你理解FM和DeepFM算法!如果有任何问题,可以随时问我哦!

你可能感兴趣的:(算法,人工智能)