19. 学习人工智能如何从阅读论文中获取一手信息,并推荐一些技术论文

本文为 「茶桁的 AI 秘籍 - BI 篇 第 19 篇」

在这里插入图片描述

文章目录


Hi,你好。我是茶桁。

上节课给大家预告了,今天这节课咱们来看一篇论文。我们之前几节课中讲解的内容其实是在一些论文里面有使用到的。

我们先看一下论文的内容,讲讲 ALS。

就像我上节课结束的时候说过的,阅读论文也是一种能力。如果你想要未来获取一些新的方法,最直接的方式就看论文。怎么去阅读呢?今天详细给大家做一些分享。

咱们今天看的这些论文,都可以在这个课程的代码库里去找到。
在这里插入图片描述

先来看一下「Large-scale Parallel Collaborative Filtering for the Netflix Prize」这篇论文,就是咱们课上讲过的。

一般论文怎么看呢?我相信基本上大家都写过论文,只要是大学毕业的,最后都需要进行论文答辩,不过不知道有多少人发表过论文。有些学校可能会有要求在学校里面发表一些论文。

如果写过论文的可以知道,论文的结构一般看哪呢?先看前面这个 Abstract,这是一个综述。这里会非常浓缩的说明这篇论文告诉我们什么样的事情,什么样的一个结论,什么样的方法。后面就像八股文一样分层次的给你展示不同的一些模块。

「Large-scale Parallel Collaborative Filtering for the Netflix Prize」这篇论文作者是求了大规模的并行的协同过滤的方式来去求解 Netflix prize。这是百万美金奖励的那个内容。

今天看到这篇论文是在十几年前,06 年推荐系统刚刚开始的时候一个公司 Netflix 拿出来 100 万的美金奖赏的解决方案,如果你的解决方案提升 10%,第一名的人就会奖赏 100 万美金。为什么能花这么多的钱,因为它能给你带来价值远高于 100 万的价值。你想推荐的效果提升了 10%,用户更满意,粘性会更大。另外因为他是租赁 DVD,所以他的销售额肯定也会上升。

阿里的推荐系统里面的文章会告诉你他通过推荐系统可以让你的 GMV,整个的销售额提升多少。

在这里插入图片描述

它在 Abstract 里面告诉我们,它就使用了 ALS:Alternating-Least-Squares,然后又会加入了 Weighted-λ-Regularization,这就是加入了一个正则化项,做了一个工程的约束。

那在 Abstract 里面它告诉我们说它提升了将近 6%,5.91 个百分点。相比于 Netflix 的 CineMatch 这个推荐系统会有一些优化。方法是比较简单的,而且比较适合大规模的一些计算,这是整个的一个背景。

在这里插入图片描述

论文的结构前面会有个 Introduction,它会告诉你整个项目的背景,从这里可以看到内容推荐系统和协同过滤的推荐系统是两大主流的方向,

上面作者也提到 Netflix 自己做的这个推荐系统 CineMatch,它的 RMSE 是 0.9514,论文的方法得到的 RMSE 呢是 0.8985。RMSE 是越大越好还是越小越好?应该是越小越好,所以他比原来小了 5.91%。当你 k=1,000 的时候,k 越大,计算量越大,但是他的精度就会越好。

基于内容推荐刚才也提到,就是这些概念在论文里面前期也会有写到。

然后告诉我们 Netflix 有 48 万个用户,将近 18,000 部电影,超过 1 亿的评分,数据量还是非常大的,尤其在 06 年左右。
在这里插入图片描述

Netflix 的目标是提升 10%,那大家如果是从我仓库里下载的文档,里面是有一些笔记的。建议大家平时看论文的时候最好也能做一些笔记。

挑战有几点,第一个数据量非常大,是原来的 100 倍,因为整个有 1 亿的电影评分,确实很大。数据也很稀疏,告诉我们通过数据分析,前期数据探索,用户和商品之间的评论矩阵只有 1% 的数据是有的,非常稀疏。

同时数据也有噪音。为什么有噪音?因为时间跨度很大,1995 年到 2005 年,影响评分的人 10 年之间可能角色也会发生一些变化。之前是学生现在可能已经工作一段时间,有可能结婚了。所以感情或者说大家的状态也会发生不一样的变化,那这里的行为会有一些不太一样的情况。

当时这个场景的训练集和测试集还分布不太一样,比赛的评估是 2006 年的数据,而训练给你的 1995 年~2005 年。这也是一个背景。

第二个部分就是问题的描述定义。在问题描述定义里面先去做了一个 loss function,这是 LR 的 MSE。

在这里插入图片描述

r 减去预测的结果的平方和。

在这里插入图片描述

然后有 n 个样本的就除上 n

在这里插入图片描述

除了 loss function 的定义以外,后面作者还加了一个正则化项。正则化项的目的我们在课上给大家讲解了。

在这里插入图片描述

前面是问题的一个定义和抽象。第三个是提出来的方法。

提出来这个方法叫做 Weighted-lambda-Regularization,ALS 的方式。怎么做呢?下面就会有详细的定义,在之前课程里也给大家说过。

在这里插入图片描述

先初始一个矩阵,然后预测两个结果。这里的结果是 m 和 u。m 把它理解成是电影的矩阵,u 是用户。那么就是固定一个求解另一个,这是 ALS。固定 m 求 u,再固定 u 求 m,不断地去重复。

在这里插入图片描述

这是他提出来的 ALS 的这个方法,u 和 m 不断去优化。
在这里插入图片描述
这是在中间得出来的过程,ALS 就是交替最小二乘,每一次都是用的最小二乘法想要去求解这个参数,是按照导数等于 0 的情况下,可以把这个极值求出来。所以 u 可以求出来,同样 m 也能求出来,因为这两个是一个对称性的结构。

上面就把整个过程推导在论文里面写得比较清楚了,后面就要进行一些计算。当时 06 年,那阵还没有用太多的 Spark 这些工具,其实后面这个工具逐渐就兴起来了。在早期他还用的是一个 MATLAB,仿真的一些实验的工具。不过在 06 年的 MATLAB 就已经可以实现并行化的处理了。

在这里插入图片描述
所以作者在后面也详细的说明了他当时的一些实验环境。首先使用并行化的处理它的好处就是比单核计算机内存会更大,计算效率会更快一些。

在这里插入图片描述
这是他当时的过程,看一看这个结果,文章里面其实写的还是非常完善的,把当时的实验的结果也会给你进行说明。他告诉我们,如果你要用单台计算机要花 2.5 小时可以把 m 和 u 求出来,但如果你要用一个 30 核,相当于是并行处理这 30 个计算机,就变成了 5 分钟。

由 2.5 小时变成 5 分钟,大概 30 倍左右。所以 30 倍左右跟我们的并行计算是密不可分的,这是为什么我们在大规模的数据量级过程中可能会用到一些计算引擎。就像 Spark 一样,Spark 里面默认集成的就是 ALS 这个方法。因为数量集会非常多,那么采用多核,多台机器一起来进行分布式的计算可以大大提升我们的计算的效率。这是在作者在这篇文章里面给你进行了一个说明。

在这里插入图片描述
他在实验过程中采用的型号,CPU、内存的大小都会有相关的一个说明。同时也会把实验结果会告诉我们,
在这里插入图片描述
比如说实验结果他会有画一些图,中间实验参数有一些是超参数。有哪些呢?像 iteration 这种是超参数。我们可以调节不同的一些 iteration,随着 iteration 迭代次数的增加 RMS 是逐渐下降的。我们可以调节不同的 lambda,lambda 代表的就是你的正则化项的系数,从 0.03 到 0.065
每个过程中看一看哪一個正则化项的系数结果会更好。所以我们就直接把这个 loss 的曲线画出来了。方便你去看出来这个结果。

比如说最好的这个是 25 轮,25 轮里面大家都比较容易收敛,lambda 呢等于 0.065,0.065 是最下面的,这是 RMSE 最小的,他把求参的过程也告诉你了。

在这里插入图片描述

还有就是参数 k,叫 hidden featur, 隐分类,这个个数等于几也会写出来等等。
在这里插入图片描述

作者在论文里面也详细告诉我们 k 等于 1,000,达到了一个最好值 0.8985。那么 k 等于 1,000 是这 1,000 个 feature,其实后面从 400 到 500,这些 feature 呢它只增加了万分之六,所以增加的幅度还是非常有限的。从 500 到 1,000 只增加了万分之十五。就说当 k 越大肯定是有帮助的,但是到后面其实帮助已经越来越小了,所以在 k 等 1,000 以后就没有必要再去做一些拟合了。

单模型,一个模型 RMSE 呢就可以达到了 0.8985,提升了 5.56 的一个百分点,这是对比 Netflix 的 CineMatch。

此外作者在实验的这个过程中还告诉我们它除了这种模型以外还用了另外的两种模型,加到一起提升的效果会更好一点。哪些模型也在论文里面写到了
在这里插入图片描述

有 ALS,我们课上讲过的,KNN 邻近的方法,RBM,三种模型累加一起的话可以一共提升了 5.91 的百分点。这是他整个过程,最后做了一些展望。
在这里插入图片描述
在展望里面他也说明了主流的推荐系统就是有内容推荐和基于协同过滤的推荐。他们采用这种方法是基于协同过滤的一个推荐。
在这里插入图片描述

另外提出来的 ALS-WR 这种方法,即使你的隐分类特征很多也不会容易过拟合。你原来 k 多的情况下其实容易过拟合的,因为模型参数量会非常大。不容易过拟合是因为你加了一个正则化项,所以我们去掉的是那些抖动很大的系数,保留下来的应该都是那些可以让你的 k 值很高,但是每次学出来的这个参数都不会抖得很剧烈。

最后也能看出来比较常见的是混合策略。模型融合应该是在比赛中比较常见的策略,如果你想要在工程上面得到很好结果的话也可以用模型融合。你看在 06 年作者去打这个比赛的时候就用了三种模型,所以模型融合是一种标配。

没用可以在课后自己用一用,如果以前做过一些预测作业的话都会采用模型融合。那这篇文章也会告诉你模型融合是可以提升分数,他就明显使用三种模型是 5.91,一种模型是 5.96,这还是可以提升的。

在这里插入图片描述

另外他也告诉我们已经进入到互联网时代了,数据量越来越大,传统单机模式已经不太适合了。如果你做的是个工程版本的话需要并型处理,只不过 06 年他还用 MATLAB,而在后面 Spark 用的人也会很多。

那这篇论文中可以看到很详细的过程,从算法的背景,为什么要做这件事开始,再到这件事其他的人是怎么做的,然后问题的定义怎么定义的,推导怎么推导的,实验的环境用的 30 核的处理器。而且这个环境也做了两手对比,分布式的方式和单台计算机的时长,由 150 分钟到了 5 分钟。以及中间的调参的曲线。

所以看论文其实还是一个接受信息非常完善的一个维度,我们课上主要讲的 ALS-WR 这个方法实际上论文里面会包含更多的一些内容的信息点。它可以让我们了解出来你想要知道的,关于这篇论文的一个详细的过程。

那咱们也稍微介绍一下读一个论文的技巧。我不知道未来有多少小伙伴是想要从事算法工作,论文是直接方便你去了解一手的算法的。像人工智能算法优化的速度很快,每年都有大量的论文产生,你现在使用的这个方法可能过两年就不是主流了。想要获取信息怎么弄?如果你想要第一时间获取的话,阅读论文就是一个捷径。因为论文里面有很详细的过程的一个描述。

那阅读论文也不是一个很轻松的事,他也是一个痛苦和收获并存的过程。因为你可能会觉得调包不是很简单吗,一句话就 OK 了。但是看论文文字太多。这是一个问题。

还有什么问题?论文一般我们看的话英文更常见一点,因为那些比较好的期刊英文确实会更多一点。另外如果你想要发表出来一个成果,这个成果还很有影响力,基本上我们也会发到英文期刊。中国人也是一样,基本上应该都会发英文的。

那对于我们来说如果你看不懂,有一些是英文看不懂或者有些公式看不懂也很容易放弃,这个都是一些痛苦的过程。但是好的地方,一篇论文它的营养很高的,一篇论文产生需要 3-6 个月的时间。这个很正常,因为你需要做实验,实验做完你还需要调参,那个实验过程的话 3-6 个月其实还是很正常的。

除了这 3-6 个月以外,我们去投稿,投出来审稿人给你反馈意见也可能需要这么长的时间。每一轮的反馈都需要你的修改,所以你看到这个成品是他大量的时间的一个积累。

论文的话分成 EI 和 SCI。国内的人发表一篇 SCI 需要 1.8 年,其实这个时间会更长,有些快有些慢,平均下来的话大概是 1.8 年左右的时间。SCI 真正要发一篇这个时间年限还是有点长的。

你看到一篇论文的话都是别人已经花了大量的时间整理好的一个成果摆在你眼前。那么代码你会觉得很有快感,写完了一个代码运行起来很有成就感。

代码会给你一些交付感,那 paper 会给你更加坚定的基础,你更加知道这个方法的原理,调包的时候会更加的自信。所以未来要想从事算法研究工作,我这里指的不是调包工作,调包工作你没有必要去看论文。想要有更好的提升,Paper Reading 是必经之路。

那看论文用怎样的一些方法呢?给大家一些建议。第一,如果你去看一个新领域,你的工作有个新的方向要看这个新领域的话先看 Survey。Survey 代表的就是综述性的文章,综述性的文章就像一个导游一样,给你介绍的会很详细。

他会告诉你最新的研究进展(state of the art),在这个领域里面最好的技术模型是什么,哪些是奠基性的一个文章。比如说推荐系统,就把它分成了内容推荐和协同过滤推荐。现在大家使用哪些方法,还有就是告诉你有哪些是值得研究的地方,未来你要做研究工作可以往哪去做,哪些技术都比较成熟可以直接使用。

survey 就像是一个导游一样,对一个新进入这个领域去看,非常建议大家去看这样一个综述性的文章。

第二,我们有两类类型的文章,一种是会议,一种是期刊。一般来说会议的效率会更高,因为会议的时效性会更强,此外它的应用价值也会更强。

期刊就像写书,写专著是一样的,它的周期也会比较长,所以它的文章有的时候几十页也很正常。而会议一般 5-8 页,不会特别多。所以建议大家先关注一些国际会议,这国际会议的信息更新速度会比较快。

第三,有人希望不光是要看原理,还希望能仿真,能去实验。那怎么去拿到代码?也教大家一个方法,一般来说我们都有一些通讯作者,在文章里面都会有一些邮箱,你可以直接给作者写文件,也可以去看这个作者,如果是大学的教授一般都有 homepage。你在 homepage 里面去找他的邮箱,给作者去发 email。就说我对您的研究工作很感兴趣,希望能做一些仿真,能去在这个基础上来进一步来去做一些研究、开发和使用你的包。

那这里面有些人可能会回你,有些人可能不回你。咱们来猜一猜,国外的人回的概率大还是国内的人回的概率大?国外他也会把一些教授放到 homepage,上面会有些邮箱。

你想想如果是你,举个例子,你辛辛苦苦花了半年的时间写了一篇论文,又花了半年的时间把它发表出来。中间改来改去,整体上又花了一年的时间。那这阵就有个人写邮件说你的论文不错,但是我可能没有时间看,能不能把你的代码发给我我直接跑,我直接用。那这种过程中你会给吗?

这里其实就会遇到一些问题,现在国内的这种分享竞争越来越强了,以前的话绝大部分还是国外会稍微好一点点,你从他的 homepage 上可以看到前面可能会把文章会放上来,后面的话就直接给你个代码。愿意开源的都是菩萨。

国外相对来说这种开源精神会比较强,其实国外他也不傻,为什么?因为第一,国外讲究版权,我给了你的这个代码,如果你要进行了二次修改发布在发表新论文过程中会不会引用我呀?你看了我的论文,用了我的代码,在使用发表论文过程中如果不引用就会就会成为剽窃。所以他一定会引用,国外作者看中的是影响力。

那国外作者说我们希望你能在我的基础上来进行改进,这样的话我的影响力会很大。因为大家都引用我,我就会变成这个领域里的权威。所以大家用你越多其实证明你的影响力越大,这是国外的一个开源精神。

那国内其实这两年已经越来越好了,我看到了有很多的人也愿意去分享。越是大牛其实他就越愿意去分享,而且越愿意分享他就越容易成为大牛。没有一个大牛不分享代码能成为大牛的。所以我们可以去找这样的一些牛人去要一些代码,这个是没有问题的。

还有,看论文怎么看?论文太多了,也不建议大家所有论文都采用同样的功力来去看。我们把论文的阅读方式分为以下几种:

  • 粗读
  • 精读
  • 跳读

看论文不要追求每一个细节都懂,那这个真的是自己跟自己作对。那上大学的同学应该明白,在毕业的时候一年要看多少篇论文?这个论文是非常非常多的。如果你要把它完全都搞懂,其实你不可能看这么多论文。所以先一次性读完,一定会有很多不明白的地方,先把它标记下来。要分层的去做阅读,对于那些经典性的一些文章,很有营养性的文章可以反复读。对于那些大体上知道一下的文章,就找自己感兴趣的内容就可以了。

所以粗读是不用一次都要读明白,你可以多反复读几遍。

精读的部分就是要读到自己理解为止,尤其是那些重要的地方。举个例子,比如说矩阵分解或者说 ALS 的这个过程,你如果想要在这个基础上去做一些研究的话那你肯定要把这个过程的原理反复的去消化,去理解。所以这里也是要跟大家说,我的文章的内容也不要指望一次性就能完全消化掉,特别对于一些初学者来说,反复的吸收和练习。就是你的训练可以基于这些部分做一些加权的处理。

第三是跳读,不需要把每个部分都要读,甚至你可能跳过,直奔自己的主题。比如我们课程中给大家去用的这个工具,surprise。

surprise 是一个工具箱,这是一个它文档地址:https://surprise.readthedocs.io/en/stable/,就是操作手册。
在这里插入图片描述

比如我们在这里面搜一下 baselineOnly 这个方法,搜索结果就会给你这个方法有哪些,我们点进去可以看到每篇方法都有一个文章,因为算法它有可能会发表一篇文章,会对应它。他会直接告诉你,你直接读到 2.1 的 section 就好了。

在这里插入图片描述

那么你也不一定非要把所有的文章都看完,只要 2.1 的 section 里面你能把它消化理解,能告诉你他的原理就可以,没有必要去看他以前的背景,中间的实验结果,后续的展望。这些是论文的一个八股文的一个结构。你只要知道他中间一个定义,是怎么去定义的就 OK 了。所以跳读就是直接奔自己的主题,找自己答案就可以。而每次阅读的过程中因为它都是英文,所以建议大家跟我刚才过程是一样的,在旁边去做一些备注。

在这里插入图片描述

因为大家母语都不是英文,所以你加一些备注可以方便你自己来去做一些消化和理解。尤其是第二次来进行复习的时候会更快一点,这样就直接进入到你当时的一个笔记的环节就可以了。

那文章怎么找呢?在工作的人找论文会存在一些问题,因为有些学校的人直接可以从图书馆上进行下载。工作人如果你要下载论文这里也给你一些建议。

第一,找你的师弟师妹,让他们在图书馆上进行下载。

第二,在 Google 学术搜索(https://scholar.google.com.hk/?hl=zh-CN)上面实际上是有那种免费的链接的,通过他可以链接过去。

第三点,有个 arxiv 网站(arxiv.org),这个网站是一个预印本。什么是预印本?就是没有发表的文章他先发表在这里,它每一个月份都有 5,000 篇文,每篇文章涵盖的领域很多,有计算机的,有数学,有物理的,你在上面都可以去找到。

在这里插入图片描述

比如 SlopeOne 这篇文, 你在 arxiv 上面就可以去直接下载。即使是在工作的状态,在公司里面没有在学校的内网里面都可以去在 arxiv 上面去下载这篇文章。这是一个开源的,一个日本的在线数据库,每个人都可以去访问。

咱们之前讲解的课程实际上对应了 4 篇论文,第一个是刚才给大家看到的这篇论文,Netflix 的比赛。

  • Large-scale Parallel Collaborative Filtering for the Netflix Prize, 2008 (http://machinelearning202.pbworks.com/w/file/fetch/60922097/netflix_aaim08(submitted).pdf)

08 年发表的,大型的并型计算的协同过滤的方法。这个方法里面刚才也给大家简单梳理了,从前面的 Abstract 到 Introduction,再到中间提出来的方法,这个模型的实验的一些结果等等,最后的一些展望,都说的非常的清楚。在每一个过程中他都做了一个详细的一些对比,包括实验的一些环境配置等等。

那第二个你可以看一看 MF 矩阵分解的一些技术的原理

在这里插入图片描述

  • Matrix factorization techniques for recommender systems, [J]. Computer 2009 (http://cseweb.ucsd.edu/classes/fa17/cse291-b/reading/Recommender-Systems.pdf)

第三篇是 SlopeOne

在这里插入图片描述

  • Slope One Predictors for Online Rating-Based Collaborative Filtering, Computer Science, 2007(https://arxiv.org/pdf/cs/0702144.pdf)

SlopeOne 也是在 Surprise 默认集成的一个工具,论文提出 Slope One 协同过滤算法,易于实现和维护。论文中提到了 3 种算法:Slope One, Weighted Slope One, Bi-Polar Slope One。

还有就是 surprise 中的 BaselineOnly。

在这里插入图片描述

  • Factor in the Neighbors Scalable and Accurate Collaborative Filtering, Acm Transactions on Knowledge Discovery from Data, 2010(https://www.lri.fr/~sebag/COURS/BleiNgJordan2003.pdf)

刚才给大家看的 section 2.1,它是来自于这篇文章。

除了之前咱们课上讲解一些内容,一些算法原理来自于这 4 篇论文,未来也给大家推荐了一些论文。感兴趣的小伙伴,如果你们对这些系统感兴趣的话可以看一看这些论文。

  1. The Youtube video recommendation system, Acm Conference on Recommender Systems 2010 (http://www.inf.unibz.it/~ricci/ISR/papers/p293-davidson.pdf ) 1
  2. Mastering the game of Go without human knowledge,2017 (https://www.gwern.net/docs/rl/2017-silver.pdf)2
  3. Practical Lessons from Predicting Clicks on Ads at Facebook,2014 (http://quinonero.net/Publications/predicting-clicks-facebook.pdf)3
  4. Factorization Machines, 2010 (https://www.csie.ntu.edu.tw/~b97053/paper/Rendle2010FM.pdf)4
  5. Field-aware Factorization Machines for CTR Prediction,2016 (https://www.csie.ntu.edu.tw/~cjlin/papers/ffm.pdf)5
  6. DeepFM: A Factorization-Machine based Neural Network for CTR Prediction,2017 (https://arxiv.org/abs/1703.04247)6
  7. Wide & Deep Learning for Recommender Systems,2016 (https://arxiv.org/abs/1606.07792)7
  8. DeepWalk Online Learning of Social Representations, 2014 KDD (https://classes.cs.uoregon.edu/17S/cis607bddl/papers/Perozzi.pdf)8
  9. Node2Vec: Scalable Feature Learning for Networks, 2016 KDD (https://arxiv.org/abs/1607.00653)9
  10. Semi-Supervised Classification with Graph Convolutional Networks, 2017 (https://arxiv.org/abs/1609.02907)10
  11. Learning to rank for information retrieval (http://exp.newsmth.net/attachment/0dd952f21955fdfede030d8f5e9a9360)11
  12. Real-time Personalization using Embeddings for Search Ranking at Airbnb,2018 (https://www.kdd.org/kdd2018/accepted-papers/view/real-time-personalization-using-embeddings-for-searchranking-at-airbnb)12
  13. Deep Interest Network for Click-Through Rate Prediction,2018 (https://arxiv.org/abs/1706.06978)13
  14. Deep Interest Evolution Network for Click-Through Rate Prediction,2018 (https://arxiv.org/abs/1809.03672)14
  15. Deep Session Interest Network for Click-Through Rate Prediction, IJCAI 2019 (https://arxiv.org/abs/1905.06482)15
  16. AutoML A Survey of the State of the Art, KDD 2019 (https://arxiv.org/abs/1908.00709)16

有 YouTube 推荐系统等等,大厂的论文还是非常值得一读的。国外的话有谷歌、Facebook,国内有腾讯、阿里都还是很值得一看的。

第七条「Wide & Deep」这篇论文实际上是一个 Google 的实习生写的,他是个中国人。在 Google 时期的时候发表的论文。这个实习生是一个统计学的专业背景,所以他写出来这篇论文呢数学推导比较强。

后面还有一些内容都是来自于我们后面课程,有一些算法原理。如果你感兴趣的话,这些论文你可以去看一看,都有非常详细的一些介绍。

关注到哪些点?一个就是大厂的,还是希望可以划一些重点。可以去看一看它上面,大厂的文有个特点,就不光是有些新的算法,他还能告诉你这个算法里面怎么样做工程。因为工程里面要解决的是时效性的问题,海量数据处理的问题。那么你就会需要在算法上做一个折中,RMB 里面它怎么做折中,阿里怎么做折中,YouTube 提出了哪些优化的算子等等。这些都是在大厂的论文里面可以看到,学到一些内容。

有些小伙伴认为国内很少发推荐系统内容,其实还是有的,比如说淘宝,淘宝在 18、19 年这两年间就发表了三篇关于淘宝推荐系统的内容。还有一些综述内容,综述就在不同领域里面写内容。

那么这节课之后,大家思考一下

  • ALS 都有哪些应用场景
  • ALS 进行矩阵分解的时候,为什么可以并行化处理
  • 梯度下降法中的批量梯度下降(BGD), 随机梯度下降(SGD),以及小批量梯度下降有什么区别(MBGD)
  • 你阅读过和推荐系统/计算广告/预测相关的论文吗?有哪些论文是你比较推荐的。

那以上这些内容大家可以去搜索,查阅。结合咱们课上所讲的内容,好好的思考一下,争取内化为自己的东西。如果你有什么心得,可以在文章下留言,给更多的小伙伴提供一些想法和感悟。

那这其中,头 4 篇论文我已经下载好了,可以去课程的代码库中找到它们。剩下的,也可以根据我所提供的地址来去自行下载。

好,咱们最后预告一下,下一节课开始,咱们还是会继续看看推荐系统,我们来一起学习一下 SVD 矩阵分解,再来看看基于内容的推荐的相关内容。



  1. 最早的一篇 YouTube 的推荐系统的文章,2010 年整个系统比较简略,值得一读 ↩︎

  2. DeepMind 发表在 Nature 上的关于 AlphaGO 的论文 ↩︎

  3. Facebook 经典 CTR 预估 ↩︎

  4. FM 论文 ↩︎

  5. 关于 FFM 算法的论文 ↩︎

  6. DeepFM 论文 ↩︎

  7. Wide&Deep 论文 ↩︎

  8. 关于 DeepWalk 算法论文 ↩︎

  9. 关于 Node2Vec 论文 ↩︎

  10. 关于 GCN 图卷积神经网络 ↩︎

  11. 关于 Learning to rank ↩︎

  12. 关于 AirBnb 个性化推荐论文 ↩︎

  13. 淘宝关于 CTR 预估的论文 ↩︎

  14. 淘宝关于 CTR 预估的论文 ↩︎

  15. 淘宝关于 CTR 预估的论文 ↩︎

  16. AutoML 综述 ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/424184.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

unsubscribe:Angular 项目中常见场景以及是否需要 unsubscribe

本文由庄汇晔同学编写~ 在 Angular 项目中,经常会使用到 observable subscribe,但是 subscribe 读取了数据之后,真的就是万事大吉了吗?这个问题的答案或许是,或许不是。有些 observable 需要 unsubscribe,…

【研发日记】Matlab/Simulink技能解锁(四)——在Simulink Debugger窗口调试

前言 见《【研发日记】Matlab/Simulink技能解锁(一)——在Simulink编辑窗口Debug》 见《【研发日记】Matlab/Simulink技能解锁(二)——在Function编辑窗口Debug》 见《【研发日记】Matlab/Simulink技能解锁(三)——在Stateflow编辑窗口Debug》 Block断点 前文在Simulink编辑窗口…

嵌入式Linux中GPIO设置的一些基本指令和步骤

一、GPIO的介绍 嵌入式Linux中的GPIO(General Purpose Input/Output,通用输入/输出)是一种常用的接口,允许开发者直接控制硬件设备的某些引脚,进行诸如LED控制、传感器读取、设备状态监测等任务。 二、设置步骤和示例…

雷电将军部分技能AOE范围测试

简单说一下,以往的AOE范围数据大部分来自Dim提供的拆包文件或泄露的GM端控制台显示的距离数据,如《AOE范围学》中的数据,然而米哈游自1.6版本及以后未再公开泄露过GM端,因为一些原因Dim也没再更新拆包文件中角色技能参数相关的部分…

C2_W2_Assignment_吴恩达_中英_Pytorch

Neural Networks for Handwritten Digit Recognition, Multiclass In this exercise, you will use a neural network to recognize the hand-written digits 0-9. 在本次练习中,您将使用神经网络来识别0-9的手写数字。 Outline 1 - Packages 2 - ReLU Activatio…

服务器有几种http强制跳转https设置方法

目前为站点安装SSL证书开启https加密访问已经是件很简单的事了,主要是免费SSL证书的普及,为大家提供了很好的基础。 Apache环境下如何http强制跳转https访问。Nginx环境下一般是通过修改“你的域名.conf”文件来实现的。 而Apache环境下通过修改.htacces…

类与对象(一)

目录 1 什么是面向过程和面向对象 1.1举例 2类的引入 3类的定义 3.1类的两种定义方式: 4.类的访问限定符及封装 4.1访问限定符 4.1.1为什么要有访问限定符 4.1.2有哪些访问限定符呢? 4.1.3简单举例理解 4.1.4C中的class与struct的区别(面试问题…

Tomcat基础及与Nginx实现动静分离,搭建高效稳定的个人博客系统

目录 引言 一、TOMCAT基础功能 (一)自动解压war包 (二)状态页 1.登录状态页 2.远程登录 (三)服务管理界面 (四)Host虚拟主机 1.设置虚拟主机 2.建立站点目录与文件 二、实…

python 使用curl_cffi 绕过jax3指纹-Cloudflare 5s盾

现在越来越多的网站已经能够通过JA3或者其他指纹信息,来识别你是不是爬虫了。传统的方式比如换UA,加代理是没有任何意义了,所以这个时候我们就需要使用到curl_cffi 了。 1.TLS 指纹是啥? 在绝大多数的网站都已经使用了 HTTPS&am…

Java项目:32 基于springboot的课程作业管理系统(含源码数据库+文档免费送)

作者主页:舒克日记 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 管理员:首页、个人中心、公告信息管理、班级管理、学生管理、教师管理、课程类型管理、课程信息管理、学生选课管理、作业布置管理、作业提…

sprintboot集成flink快速入门demo

一、flink介绍 Flink是一个批处理和流处理结合的统一计算框架,其核心是一个提供了数据分发以及并行化计算的流数据处理引擎。它的最大亮点是流处理,是业界最顶级的开源流处理引擎。Flink最适合的应用场景是低时延的数据处理(Data Processing&…

⭐每天一道leetcode:13.罗马数字转整数(简单)

⭐今日份题目 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 100…

MATLAB知识点:条件判断switch-case-otherwise-end语句

​讲解视频:可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili 节选自​第4章:MATLAB程序流程控制 switch翻译成…

使用C语言 打印出所有的水仙花数

水仙花数 一.什么是水仙花数二.如何获取一个数的每一位数三.如何计算一个数有几位数四.计算出所有的水仙花数 一.什么是水仙花数 水仙花数的定义:“水仙花数”是指一个n位数,其各位数字的n次方之和确好等于该数本身,如:153=1^ 3&a…

寻找峰值[中等]

优质博文IT-BLOG-CN 一、题目 峰值元素是指其值严格大于左右相邻值的元素。给你一个整数数组nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可。 你可以假设nums[-1] nums[n] -∞。 你…

【Python】批量读取文件夹中的excel文件

示例展示 代码 import os import pandas as pd folder_path r"C:\Users\admin\Desktop\excelfile" extension"xlsx" files [file for file in os.listdir(folder_path) if file.endswith(. extension)] for file in files:filepath os.path.join(folde…

ChatGPT支持下的PyTorch机器学习与深度学习技术应用

近年来,随着AlphaGo、无人驾驶汽车、医学影像智慧辅助诊疗、ImageNet竞赛等热点事件的发生,人工智能迎来了新一轮的发展浪潮。尤其是深度学习技术,在许多行业都取得了颠覆性的成果。另外,近年来,Pytorch深度学习框架受…

运用qsort函数进行快排并使用C语言模拟qsort

qsort 函数的使用 首先qsort函数是使用快速排序算法来进行排序的,下面我们打开官网来查看qsort是如何使用的。 这里有四个参数,首先base 是至待排序的数组的首元素的地址,num 是值这个数组的元素个数,size 是指每个元素的大小&am…

数字化转型导师坚鹏:证券公司数字化转型战略、方法与案例

证券公司数字化转型战略、方法与案例 课程背景: 数字化转型背景下,很多机构存在以下问题: 不清楚证券公司数字化转型的发展战略? 不知道证券公司数字化转型的核心方法? 不知道证券公司数字化转型的成功案例&am…

第四十八回 解珍解宝双越狱 孙立孙新大劫牢-Python模块和包概念与使用

吴用对宋江说,有个人,他是石勇的关系,与祝家庄的峦廷玉关系好,还是杨林、邓飞的老相识,他有一计.... 原来在宋江攻打祝家庄的时间段,山东海边登州也发生了一件事。登州山下有一家猎户,弟兄两个…