最通俗易懂的BERT原理与代码实现

最通俗易懂的BERT原理与代码实现_第1张图片

做二级市场的可以分成很多“门派”,有看技术面的,有看基本面的,还有看消息面的,本期就是基于消息面量化的内容,最常见的思路就是对舆情分析,判断市场情绪,从而做出投资决策。

最通俗易懂的BERT原理与代码实现_第2张图片

舆情分析涉及到人工智能的子领域——自然语言处理(NLP)。2018 年,Google 在《BERT: Pre-training of Deep Bidirectional Transformers forLanguage Understanding》中提出了自然语言预训练模型BERT,大大提升了机器处理语言的能力,同时也降低了NLP的门槛。在最初接触BERT的时候,查阅了大量的资料,发现大部分都是讲BERT原理的,而且基本就是把论文的要点给翻译了过来(当然我也不能免俗,在原理部分我会尽量的翻译成“人话”)。但讲如何应用的很少,即使有,也过于复杂,直到我看到了《Making BERT Easier with Preprocessing Models From TensorFlow Hub》这篇文章。本期主要就是把其中的代码搬过来,做些改进,让零基础的小伙伴也能搭建自己的模型。我一直奉行的观点是,边做边学,就像学骑自行车一样,不需要了解完自行车的原理,再去学骑车。**各种算法过于抽象,不如在大致了解算法原理之后,先学如何调用模型,然后基于应用再深究算法。**所以本文不会有任何公式,尽量用通俗的语言对BERT的原理进行说明,并给出一套简单的NLP实施流程。

一、BERT的原理
1. 预训练与微调

BERT全称Bidirectional Encoder Representations from Transformers,它是一个预训练自然语言模型,大体可分成两步来完成NLP任务:
(1)预训练(pre-training):先对大量语料进行无监督学习;
(2)微调(Fine-tuning):再对少量标注语料进行监督学习,提升模型针对特定任务的表现能力。
当然 预训练的模型还有Open AI的GPT、AI2的 ELMo等。

大家都知道机器学习的关键在数据,自然语言处理的一个优势在于可以找到大量的语料,比如维基百科、各类书籍、各类网站等,通过对这些语料进行无监督学习就能让机器对判断文本的情感、上下文关系等有一个很好的效果。预训练是第三方机构(比如Google)用自己的服务器完成的,然后将训练好的模型公布出来。

但对个人或者小机构来讲,是很难实现的,需要在人才和硬件上有很大的投入,所以**预训练大大降低了NLP的门槛。**另外,我们需要按照训练好的模型的要求对输入数据进行预处理即可(后边会讲)。模型有人帮我们训练好了,我们只需要微调就可以了。

你可能感兴趣的:(量化投资,人工智能,机器学习,python)