10分钟掌握推荐算法从古至今

2024-09-03 21:08

本文主要是介绍10分钟掌握推荐算法从古至今,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言:

就2016-2022最近几年来看,很多做算法的岗位招聘信息都要求硕士学历起步,但有的也非必要条件;所以劝退第一学历非重点本科的童鞋,有些公司、岗位卡学历,其实其他研发岗也挺好的,不少公司算法跟其他研发岗是同薪的,没有必要在自己不占优的方向上死磕。以下原创皆本人自身理解以及推荐看过的部分好文,若有疏漏,不吝赐教。

  1. 传统机器学习篇

入门阶段还是建议从传统机器学习开始,一来因为传统机器学习相对简单,方便工程上实现并快速部署,二来是不少深度学习中的算法都是在传统机器学习的基础上改进而来的。这里着重掌握三组基础模型:

第一组:UCF、ICF、基于物品内容的协同(不要跟物品协同搞混,前者的相似是基于用户行为的,后者是基于内容的),这几个较简单,不解释;

第二组:MF(不要跟ALS搞混,als是它的求解算法)、FM(相当于LR加poly2结合矩阵分解,注意FM我们常做embeding召回模型,此时没有LR部分,相当于只有二阶交叉部分,用到的user的embeding表示是user自身各个特征的隐向量相加[分配律、交换律自己转下],并没有用户自身的性别、职业等特征交叉,item同理);

第三组:LR+GBDT、xgboost、lightgbm,这里还是看人家写的吧,先大致看下信息熵相关的:

为什么交叉熵(cross-entropy)可以用于计算代价? - 知乎

散度_百度百科

机器学习-一文理解GBDT的原理-20171001 - 知乎

深入理解LightGBM - 知乎

对于工业化场景使用LR,初学者在小公司自学容易忽略特征离散化,不知道利用GBDT的叶子结点索引,将特征处理成0-1形式也是重要的一环,无非就是多些维度罢了。

  1. 深度篇

自2016年谷歌的AlphaGo成为第一个在 19×19 棋盘上战胜人类围棋冠军的智能系统,深度学习算是真正火起来了。在接触深度学习之前,需要先了解一些基础:

universal approximation theorrm:

神经网络为什么能够无限逼近任意连续函数? - 知乎

万能近似定理(universal approximation theorrm)_郭云飞的专栏-CSDN博客_万能逼近定理

One hot、multi hot到Word2vector embeding:

笔记1 one-hot、embedding - 知乎

https://blog.csdn.net/weixin_45918732/article/details/103375037?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~aggregatepage~first_rank_ecpm_v1~rank_v31_ecpm-1-103375037.pc_agg_new_rank&utm_term=%E8%BE%93%E5%85%A5%E5%B1%82%E4%B8%8EEmbedding&spm=1000.2123.3001.4430 

RNN在NLP领域与CNN在CV领域,与推荐领域侧重点差异:

DNN、RNN、CNN.…..一文带你读懂这些绕晕人的名词 - 知乎

其他如BN加快训练,防止梯度消失;激活函数选取等基础暂时没记得好的文章介绍。

有了以上基础后,着重掌握部分模型:DSSM、mind、dsin、deepfm、DCN、DCNv2、xDeepFM等;其他类似的模型也不少,但不建议看太多,这里推荐看:

深入理解推荐系统:特征交叉组合模型演化简史 - 知乎

【微软2018】推荐系统组合显示和隐式特征交叉模型(xDeepFM) - 知乎 (CIN三维矩阵那里似乎不对,看上面那个吧)

https://github.com/shenweichen/DeepCTR (双刃剑,自己造轮子理解更深)

https://github.com/shenweichen/DeepMatch

这里重点是xdeepfm,既然看到了xdeepfm,想必deepfm跟dcn已经看完了;xdeepfm的特点在于它的CIN网络做了显示的向量级别的高阶特征交叉,相当于FM跟DCN cross layer的结合,同时还引入了CNN。从公式上看,xdeepfm这里CIN若退化到深度为1时,去掉CNN卷积与sum pooling便相当于deepfm;fm只有用户ID和商品ID时,去掉LR部分便是我们的MF矩阵分解。

  1. 未来篇

技术迭代演进挺快的,每年都要找几个上一年的最新模型学习。不管怎样都还是要先继续学习吧。

很多人都说IT研发35岁瓶颈,确实公司不需要那么多十年以上的资深专家,更多的是需要三五年经验的年轻搬砖主力。由于金字塔效应,那些老去的工程师不可能人人当上技术总监。从公司成本角度讲,35岁以上的研发太贵,从管理角度讲,资历浅的年轻人更听话,不用那么担心恃才傲物的情况。

以后的路,且行且看吧!共勉!

这篇关于10分钟掌握推荐算法从古至今的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1134048

相关文章

Python将大量遥感数据的值缩放指定倍数的方法(推荐)

《Python将大量遥感数据的值缩放指定倍数的方法(推荐)》本文介绍基于Python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处理,并将所得处理后数据保存为新的遥感影像... 本文介绍基于python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处

Golang的CSP模型简介(最新推荐)

《Golang的CSP模型简介(最新推荐)》Golang采用了CSP(CommunicatingSequentialProcesses,通信顺序进程)并发模型,通过goroutine和channe... 目录前言一、介绍1. 什么是 CSP 模型2. Goroutine3. Channel4. Channe

Python中的随机森林算法与实战

《Python中的随机森林算法与实战》本文详细介绍了随机森林算法,包括其原理、实现步骤、分类和回归案例,并讨论了其优点和缺点,通过面向对象编程实现了一个简单的随机森林模型,并应用于鸢尾花分类和波士顿房... 目录1、随机森林算法概述2、随机森林的原理3、实现步骤4、分类案例:使用随机森林预测鸢尾花品种4.1

Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单

《Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单》:本文主要介绍Springboot的ThreadPoolTaskScheduler线... 目录ThreadPoolTaskScheduler线程池实现15分钟不操作自动取消订单概要1,创建订单后

轻松掌握python的dataclass让你的代码更简洁优雅

《轻松掌握python的dataclass让你的代码更简洁优雅》本文总结了几个我在使用Python的dataclass时常用的技巧,dataclass装饰器可以帮助我们简化数据类的定义过程,包括设置默... 目录1. 传统的类定义方式2. dataclass装饰器定义类2.1. 默认值2.2. 隐藏敏感信息

Spring Boot 中整合 MyBatis-Plus详细步骤(最新推荐)

《SpringBoot中整合MyBatis-Plus详细步骤(最新推荐)》本文详细介绍了如何在SpringBoot项目中整合MyBatis-Plus,包括整合步骤、基本CRUD操作、分页查询、批... 目录一、整合步骤1. 创建 Spring Boot 项目2. 配置项目依赖3. 配置数据源4. 创建实体类

Java子线程无法获取Attributes的解决方法(最新推荐)

《Java子线程无法获取Attributes的解决方法(最新推荐)》在Java多线程编程中,子线程无法直接获取主线程设置的Attributes是一个常见问题,本文探讨了这一问题的原因,并提供了两种解决... 目录一、问题原因二、解决方案1. 直接传递数据2. 使用ThreadLocal(适用于线程独立数据)

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

康拓展开(hash算法中会用到)

康拓展开是一个全排列到一个自然数的双射(也就是某个全排列与某个自然数一一对应) 公式: X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[1]*0! 其中,a[i]为整数,并且0<=a[i]<i,1<=i<=n。(a[i]在不同应用中的含义不同); 典型应用: 计算当前排列在所有由小到大全排列中的顺序,也就是说求当前排列是第

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于