
                            
                            因收到Google相关通知，网站将会择期关闭。相关通知内容
                            
                            
                            156 近在咫尺，走进人工智能研究
                            在前面两次的分享里，我们聊了一些在人工智能领域快速入门的捷径，以及面对不同的论文或别人分享的技术实践，我们该如何来选择技术。我们今天来看另一个话题：如何做人工智能研究。

对于初学者来说，可能很多人会觉得人工智能研究离自己比较远，在工作中一时半会儿也接触不到。但实际上，我们有必要了解做研究的一些基本原理，而且这些思路能够应用到我们的日常工作中。

对于中高阶的工程师来说，能够在研究方向更进一步，我们就可以更好地理解优秀的学术论文是怎么写成的，能够快速挖掘出论文的核心价值。同时，也可以把自己手上的工作总结成论文发表出去，真正参与到学术社区的建设当中。当然了，即便我们不以写论文为目的，用做研究的标准来要求自己平时的工作，也可以让很多工作更加严谨，这也是一种不错的进阶。

什么是人工智能研究

那到底什么是人工智能研究呢？

简单来说，只要是针对某一个问题，我们有新的方法、新的见解或是新的结果，这都是潜在的研究成果。另外一方面，如果我们发现了一个新的问题，甚至是一个新的领域，那就更具备总结出来加以发表的潜质。

你是不是已经注意到了，研究的一个核心要素就是“新”。这也是让很多初学者感到困惑的地方：我们平时的很多工作看上去都那么普通，没有什么创新的地方呀！

其实，哪怕是在人工智能技术应用非常广泛的很多领域和场景，依然有相当多的地方存在创新点，只是初学者不太容易注意到。我这里举几个例子，你可以感受一下。

例如，一个互联网网站经常使用在线测试，也就是通常所说的A/B测试，来判断这一个网站的新功能（或者新特性）是否好于现在的版本。一个最基本的设置就是把现在的版本当做“对照组”，然后把新的功能当做“实验组”，分别在50%的流量上运行这两个组别。然而，在线A/B测试存在一些根本上的挑战。

第一，我们举例是把整个网站流量的一半用于测试某一个组别，而有一些小的改变在50%的流量上可能需要2~3周的时间才能看出效果。而在真实情况中，拿来进行A/B测试的流量往往是占比更小的，因此等到能够看出一个实验的效果需要很长时间，这本身就是一个非常耗时的过程。

第二，如果我们测试的功能和收入相关，那么假设对照组或者实验组有明显的收入增加或者减少，观察到了这样的结果，但是我们无法在实验的过程中动态地调整这个预先设置好的比例。

你看，关于传统意义上A/B测试所面临的难题，我们这里仅仅是列举了两条，其实还有很多其他的问题。从这些问题出发，我们是不是就可以问问自己，能否找到节省A/B测试时间的方法呢？能否让实验达到同样的效果但是使用尽可能少的时间？能否在A/B测试的过程中动态调整用户或者流量的比例呢？这些问题，其实就都是研究课题。

再比如，传统的推荐系统非常适合电影推荐的场景，例如著名的Netflix大赛。经历了十多年的发展后，推荐系统方法重点都集中在矩阵分解这样的协同过滤的方向上。那是不是这样的方法就解决了所有的推荐问题呢？

我们试想一下，如果是电影推荐，我们作为一个用户，看了《纸牌屋1》之后，系统就给我们推荐《纸牌屋2》、《纸牌屋3》以及这一个系列，虽然有一点重复，但依然是可以接受的非常相关的推荐结果。那么，如果我们在一个电商网站上购买了一款佳能相机以后，系统依然给我们推荐类似的相机，我们是不是就会觉得这样的推荐短期内意义不大了呢？

我们可以看到，推荐系统对场景有非常高的要求。对于一些特定场景的推荐，我们无法直接照搬现有的方法。这个时候，这个场景，就需要一些创新，有可能是把现有的方法进行改进和调整，也有可能是完全提出一些新的思路或新的方法。

说到这里，你是不是对人工智能研究的范围有了一个新的认识呢？按照我们在这里举例的思路，你可以观察一下自己手边的项目，这里面或许就潜藏着不少值得研究的课题，说不定你就能发现一个新的研究领域。

怎么做人工智能研究

由此可见，作为普通的工程师或者初学者，我们的工作中也有机会接触到研究课题和研究领域。那么，接下来，我们就来看一看怎么做人工智能研究。这其实是一个非常大的话题，今天我来给你提供一个简单的指南。

要做人工智能研究一般有这么几个步骤。

第一，好好总结一下在当前这个场景下，我们要解决的是什么问题，也就是针对要研究的问题进行建模归纳。回到刚才所提的电商推荐的例子，我们需要解决的问题是把类似的相机过滤掉？还是要推荐买了相机后其他的附件？还是要推荐相机的替代品？或者是要从根本上理解这样的情况是怎么产生的，消费者的心理预期是什么样的？你可以看到，即便是尝试解决同一个问题，我们也可以有好多不同的切入点。所以，最重要的第一步就是找准一个切入点。

第二，了解前人的工作，查找和学习相关文献。相信我，即便你认为找到了一个貌似完全新的问题或者领域，认真查找了相关文献之后，有很大可能你会发现其实已经有人做了一些类似的工作。甚至，你还可能发现你设想的某种方法已经有人尝试过了。

了解前人工作这个步骤，初学者或者是完全在工业界的工程师，往往容易忽略。这一步的核心，其实就是看前人在你设想的问题中是如何寻找方案的，和你设想的思路是不是完全一致。通常情况下，你会发现一定的差异性。于是，基于这些差异性，你可以提出一些“进阶性”（Incremental）的创新思路。这也就是我们常说的“站在巨人的肩膀上”。

另外，多了解前人的工作，我们不会把自己的思想和整个大的方法论孤立开来，能够更好地融入到研究的整个社群中去。

第三，选择一种测试数据集和一些“基线方法”（Baseline）来进行比较。无论是多么重要的新方法，也无论是什么样的新领域，如果我们不能通过一些标准的数据集，或者是构造一些可以值得信赖的数据集，而且和多种方法进行比较，那么这些创新也都无法通过检验。换句话说，我们提出的新方法、新思路再好，必须有一个相对的比较者，最好这个比较者是之前提出的，已经使用了的，这样，我们才能够更清楚地说明新的方法究竟好在哪里。

研究工作，特别是“了解前人工作”和“进行基线比较”这两点，是和一般的技术分享有区分的重要标志。这其实也是我们在上一次的分享中讲到的，有的技术分享其实只是描述做了一件事情，或者是描述了一个系统，我们无法真正知道这个系统的设计和整体的思路在社群中的位置，也不知道这个系统是否和类似系统进行过比较，这其实也给我们的技术选择设置了挑战。通过今天的内容，我们了解了研究工作的思路，把用研究的思路应用在工作中，会让我们平时的技术选择更加严谨。

小结

今天我为你梳理了进行人工智能研究的一些思路。通过今天的内容，你会发现，人工智能研究离我们并不遥远，很多场景都有可能发现新问题、找到新方法。另外，了解一些研究思路对我们的日常工程开发也会有所借鉴。

最后，给你留一个思考题，如何来衡量我们自己做研究的价值？

                        
                        
                            