谷歌Youtube推荐系统及其深度学习技术应用初窥 | 附算法全文下载 | 解读产品

by admin on 2020年1月12日

近日,在谷歌刊登的一篇论文中,YouTube工程师详细地分析了YouTube推荐算法的内部工作原理。该论文在上周于波士顿举行的第十次ACM大会上进行了展示。

点击蓝色字体,关注:九三智能控

一、引言

最近看了一篇有关深度学习在 google YouTube
视频推荐上的应用,现在将该文章的主要思路整理一下,供大家参考。

YouTube推荐算法以Google
Brain为基础,后者最近以TensorFlow的名称开源。借助TensorFlow,开发人员可以使用分布式训练试验不同的深度神经网络结构。该系统包含两个神经网络。第一个生成候选集。它以用户的观看历史作为输入,使用协同过滤算法在数以百计的视频中进行选择。开发和最终部署到生产环境有一个重要的区别,谷歌使用离线指标衡量算法性能,但最终的决定来自对性能最好的算法进行在线A/B测试。

Youtube2016年及2010年推荐算法全文下载,公众号回复:20180209

二、YouTube 推荐场景

YouTube的视频推荐场景大致有如下几个特点:

  1. 大规模:YouTube用户量多达1billion,视频数量也超过1billion,因此需要高效的分布式学习算法和在线服务系统来满足这种规模的推荐服务。

  2. 新鲜度:YouTube上每天会有超过100K的新视频被上传,因此要求推荐系统能够对新视频有足够的响应速度。而且在新视频和好视频之间的推荐有比较好的平衡,也就是我们常常说的exploration
    & exploitation。

  3. 噪音性:YouTube上的用户行为很稀疏,还充满了大量的噪音,而且上传的视频缺少结构化的meta数据,因此推荐系统对于噪音要有足够的鲁棒性。

YouTube的研究人员通过与其他团队如google
brain的人合作,在类似于tensorflow的开源深度学习的架构上开发出了本文所说的推荐算法。

候选集生成使用用户观看视频的隐式反馈来训练模型。与隐式反馈相比,对于一个视频,类似支持或不支持这样的显式反馈一般很少。对于那些不受欢迎的长尾内容而言,这个问题更为严重。对于新上传的视频,为了加快模型训练速度,每个训练示例的年龄会作为一个特征传入。发现和展示新内容的另一个关键方面是使用所有用户观看过的YouTube视频(甚至是合作网站的)来训练算法。这样,协同过滤算法可以立刻识别出热门视频。最后,除了实际的观看外,通过增加更多的特征,如搜索深度和视频年龄,YouTube改善了离线holdout结果精度。

背景介绍

三、推荐系统框架

本文介绍的推荐系统包括两个部分:

第一部分是“候选集生成网络”。利用用户的历史行为数据,采用一个深度学习网络粗略地从所有视频集合中检索出用户感兴趣的候选视频。这一步生成的后选集合是用户比较粗略的、广泛的兴趣集合。

第二部分是“排序网络”。还是通过深度学习网络对第一部分生成的候选集进行打分,然后将分数高的视频展示给用户。

澳门新葡亰信誉平台游戏 1

推荐系统架构图

具体的系统架构图如上图所示,该架构还可以支持其他候选集的接入。如传统的推荐算法所产生的推荐列表可以一同作为ranking的输入,就是上图中的”other
candidate sources”。

下面分别介绍一下这两部分的逻辑。

在后面的描述中,为了方便叙述,并与国内其他做推荐的称呼一致,我们把候选集的生成叫做推荐召回,然后把排序网络叫做推荐排序

第二个神经网络用于对这几百个视频进行排序。这个问题比生成候选集简单许多,因为视频的数量较少,而且,对于每个视频及其和用户的关系,有更多的信息可用。该系统使用逻辑回归计算每个视频的得分,然后不断地使用A/B测试进行改进。这里使用的指标是预期观看时长,因为预期点击数会助长“点击诱饵(clickbait)”。为了基于观看时长而不是点击率进行训练,该系统使用了逻辑回归的一个变种,以观看时长作为正相互作用权重,而负相互作用采用单位权。这之所以可行,部分原因是,“正面印象(positive
impressions)”分量比总数小。

       推荐系统将成为 Deep Learning
最重要的应用领域之一。落地场景主要在各个行业的精准营销场景,如电商产品推荐、电影音乐推荐、房屋推荐等。本质上解决的是各种信息过载背景下,个人定制化信息需求澳门新葡亰信誉平台游戏,的有效满足问题,最高级的推荐不是找到你知道的需求(母爱式),而是让你发现自己不知道的喜好(父爱式),进一步拓展你的认知。

四、推荐召回

前面介绍,推荐召回阶段要在所有视频集合中检索到符合用户兴趣的候选集,大约筛选出几百个候选的列表。本文主要采用了一种类似于Matrix
Factorization的方法,将推荐列表的筛选过程当成一个多分类问题。既在给定某个用户(包括该用户的行为)、上下文、以及所有视频集合的情况下,预测出用户在t时刻会看某个视频i的概率。

澳门新葡亰信誉平台游戏 2

公式中,u是用户、上下文的embedding向量,v是视频的embedding向量。向量的embeding是通过神经网络,利用用户的历史行为数据以及上下文数据训练学习而得到。即用户的embedding向量与神经网络的参数是联合训练而得到。

需要注意的是,虽然YouTube有用户的显式打分数据,但是文中用到的是用户的隐式反馈数据,主要是用户的隐式数据比较多,而显式数据比较稀疏。

澳门新葡亰信誉平台游戏 3

推荐召回模型

上图比较清晰的展示了如何利用深度神经网络来进行用户历史、上下文embedding的。

  1. 首先是将用户观看过的视频id列表做embedding、取embedding向量的平均值,得到观看embedding向量

  2. 同时把用户搜索过的视频id列表也做如上的embedding,得到搜索embedding向量

  3. 用户的人口统计学属性做embedding得到特征向量。

  4. 一些非多值类的特征如性别,还有数值类特征直接做为神经网络的输入。

  5. 还有一些数值类特征,可以利用经验知识,对其进行变换。如对年龄特征进行平方操作,然后作为新的特征。

此外,作者还提出了一些数据与特征选择方面的经验:

  1. 样本时间特征:训练时的样本用到了好几个月的数据,而作者通过统计发现一个视频被用户观看的概率不是平稳的,在刚上传时会有一个山峰,然后随着时间的流逝,观看概率会缓慢下降,然后趋于平稳。因此通过把样本的时间作为特征可以捕捉到这种变化曲线。

  2. 样本筛选:为了捕捉用户的兴趣趋势,样本不仅仅用推荐的展示、点击日志,而是用到了所有的包括其他非推荐页面的日志数据。这样,用户在其他页面的行为也可以快速被捕捉到,然后在推荐的页面也能反应出用户的兴趣。

  3. 上下文选择
    一般来讲,大家衡量一个算法的效果是都是通过交叉验证来完成的。在进行交叉验证时要注意的是非对称的同看,既用户看完A之后可能会看B,但是看完B之后不一定会看A,即这种关系是非对称的。因此在进行交叉验证是,这里选择用之前的日志来训练模型,然后对当前时刻的行为进行预测。不然的话,可能会出现“交叉验证时AUC提升但是线上效果却反而下降”的情况。

通过上文介绍的神经网络对用户历史、上下文进行embedding后,得到每个用户的特征向量。在线服务在用户请求时,通过计算该用户的特征向量,然后与语料库中的视频向量做内积,检索出内积值最大的几百个推荐候选列表。这里需要与所有视频库的视频向量做内积,时间花费太大,文中采用了一种hash的快速算法。

YouTube的推荐系统是业内最为复杂、使用最为频繁的系统之一。这篇论文只提供了一个肤浅的介绍,但即便如此,它也在深度学习系统设计方面提供了一些有用的见解。

主流方法有三种:

五、推荐排序

排序的目的是要利用展示、点击(或转化)数据,然后加入更多的上下文、用户、物品特征,对推荐候选进行更精细的修正、打分。

澳门新葡亰信誉平台游戏 4

推荐排序模型

如上图所示的推荐排序框架图,除了对用户看到过的视频ID进行了embedding、对该次展示的视频ID也进行embedding,同时还对用户语言和视频语言等进行了embedding。

推荐排序中有几点需要注意的地方:

特征工程
虽然深度学习可以自动学习、捕捉出一些人工无法观测到的特征,但是一些人工已知的、被证明有效的特征工程的工作还是建议做一些,比如描述某个视频展示次数、点击次数的特征,需要做一些统计的工作。

类别特征 :
对类别类特征,如该视频所属的类别,可以取topN的类别进行embedding,然后作为神经元的输入。

连续特征
对连续值类的特征进行归一化,对连续值类的特征进行分片累积将其归一到0~1之前;还可以对某些特征进行取根号、取对数和取平方的相关操作。这些其实都是特征工程的工作。

英文原文:How YouTube’s Recommendation Algorithm
Works

1.基于内容:对信息的内容进行建模,比如你看了电影《教父》,会根据内容属性推荐给你《英雄本色》等更多的类似时代类似内容的电影

六、实验结果

论文中没有直接对视频是否点击进行建模,而是对用户观看该视频的时间进行建模。当然,也不是直接预测用户对视频的观看时间,而是把视频的观看时间,转换成训练时的样本的权重,也就是通过加权逻辑回归的方法来间接对观看时间建模。

这样的话,离线衡量效果的指标也不是大家常用的AUC,而是一种叫做“加权单用户损失”(weighted,
per-use loss)的指标。具体的计算过程是这样的:

对一个用户的当时展示及其点击数据,如果一个展示没观看的视频的打分比一个观看的视频的打分要高,那么就把这个观看过的视频的时间叫做未预测观看时间,“加权单用户损失”就是所有未预测观看时间的总和占所有观看时间的百分比

下图是推荐排序阶段采用不同神经网络结构下的实验结果数据:

澳门新葡亰信誉平台游戏 5

推荐效果

作者 Alex
Giamas ,译者 谢丽

2.基于用户:按相似人群的兴趣进行建模,比如你的好朋友买了一辆特斯拉,根据你们的口味相似性,系统会把同款车推荐给你购买

七、总结

作者采用深度学习的方法来替代我们常用的各种推荐算法,如协同过滤算法、基于内容的推荐。对用户的embedding其实有点类似与Matrix
Factorization的思想,所不同的,一是MF算法是对用户和物品直接线性变换,而本文是用神经网络,二是MF一般都是拟合用户对物品的偏好分,而本文却把推荐问题看成是分类问题,采用了交叉熵损失函数进行训练。

在推荐排序时候,作者也是采用了神经网络对候选集进行打分,对ID类特征,类别特征也是采用了同样的embedding策略。只不过训练时采用了观看时间对样本进行了加权,既文中所说的加权逻辑回归。

来自:InfoQ

3.混合方法:出于实际应用场景的冷启动(先验数据匮乏)、数据稀疏性(数据不完备)等实际困难的考虑,必须集成多种方法达成实际效果

技术趋势:随着信息量的爆炸、建模复杂性提升、推荐响应时间要求的提高,AI技术的应用是必然,谷歌、Netflix、亚马逊等公司均在其产品中广泛应用基于AI的推荐算法。

主要性能指标:

准确率:推荐的结果与实际选择的符合程度

召回率:推荐的结果占所有实际选择的比例

比较粗暴的就是点击率,订单贡献率、点击率、留存时间的提升等

谷歌Youtube推荐系统有关工作

谷歌、Netflix、Facebook、亚马逊,国内的今日头条、百度、阿里巴巴、京东等均在推荐系统方面做了大量工作,谷歌当然是其中执牛耳者之一,绕不开的存在,其中Youtube中使用的成功为行业所乐道,让我们来扒一扒里面有什么好东西值得学习借鉴。

实际的YouTube推荐系统在不断的改进。

       YouTube推荐的技术带头人Jim
McFadden说:“我们知道,人们来YouTube是来找他们想要的东西,但我们还希望,在人们不知道他们想要找什么的时候,同样满足他们的需求。”McFadden从2011年就加入了这家公司。YouTube较精确推荐视频的根源:Google
Brain
,它是YouTube的母公司Google的人工智能部门,YouTube从2015年开始使用它。Google
Brain并不是YouTube第一次尝试使用AI,YouTube此前曾把Google建立的Sibyl系统中的机器学习技术应用到推荐算法中。然而,Google
Brain引入了一种无监督学习的技术,它的算法能在不同的输入中寻找到联系,这是软件工程师们从未曾想过的。

      把Google
Brain整合到YouTube中有一个重要的影响:人们在YouTube上看视频的时间,现在有超过70%都来自YouTube的推荐算法。每一天,YouTube会推荐两亿个不同的视频给用户,涉及语言有76种。和三年前相比,人们在YouTube主页上看视频的总时长增长了20倍

  

     
 在过去的12年时间里,YouTube已经把自己从一个搜索驱动的网站转变成了一个为自己目的服务的网站。要到达自己的目的地,它需要成百上千种尝试、大量的重新设计,以及在人工智能方面的巨大飞跃。但真正让YouTube提升的还是它朝Feed的方向进化。 
     

     
 YouTube的方向只说明了Feed模式在变得更重要。一种前所未有的视频存储增长,辅以前所未有的个人化定制技术,将会创造出让人难以拒绝的东西。YouTube现在会调查用户有多喜爱它们推荐的视频,长此以往,调查的结果会让YouTube更加智能,从而让更多视频内容被消费。

       举个例子,一个Google
Brain算法会给一个移动应用用户推荐短小的视频,但给YouTube
TV的用户推荐长一些的视频。它猜测,根据平台的不同推荐不同长度的视频会最终提升观看时长,它是正确的。YouTube在2016年实施了190多个类似这样的改变,而今年计划要做出300个改变。YouTube发现小组的产品经理Todd
Beaupre说:“现实就是,它是随时间推移累积起来的一大批微小的改进。对每一个改进来说,你都要尝试10件事最终实施一件事。”

       一个用户的亲身感受:去年某一天,当我正在玩一款名为《冤罪杀机
2》的电子游戏时,我在YouTube上常规搜索了一下,看看这个游戏中一个棘手的部分怎么通关。像往常一样,我找到了回答我这个问题的一个视频。但当我下次打开YouTube的时候,网站却给我推荐了更多更复杂的关于如何玩这个游戏的视频:玩家如何玩这个游戏而不被敌人发现的视频剪辑;玩家用高超的方法杀死每一个敌人的视频剪辑;采访游戏制作者的视频;精彩绝伦的讽刺评论。我只是去YouTube搜索一个问题的答案,它却像我展示了一个全新的宇宙。

     
 后来,我发现自己每天都会访问YouTube好几次。大多数时候,我打开这个网站都没有什么特别的目的,我已经习惯了被动地让网站自动给我推荐点什么我可能喜欢的东西。一月份的时候,我开始痴迷于一个叫Pinegrove的民谣乐队,几个礼拜的时间里,YouTube给我推荐了几乎所有上传到它服务器的这个乐队的现场演出视频。当我春天住进一个新公寓的时候,开始越来越多地做饭,在我搜索了一次如何做意大利面包沙拉之后,YouTube很快就让我认识了它的家庭主厨阵营:Byron
Talbott、Serious Eats频道的J. Kenji López-Alt,以及Tasty等等。

2016年和2010年YouTube发表的两篇论文

Deep Neural Networks for YouTube Recommendations,2016

下载地址见本文开头

     YouTube
所使用的推荐系统是现在最大规模的、最先进的业界的推荐系统之一。在这篇论文中,我们在较高层面上描述这个系统,并重点关注了深度学习所带来的巨大的性能提升。本论文根据典型的两阶段信息检索的二分法(two-stage
information retrieval
dichotomy)分为两部分:首先,我们详细描述了一种深度候选生成模型(deep
candidate generation model),接着描述了一种分离的深度排名模型(deep
ranking
model)。通过设计、迭代、维护一个带有巨量面向用户的影响的巨型推荐系统,我们还提供了实用的经验教训和见解。

系统介绍

     我们的推荐系统的整体结构如图
1所示。系统由两个神经网络组成:一个用于候选生成,一个用于排名。其中候选生成网络从用户的
YouTube
活动历史中提取事件作为输入,然后从一个大的视频库中检索出一个小数据集(上百个视频)。这些候选被认为通常与用户有很精准的相关性。这个候选生成网络仅通过协同过滤(collaborative
filtering)提供广泛的个性化。用户之间的相似性可以通过粗粒度特征(例如视频观看的
ID、搜索查询单词以及人口特征统计)表达。

  一个推荐列表中出现的一些「最好」的推荐需要一种良好的表征,以在具有高召回率(recall)的候选集中区分相对的重要性。排名网络通过使用一个描述视频与用户的特征集合的期望目标函数来给每个视频打分,从而完成排名的任务。根据它们的得分,然后将最高分的视频展现给用户。

  两阶段的推荐方法允许我们从一个很大(数百万)的语料库中进行推荐,与此同时还仍有在设备上出现的少量视频是个性化的吸引用户的内容。此外,这个设计能够和其他源生成的候选进行混合,例如在这一项早期工作[3]中描述的。

  在开发过程中,我们广泛地使用了非网络的指标(准确度、召回率、ranking
loss)来引导我们的系统的迭代改进。然而,为了最终测定一个算法或模型的效果,我们依靠于通过实时实验进行A/B测试。在一个实时实验中,我们能度量在点击率、观看时间与许多度量用户参与度的指标中不易察觉的变化。这是非常重要的,因为实时A/B测试结果不总是与离线实验有相关性。

澳门新葡亰信誉平台游戏 6

 图2:推荐系统架构:候选视频通过「漏斗」状的流程从大量视频中被检索出来并进行排名,然后再将其中一小部分展示给用户。

澳门新葡亰信誉平台游戏 7

结论

  我们描述了我们用于推荐 YouTube
视频的深度神经网络架构,划分为两个不同的问题:候选生成与排名。

  我们的深度协同过滤模型能够吸收很多信号并使用深度的层对它们的交互进行建模,其性能优于
YouTube 原来使用的矩阵分解方法。比起科学,选择推荐的代理问题(surrogate
problem)更像是一门艺术;而且我们发现通过获取不对称的联合观看行为(co-watch
behavior
)和预防未来信息的泄露,对未来观看的分类可以在实时评估中表现良好。抑制来自分类器的判别信号也是获得好的结果的关键,否则模型将会对代理问题过拟合,不能很好地转换到主页。

  我们发现使用训练样本的年龄作为输入特征,移除了相对于过去的固有偏差(bias),并允许模型表达受欢迎视频的时间依赖行为。这种改进的离线保持了精确率,同时在A/B测试中显著地增加了最近上传视频的观看时间。

  排名是更经典的机器学习问题,但是我们深度学习方法在性能上超过了之前对观看时间预测的线性与基于树的方法。推荐系统尤其受益于用户过去和事物之间的行为这样专门的特征。深度神经网络需要对类别和连续特征的特殊表征,我们对其分别使用嵌入与分位数标准化(quantile
normalization)进行变换。我们发现深度的层可以有效地对数百个特征的非线性交互建模。

  逻辑回归(Logistic
regression)根据给训练样本赋予权重进行修改,其中给观看时间正样本,没有观看的是负样本,从而让我们可以学习接近模型预期观看时间的几率。这种方式相比于直接预测点击率,可以在观看时间权重排名评估指标上表现得远远更好。

The YouTube Video Recommendation System, RecSys2010

下载地址见本文开头

目标:

用户访问youtube视频有多种情况:1)直接访问,2)搜索/目标导向的浏览,3)被感兴趣的内容吸引。个性化视频推荐是为了增强最后一种情况。所以其目的是为了帮助用户找到与他们兴趣最相关的高质量的视频。

推荐分类:

top-N recommender

挑战:

视频由用户上传;视频数量庞大;用户与视频的互动短暂且充满噪声(缺乏明确意图信息相对于netflix的视频租赁服务);视频生命周期短。

系统设计:

推荐内容足够新、丰富并且贴近用户最新动作。而且能让用户理解为什么一个视频推荐给他们。

推荐视频集合时有用户个人动作产生,包括观看、收藏、喜欢的视频作为种子视频,并找到扩展视频集合。

从工程角度出发,希望系统的每个部分彼此独立。

输入数据:

1)内容数据-如视频信息数据:标题、描述等等。

2)用户行为数据-分为显式和隐式两类,显式包含用户主动评分、收藏/点赞、订阅;隐式包含用户观看视频过程中的互动,如长观看等。

两类数据都充满噪声,特别是隐式数据可能不完整(在收到长观看上报前用户已关闭浏览器)。

相关视频:

要找到一个视频v_i的相关视频R_i,这里定义“相关”的意思为用户看了种子视频v后喜欢看的视频。寻找相关视频的算法属于规则挖掘或称为共同访问计数。例如:在给定时间段里(如24小时),计数两个视频一同被看的次数,即共同访问计数:c_ij。

本质而言,这个方法会倾向于较不热门的视频,因为分母其影响作用的是待选视频j的播放次数。

然后,基于相关得分r(v_i,
v_j)用top-N的方法,对种子视频v_i选择相关视频集合R_i。注意,这里会增加一个最小得分临界。因为有很多视频播放量太少,共同访问次数也很少,无法计算一个可靠的相关集合。

除此以外,还有很多问题需要解决,如描述偏向、噪声观看数据等等。另外额外一些数据也可以被使用,如视频观看的顺序和时间戳等。相关视频可以被看作视频集合的有向图

生成推荐候选:

合并用户行为和相关视频的关联规则。对给定种子视频集合S,为了获得推荐候选,该算法沿相关视频图的边扩展种子视频。对种子视频集合中的v_i,考虑它的相关视频R_i,并求相关视频的合集

排名:

基于信息1)视频质量;2)用户特征;3)多样性,进行排名。

视频质量用来衡量视频被接受的程度,包括:播放量,评分,评论,收藏,分享,以及上传时间等。

用户特征是用户的口味和喜好的量化,如用户的观看历史(其中每个视频的播放量和观看时长)等。

使用线性合并的方法可以对候选视频生成一个列表,因为最终只显示小部分推荐视频,所以要从候选列表中选合适的子集。这里的算法不选择最相关的,而是在相关性和多样性之间优化平衡。因为用户在不同的时间会有多样的兴趣,所以在候选集合里彼此特别相似的视频会被去掉先。一个简单的实现方法是限制来自同一频道的被推荐的(同类里特别相似的)视频数量。更为复杂的方案有主题聚类和内容分析。

用户界面:

所有推荐视频会显示缩略图、标题、上传时间、播放量。Youtube增加了在推荐视频上的解释连接说明被推荐的视频与种子视频的关系。同时,Youtube给予用户选择推荐多少和在什么位置推荐的选项。

执行:

分为三个主要部分:1)数据收集;2)推荐生成;3)推荐服务。

Youtube使用预先计算而非按需计算推荐。好处是在推荐生成的步骤可以访问大量数据,并且在推荐时的延迟很短。不足之处在于推荐生成和推荐服务之间的时延。加速的办法可以是一天里多次更新,并行处理。

原始数据收集上后,会进行有效数据提取,然后按用户维度存储在bigtable。推荐生成基于mapreduce计算,并且处理所有用户/视频图关系。生成的数据相对较小,作为只读集合放入web服务器。获取推荐结果的请求时间基本上取决于网络传输时间。

评价:

使用A/B
testing。实时流量会被导入不同组,每个组会曝光一个新特征,如数据或UI。不足之处是合理的控制分组,而且每组要有足够的流量产生统计结果。

主要的衡量指标包括

· CTR

· Long CTR(只计算被观看的部分)

· Session length

· Time until first long watch

· Recommendation coverage

结果:

Youtube的推荐占了总视频点击的60%。表现偏见是衡量结果时需要考虑的因素,如从首页的推荐和在其他位置的推荐结果会有偏颇。为了调整这个,可以观察从浏览页来的CTR,并且比较其他算法生成的视频集合,如a)最多观看;b)最多收藏;c)最高评分等。

在测量21天的结果中,可以看到所提出算法的CTR是最多观看的视频集合的207%。而最多收藏和最高评分都远低于最多观看的。

拓展资源:

  • Google 发表的一篇音乐相关的 deep learning 论文,「Temporal Pooling
    and Multiscale Learning for Automatic Annotation and Ranking of
    Music Audio」

  • The YouTube Video Recommendation System, RecSys2010

  • Deep Neural Networks for YouTube Recommendations,2016

  • 《Collective_Intelligence》,中译名《集体智慧编程》

  • 《recommender systems handbook》

参考资料

  • YouTube整合Google Brain推荐算法,视频播放量提升20倍,原作者: Casey
    Newton,来自: AI前线

  • Google新闻个性化推荐引擎,《推荐系统》

  • 谷歌技术论文:用于YouTube推荐的深度神经网络:


善用智能之道:行业动态、技术前沿、产业服务,欢迎关注联系:九三智能控

澳门新葡亰信誉平台游戏 8

微信群:可申请进入微信群交流,不定期分享资料,拓展行业人脉。添加微信:yan_kylin,注明名字+研究领域/专业/学校/公司。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图