推荐系统
许多购物软件会通过查看用户的购买历史等资料去为用户推荐物品,这就是推荐系统。
存在许多算法不需要人为的输入特征向量而是可以自动学习所需要的特征向量,推荐系统的算法就是其中一个。
1. 基于内容的推荐算法
具体来说就是对每个用户构建针对性构建特征向量分别使用线性回归算法输出假设结果。
例子:用户电影评分
上面的式子是单个用户的优化目标函数,下面的式子是所有用户的优化目标函数。
👆使用梯度下降算法求代价函数最小值。
2. 协同过滤(Collaborative Filtering)
协同过滤是一种构建推荐系统的算法,这种算法能够自行学习所要使用的特征并持续优化。协同过滤算法在执行的过程中需要观察大量用户以及他们的实际行为从而学习导最合适的特征和参数,得到最佳的假设。
👆已知参数
θ
(
j
)
\theta^{(j)}
θ(j)的值求特征向量
x
(
i
)
x^{(i)}
x(i)。
分别求出所有特征向量。
至此,既有通过 θ ( j ) \theta^{(j)} θ(j)求出 x ( i ) x^{(i)} x(i)的,又有通过 x ( i ) x^{(i)} x(i)求出 θ ( j ) \theta^{(j)} θ(j)的,因此综合起来,我们制造一个永动机:通过 θ ( j ) \theta^{(j)} θ(j)求出 x ( i ) x^{(i)} x(i)后,再继续使用求出的 x ( i ) x^{(i)} x(i)求出新的 θ ( j ) \theta^{(j)} θ(j),循环这个过程,这就是协同过滤算法。
将两个优化算法结合起来得到新的代价函数如下:
协同过滤算法的步骤:
首先对
θ
\theta
θ和
x
x
x进行随机初始化,
随后使用梯度下降算法或其他更高级的算法最小化代价函数得到
x
x
x和
θ
\theta
θ,
最后输出针对性的假设函数。
这个算法不需要加偏执单元 θ 0 \theta_0 θ0和 x 0 x_0 x0
协同过滤算法也叫低秩矩阵分解。
当用户买了一个东西 x ( i ) x^{(i)} x(i)后想要继续给他推荐物品 x ( j ) x^{(j)} x(j)时,选取能让 ∣ ∣ x ( i ) − x ( j ) ∣ ∣ ||x^{(i)}-x^{(j)}|| ∣∣x(i)−x(j)∣∣取得最小值的 x ( j ) x^{(j)} x(j)进行推荐。
这节主要是以例子贯穿的,推荐大家去看视频,这篇笔记主要就记下了一些关键点不是很全。