推荐算法系列文章(1)

282 阅读2分钟

前言

本文已参与「新人创作礼」活动,一起开启掘金创作之路。大家好,本系列文章将主要介绍一下关于推荐算法的知识,推荐算法是目前很火的一个领域,在大家的生活中几乎随处可见,比如抖音上及各大视频的短视频推荐,以及各大网络购物中的商品推荐等等。

推荐算法综述

推荐算法顾名思义就是向用户推荐一些感兴趣的商品或者其他信息,与传统的搜索系统不同,例如谷歌,百度等,推荐算法可以主动的向人们推送其想要的信息,只有等人们去搜索才会向用户提供相关信息。推荐算法主要可分为三类(1)协同过滤推荐算法;(2)基于内容的推荐算法;(3)混合推荐算法,协同过滤推荐算法主要是通过分析用户之间的相似性或者物品之间的相似性进行推荐,基于内容的推荐算法则是对物品本身的标签进行分析,比如对电影的类型进行分析,混合推荐算法则是将两者进行融合。目前协同过滤推荐算法是主流,但是不同的推荐算法都有各自的特点。

协同过滤的推荐算法

协同过滤的推荐算法主要是利用物品或者用户之间的相似性进行推荐,协同过滤推荐算法有助于缓解推荐系统所面临的冷启动和数据稀疏问题,在实际推荐中采用的相似性公式主要有cos余弦相似性公式,具体公式如下所示;

image.png

由于推荐算法主要是基于python或者pytorch,tensorflow等进行实现,pytorch和tensorflow都是用的python语法,本文主要用python代码表示一些简单的公式

import numpy as np
s=0
s1=0
s2=0
for i in range(len(x))
   s=s+x[i]*y[i]
   s1=s1+x[i]**2
   s2=s2+y[i]**2
sim=s/(s1**(0.5)+s2**(0.5))

没有用具体的数据,其实应该可以简化,大家可以多试试。当然根据不同的场景,可以使用不同的相似度公式。

基于内容的推荐算法

基于内容的推荐算法,对数据的要求往往比较高,要求数据是有标签的,但是他受到数据稀疏性等问题影响也比较小。基于内容的推荐算法往往会牵扯到一些NLP领域的一些知识,比如LDA主题模型(隐迪利克雷模型),LDA主题模型牵扯到的数学知识很多,比如多项分布,Beta分布。大家有兴趣可以阅读以下博客。

通俗理解LDA主题模型 - 百度文库 (baidu.com)

结语

其他的还没准备,剩下的内容再慢慢介绍吧