产品经理也能动手实践的AI(五)- IMDB电影评论语义识别,协同过滤

上一节

产品经理也能动手实践的AI(四)- 多标签识别,图像分割

讲了多标签识别,图像分割和data block,这之前讲的都是图像识别的方法,今天一节课把剩下的3种核心领域都讲了:自然语言处理,表格数据处理,协同过滤,并且把神经网络层与层之间的微观活动也都详细的描述了一遍,可谓是干货满满。


1.概览

  • 首先是自然语言处理 NLP(Natural Language Processing ),主要讲解通过迁移学习来实现IMDB评论的正负面情绪分辨;

  • 然后是根据个人信息的数据,预测哪些人可以获得高薪;

  • 最后是协同过滤,在用户喜欢了一些电影之后,可以预测某个他没看过的电影是否会喜欢。


  • 2.1核心流程

    NLP - IMDB情绪分析大概需要3步,建立宏观的语言模型,利用的是Wikipedia的数据训练的模型;然后是根据IMDB的数据训练定向的电影行业语言模型;最后是用训练好的语言模型,训练一个正负面情绪的分类器。

    表格数据处理-薪资预测:主要是把类别变量转化成连续变量,比如职业、婚姻情况等……会转化成0,1,2这样的数字;然后通过processor进行预处理,然后就可以训练了。

    协同过滤-推荐喜欢的电影:流程都一样,只不过使用特殊类型的CollabDataBunch,以及特殊的collab_learner。


    2.2核心机器学习概念

  • 参数 weights/parameters:用于计算的参数/权重矩阵

  • 激活 activations:计算后的结果,包含矩阵运算后的结果和激活函数运算后的结果

  • 激活函数 activation functions:一般是ReLU函数,只改变内容不改变size


  • 3.1实例详细分析(NLP)

    建立宏观的语言模型,利用的是Wikipedia的数据训练的模型(Wikitext 103);

    • "I'd like to eat a hot ___":

       Obviously, "dog", right?

    • "It was a hot ___":

       Probably "day"

    • 不需要label,因为每个next word都是一个label,这种方式叫自监督学习;

    然后是根据IMDB的数据训练定向的电影行业语言模型;

    • 准备数据:read from csv

    • token化:把一句话拆成一个个词,不常用的词会用xxunk,xxpad之类的统一代替,成为vocab词汇表

    • 数字化:把一个个词,转化成一个个数字,像这样array([ 43,  44,  40,  34, 171,  62,   6, 352,   3,  47])

    • 创建databunch

    • 创建learner:会用到dropout和regularization参数,之后会讲

    • 训练:得到的模型叫encoder

    • 调整

    最后是用训练好的语言模型,训练一个正负面情绪的分类器;

    • text_classifier_learner

    • learn.load_encoder

    • freeze_to:解冻后几层,而不是全部解冻,这样可以训练处更高的准确率


    3.2实例详细分析(tabular & collab)

    流程上没什么新东西,就不展开来说了


    3.3原理详细分析(神经网络训练过程)

    整个过程如下图,先输入一个[10,20,30]的vector,然后和一个3*N的矩阵相乘,得到一个结果,再把结果用激活函数处理成更剧本特征量的结果,在进行矩阵乘积,直到最后的输出。

    输出结果一般会使用sigmoid函数将其转化成0,1区间内的额值,然后再和验证组的数据进行比对,求loss,然后进行SGD,最后得到了一个93%准确度的拟合出的函数。

    Jeremy还用excel演示了一下这个过程,真的是对大神佩服的五体投地,用excel训练神经网络,对就是这样。

    首先这里是用于训练的数据,14号用户对27号电影的评价是3颗星,满分5颗星。

    然后随机生成了2组矩阵,分别给用户和电影,相当于weights

    实验的目标是要预测空白处的值,比如293号用户对49号电影的评价是几颗星?

    下面开始初始运算,运用点积运算,将每个空格填上,其实就是2个矩阵的矩阵乘积的结果

    这时候就可以看第一次运算的结果和实际结果的偏差,计算出的loss是2.81,接下来去调整weights然后降低loss,即SGD的过程,就可以得到一个好的模型了。


    4.最后

    这一期可能需要多看两遍,反正我是2-3遍之后才能基本吃透里面的概念,因为一开始真的没那么好懂。

    获取课程资源,比如中英文字幕的视频,以及全英文的完整课程笔记,请回复“fastai课程资源”。 

    你可能感兴趣的:(产品经理也能动手实践的AI(五)- IMDB电影评论语义识别,协同过滤)