導航:首頁 > 源碼編譯 > nlp演算法面試

nlp演算法面試

發布時間:2023-03-26 12:19:39

A. NLP演算法工程師面試筆記

batchsize

learning rate

k-means 中消森的k

隱層單元數

dropout值

編碼器和解拿握畝碼器各6層

15%的進行【mask】處理,其中有三種處理方式:

1)其中80%替換為【mask】

2)10%隨機替換

3)10%保持不變

根據詞共出現來計算

遺忘門

輸入門

輸出門

門控機制是非0即1的,當門為1時, 梯度能夠很好的在LSTM中傳遞,很大程度上減輕了梯度消失發生的概率, 當門為0時,說明上一時刻的信息對當前時刻沒有影響, 我們也就沒有必要傳遞梯度回去來更新參數了。所以, 這就是為什麼通過門機制就能夠解決梯度的原因。

編輯距離(出門問問)

火鍋問題(華為)

gdbc

常見排序演算法的時間復雜度和空間復雜度

快排

"""
def quick_sort(data):

    """quick_sort"""

    if len(data) >= 2:

        mid = data[len(data)//2]

        left,right = [], []

        data.remove(mid)

       皮猛 for num in data:

            if num >= mid:

                right.append(num)

            else:

                left.append(num)

        return quick_sort(left) + [mid] + quick_sort(right)

    else:

        return data

B. AI面試現在很火嗎用這個做面試招聘真的靠譜嗎

根據以往求職者在桂聘網分享的求職經歷看,

從去年開始,許多校招季的金字招牌也都紛紛在面試環節中增加了AI面試/Digital Interview。不少招聘平台更是以智能面試系統為業務增長點,扮演起了技術傳火者的角色。

目前看來,讓AI分析招聘面試過程中的復雜要素,還是一個爭議中前行的未來。

不過,技術的車輪正在加速。IBM就宣布要使用Watson(沃森)主動搜索內部培訓系統的數據,了解員工培訓以及學習情況,判斷他們是否具備升職潛力,以此進行內部考核。而從這樣相對結構化的數據中推倒到面試招聘環節,或許也在向廣大求職者們走來。

可以說,過去我們看到一些機械化程度高、數據結構化的領域,文書、翻譯、識別等被AI取代。如今,面試這樣充滿交流的感性色彩的領域也未能倖免。所幸的是,技術的魔法正在褪去,手握知識之劍的人類,終將找到自己與AI「共事」的最佳方式。在一次次較量與交鋒中去迭代和優化它,最終走出人機磨合的陣痛。

C. cv和nlp需求量

在說需求量大小之前我們先來理一理這三個方向之間的關系吧。
深度學習是指通過神經網路模型(Neural Network)來解決問題的一門技術手段,深度學習更像是解決問題的一種技術方法,而自然語言處理(以下簡稱NLP)和強化學習(RL)更像是一種具體的問題。打個比方吧,深度學習就像是大學里學到的高等數學(解決問題的基礎知識),而RL和NLP像是大學里的金融投資專業和大學里的會計專業(兩個待解決的不同實際問題)。解決投資問題和會計問題會用到很多種不同方法,而高等數學就是解決這些實際問題的方法之一。
現在我們已經理解了深度學習(DL)和自然語言處理(NLP)和強化學習(RL)之間的關系,即DL是解決NLP和RL問題的一種技術手段,不論你未來選擇研究NLP還是DRL都需要學習DL的相關知識。
那麼現在剩下的就是NLP和DRL之間的對比了,先說結論吧,個人認為NLP的需求量比RL大不少(至少今年是這樣)。我研究的就是RL方向,今年秋招的時候看了不少招聘,總的來講需求量就是:CV > NLP > RL。計算機視覺無疑是所有Deep Learning下需求量最大的一個分支了,很多公司都會貼出一個專門職位叫「計算機視覺工程師」,視覺應用是最為廣泛的(比如大疆、位元組、快手、BAT等等大廠)都會有相關的視覺崗,視覺可以用來解決各種各樣的問題,從人臉識別到特效演算法等等,畢竟cv是所有深度學習技術中目前發展最為成熟的方向之一了。NLP的需求量要稍微小一點,但也有不少公司開設了專門的自然語言處理崗,例如網路,我記得之前面試過網路的一個部門,好像是做翻譯的,面試官問到有沒有接觸過NLP相關的領域,所以NLP大多會被用於翻譯、文本分析等等方向吧(具體細節我也不是很清楚這里就不誤導樓主了,但可以保證的是很多公司招聘信息上都會有NLP崗位)。
最後就是DRL方向了,這個深坑,我來總結一下吧,DRL目前的應用方向有兩個:
1. 推薦演算法。
2. Game AI。
將RL應用到推薦上的廠少之又少,因為強化學習做推薦現在還並不成熟,只有一些大廠才養得起這些研究部門,我所知道這么做的廠有快手、阿里、美團。第二個方向就是Game AI,這個方向做的比推薦稍微多一些,畢竟Alpha Go開了一個很好的頭、隨即騰訊、網易也陸陸續續有了一些自己的成果。看出來了嗎?研究RL的廠大多都是游戲廠,沒錯,RL目前的發展方向就是做游戲,因此如果你選擇研究DRL那麼將來你有很大概率加入一個游戲廠——但,不是每個游戲廠都養得起RL工程師,能願意花錢養RL的團隊資金都相當雄厚,例如騰訊、例如網易。這些大廠願意花錢招RL工程師不等於能夠溫暖所有研究RL的學子們,講個鬼故事給你聽:網易今年招游戲研發工程師700人,強化學習工程師15人。這意味著什麼呢,你要在好幾百人中脫穎而出,沖到前15名才能被錄取。可怕吧?這個差距就大nm的離譜,我之前寫過一個回答,總結過為什麼RL在市面上的需求量少的可憐,有興趣的話可以瞄一眼:

為什麼說強化學習在近年不會被廣泛應用?
所以,強化學習在工程界內應該是最難找工作的一個方向了吧(畢竟需求量還是太少),但如果想在學術界內混一混的話,RL還是可以強推一波的,感覺強化學習現在還在發展和進化的過程當中的。

D. 自然語言處理方向研究生好找工作嗎

現在國內IT互聯網公司大部分NLP和IR人才被BAT公司壟斷,導致市面上的優秀NLP人才極少,因此很多創業公司緊缺這方面的人才。從人工智慧發展的趨勢來看,我認為這是一個不錯的領域,可以為之奮斗一生。NLP幾乎是互聯網機器學習業務的必備技能。因為互聯網內容最大比例的是文本。NLP挺好找工作的,但是最好機器學習的內容學全一點,畢竟實際工作內容是很多類型的,所以NLP是比較必要但不充分。我讀研時好多年前就覺得自然語言是個很有前途的方向。所以想如果我讀博就念這個方向。結果我找來書看過後。深深覺得自己不行。因為我念的是純文科的語言學。

E. nlp演算法是什麼呢

1、nlp演算法是自然語言處理演算法。自然語言處理( Natural Language Processing, NLP)是計算機科學領域與人工智慧領域中的一個重要方向。它研究能實現人與計算機之間用自然語言進行有效通信的各種理論和方法。

2、自然語言處理(nlp)是一門融語言學、計算機科學、數學於一體的科學。因此,這一領域的研究將涉及自然語言,即人們日常使用的語言,所以它與語言學的研究有著密切的聯系,但又有重要的區別。

3、自然語言處理(nlp)並不是一般地研究自然語言,而在於研製能有效地實現自然語言通信的計算機系統,特別是其中的軟體系統。因而它是計算機科學的一部分。

4、自然語言處理(nlp)主要應用於機器翻譯、輿情監測、自動摘要、觀點提取、文本分類、問題回答、文本語義對比、語音識別、中文OCR等方面。

5、自然語言(nlp)的形式(字元串)與其意義之間是一種多對多的關系。其實這也正是自然語言的魅力所在。但從計算機處理的角度看,我們必須消除歧義,而且有人認為它正是自然語言理解中的中心問題,即要把帶有潛在歧義的自然語言輸入轉換成某種無歧義的計算機內部表示。

F. nlp實習面試演算法題不會能過嘛

不能過
nlp演算法
人工智慧演算法大體上來說可以分類兩類:基於統計的機器學習演算法(MachineLearning)和深度學習演算法(DeepLearning)
總的來說,在sklearn中機器學習
演算法大概的分類如下:
1.純演算法類
(1).回歸演算法
(2).分類演算法
(3).聚類演算法
(4)降維演算法
(5)概率圖模型演算法
(6)文本挖掘演算法
(7)優化演算法
(8)深度學習演算法
2.建模方面
(1).模型優化
(2).數據預處理覺得有用點個贊吧

G. 演算法崗面試都會考代碼嗎

會。
演算法崗面試的第一關,手撕代碼環節,主要考察你對數據結構和一般演算法的掌握,以及作為碼農最基本的編程能力。二至三道編程題寫完之後,就進入到了面試的第二關,演算法基礎知識考察環節,這里的演算法指的是機器學習、深度學習以及細分方向上,比如CV、NLP相關的演算法知識。

H. AI常見面試35題

交叉熵做損失函數,訓練時傳播的梯度和訓練誤差是成正比的(單調),而當採用均方誤差做損失函數時,訓練時傳播的梯度和訓練誤差不是成正比的(非單調),具體表現是,訓練誤差從0開始增大,梯度增大(這游碼點與我們預期相符),但訓練誤差繼續增大,梯度開始下降(這點就與我們的預期不符了),這樣就顯得,模型在訓練誤差大的時候,根本不願意繼續學習,模型顯得「自暴自棄」不肯學習。

決在低維空間 線性 不可分的問題,通過核函數把低維映射到高維,實現線性可分。

常見 核函數 有線性核函數,多項式核函數,高斯核函數,sigmoid 核函數

Adaboost用錯分數據點來識別問題,通過調整錯分數據點的權重來改進模型。GBDT通過負梯度來識別問題,通過計算負梯度來改進模型。

1.樣本選擇:bagging訓練集是在原始集有放回的選取,每次選取訓練集都是獨立的.boosting:每一輪的訓練集的數量不變,但是訓練集里的樣例比重根據上一輪的分類結果進行調整
2.樣本權重:bagging:均勻取樣,每個樣例的權重都相等。boosting:根據您錯誤率不斷調整樣例的權值,錯誤率越大的則權重越大
3.預測函數:bagging每個基分類器投票,權重比例都是一樣的,boosting每個分類器的權重是不一樣的
4.運行規律:bagging:各個預測函數可以並行生成 boosting:每個基分類器都都是根據前一個分類器的結果調整過來的

之所以被稱為「樸素」, 是因為它假定所有的特徵在數據集中的作用是同樣重要和獨立的,正如我們所知,這個假設在現實世界中是很不真實的,因此,說是很「樸素的」。

1.線性回歸
2.邏輯回歸
3.嶺回歸
4.多項式回歸

順序關系,先求出特徵值再來求SVD

PCA: 無監督學習,找到最優重構子空間,使主成分能刻畫樣本絕大部分的方差。
應用:數據降維、Eigenfaces、PCA-SIFT

CCA(Canonical Correlation Analysis): 無監督學習,對兩組變數降維,找到一個最優相關子空間進行相關性分析。
應用:問卷調查中變數的相關性分析、跨模態輪御學習。

LDA: 有監督學習,學習一個可分性最好的投影方向。相當於是白化(whitening) + PCA,得到的是假設條件下的最優分類子空間(假設每個類都是單模態高斯分布、每個類協方差矩陣相同)。
應用:數據降維、模式分類

ICA: 無監督學習,各個分量之間相互獨立,利用數據的高階統計信息而不是二階信息得到用於信號分離的獨立子空間。
應用:語音信號分離

隨機森林中樹的選擇是隨機選擇的,生成每棵樹的樣本也是隨機采樣有放回產生的

預訓練初始化:一般是在大規模數據上已經訓練過的模型可以提供一個較好的參數初始值,並能提升模型的泛化能力(一種解釋是預訓練任務起到一定的正則化作用)。
隨機初始化:如果全部初始化為0,在神經網路第一遍前向傳播所有隱層神經網路激活值相同,反向傳播權重更新也相同,導致隱層神經元沒有區分性,稱為「對稱權重」現象。為打破這個平衡,比較好的方式是對每個參數進行隨機初始化。
固定值初始化:比如對於偏置(bias)通常用0初始化,LSTM遺忘門偏置通常為1或2,使時序上的梯度變大,對於ReLU神經元,偏置設為0.01,使得訓練初期更容易激活。

1.dropout
L2正則化方法就是通過使參數變小,進而使模型變得簡單的方法。dropout方法原理類似,只不過它不是減少權值,而是隨機的刪除某些節點,使得模型的網路結構變得簡單,起到正則化的效果。
直接限制模型參數的方法:

從數據集入手的方法:

集成化方法(通過訓練多個不同的模型,並讓所有模型一起表決測試集的輸出):
baggingdropout
其他:
early stop交叉驗證(bagging為又放回採樣,而交叉驗證可以理解為無放回模型平均)

self-attention:attention(q,t,v) = softmax(qk.T/根號DK)*v
多頭的本質是多個獨立的attention計算,作為一個集成的臘磨岩作用,不同的權重矩陣映射到不同的空間

RNN:輸入與輸出長度相等,很多時候機器翻譯的輸入跟輸出是不等的
seq2seq:encoder+decoder 所有輸入的信息都保存在隱藏層的最後一個印象里,作為解碼器的初始隱向量,銀項鏈稱之為上下文向量,長度固定,當輸入句子很長的時候,上下文向量會丟失相關信息,效果很差
seq2seq+attention:seq2seq忽略了輸入跟輸出之間的對應關系,利用attention來尋求輸入跟輸出之間的對應關系
tranfarmer:解決了翻譯中網路訓練時間過長,難以並行計算的問題,利用self-attention代替RNN實現並行計算,用postion embedding記錄位置信息

類似cnn的多個卷積核,不同卷積核提取不同方面的特徵,不同head關注不同的表示子控制項,總和利用各方面的信息,獲得更豐富的特徵

由兩個線性層組成,兩個線性層直接具有relu激活函數

點乘注意力可以用高度優化的矩陣乘法來實現
速度更快,空間效率更高

概率密度函數:由已知計算未知
似然函數:對於不同的模型參數,出現已知的概率是多少

將各個特徵分布調整到標准正態分布,若某些特徵方差很大,會主導目標函數從而使得模型無法正確學習其他特徵

將數據劃分成K份,留作一份作為測試集,其他作為訓練集
重復K次得到K個測試結果,取平均

進程是火車,線程是車廂

復雜的模型佔用大量內存,且具有龐大的計算開銷,導致模型難以被部署在手機等計算能力較差的設備上,抑或是時延要求較高的應用中。
模型壓縮的主要方法可以分為:

1.系統級優化,包括單設備優化和多設備優化。比如ZeRO-Offload,就設計了精細的策略來安排CPU內存和GPU內存之間的交換,以便內存交換和設備計算能夠盡可能多地重疊。
2.探索更高效的預訓練方法和模型架構,以降低方案的成本。
3.模型壓縮策略,包括參數共享、模型剪枝、知識蒸餾和模型量化。

深度學習時代,為了充分訓練深層模型參數並防止過擬合,通常需要更多標注數據喂養。在NLP領域,標注數據更是一個昂貴資源。PTMs從大量無標注數據中進行預訓練使許多NLP任務獲得顯著的性能提升。總的來看,預訓練模型PTMs的優勢包括:

詞嵌入是自然語言處理(NLP)中語言模型與表徵學習技術的統稱。概念上而言,它是指把一個維數為所有詞的數量的高維空間嵌入到一個維數低得多的連續向量空間中,每個單詞或片語被映射為實數域上的向量,這也是分布式表示:向量的每一維度都沒有實際意義,而整體代表一個具體概念。

分布式表示相較於傳統的獨熱編碼(one-hot)表示具備更強的表示能力,而獨熱編碼存在維度災難和語義鴻溝(不能進行相似度計算)等問題。傳統的分布式表示方法,如矩陣分解(SVD/LSA)、LDA等均是根據全局語料進行訓練,是機器學習時代的產物。

PTMs的發展經歷從淺層的詞嵌入到深層編碼兩個階段,按照這兩個主要的發展階段,我們歸納出PTMs兩大範式:「淺層詞嵌入」和「預訓練編碼器」。
淺層詞嵌入的主要缺陷為:

PTMs範式為預訓練編碼器,主要目的是通過一個預訓練的編碼器能夠輸出上下文相關的詞向量,解決一詞多義的問題。這一類預訓練編碼器輸出的向量稱之為「上下文相關的詞嵌入」

隨著網路層數的增加,從前面的層傳遞到後面的層的梯度會越來越小,進而就梯度消失了
梯度消失和梯度爆炸,簡單來說,就是因為激活函數sigmoid導致的,輸入值過大或過小導致sigmoid函數趨於0和1,對應的求導趨近於0,而且sigmoid的導數在(0,1/4)之間,這就導致如果初始化W為0-1之間的比較小的值,通過過多的層數之後,梯度下降的時候,慢慢就會出現梯度消失。如果W初始化為較大的值,通過多層之後,梯度下降會導致梯度越來越大,產生爆炸。

當w越大,其wx+b很可能變的很大,而根據上面 sigmoid 函數導數的圖像可以看到,wx+b越大,導數的值也會變的很小。因此,若要出現梯度爆炸,其w既要大還要保證激活函數的導數不要太小。
下面說下解決辦法:

在數學上是一個函數,,意思就從高緯抽象空間映射到低緯具象空間
抽象-具象
詞-語義
為什麼要做embedding?
1.抽象的事物都應該有一個低緯的表示
2.計算機善於處理低緯度信息
3.解決one-hot編碼帶來的緯度爆炸問題
嵌入的好處?
1.計算詞向量的相似度,擴充標簽
2.累加得到一個文本向量
3.用於聚類會比詞聚類有更好的聚類效果

1.輸入層:前者用N-GRAM模型,後者是CBOW
2.輸入到投影層的操作:前者是拼接,後者是累加求和
3.隱藏層:前者有,後者無
4.輸出層:前者線性結構,後者是樹形結構

1.導致全連接層爆炸
2.樣本數量少於特徵數會造成模型過擬合

飽和:sigmoid,tanh
缺點:出現梯度消失問題
非飽和:relu及其變體
優點:解決梯度消失問題
加快收斂速度
計算速度快

NLP網路第一層參數使用其他任務訓練的word embedding ,高層參數仍然隨機初始化
為什麼可行?
因為網路底層提取出的特徵是基礎特徵,跟具體任務相關性不大,具備任務的通用性,而網路高層提取出的特徵跟具體任務密切相關

設有一個多層感知機模型,假設輸出層只保留一個輸出單元 ,且隱藏層使用相同的激活函數。如果將每個隱藏單元的參數都初始化為相等的值,那麼在正向傳播時每個隱藏單元將根據相同的輸入計算出相同的值,並傳遞至輸出層。
在反向傳播中,每個隱藏單元的參數梯度值相等。因此,這些參數在使用基於梯度的優化演算法迭代後值依然相等。之後的迭代也是如此。在這種情況下,無論隱藏單元有多少,隱藏層本質上只有一個隱藏單元在發揮作用。
因此,通常對神經網路的模型參數,特別是權重參數進行隨機初始化。隨機初始化模型參數的方法有很多,可以使用正態分布的隨機初始化方式。

1.賽題理解

2.數據探索跟預處理

3.特徵工程

4.演算法嘗試

5 演算法選擇

1.隨機欠采樣:
優點:平衡數據的同事減小了數據量
缺點:數據減少會影響模型的特徵學習能力跟泛化能力
2.隨機過采樣:
優點:沒有導致數據信息的丟失
缺點:增加了過擬合的可能性

類別特徵常用的處理方法:
1.序號編碼:成績的高中低,轉成3,2,1
2.獨熱編碼:比如血性中的a=[1,0,0,0],b = [0,1,0,0]
3.二進制編碼:跟獨熱類似

把一階離散特徵兩兩組合,就構成高階組合特徵
中文 - 電影 = 中文電影,中文電視劇
英文-電視劇 = 英文電影,英文電視劇,
一般當引入id類型的特徵,通常需要降維
組合特徵
利用決策樹方法來組合特徵

樸素貝葉斯,邏輯回歸,sVM,感知機,最大熵模型,em演算法,決策樹,主成分分析
感知機:是二類分類的線性分類模型,輸入為實例的特徵向量,輸出是正負1
K近鄰演算法:是一種基本分類跟回歸演算法,演算法步驟是,計算當前數據跟其他數據距離最近的K個數據點,然後查看他們的類,類最多的就是數據的分類類別
樸素貝葉斯:是一種基於貝葉斯定力跟條件獨立假設的分類演算法
決策樹:是一種基本的分類跟回歸方法,呈現樹形結構,基於樹的特徵依次對實例進行分類
邏輯回歸:對數線性模型分類回歸方法

主要是為了加速,因為反向傳播求導一次就可以求出所有的偏導數,反之前向傳播因為數據的輸入入口會變慢很多倍

pytorch是一個動態的框架,而TensorFlow是一個靜態的框架。何為靜態的框架呢?我們知道,TensorFlow的尿性是,我們需要先構建一個TensorFlow的計算圖,構建好了之後,這樣一個計算圖是不能夠變的了,然後我們再傳入不同的數據進去,進行計算。這就帶來一個問題,就是固定了計算的流程,勢必帶來了不靈活性,如果我們要改變計算的邏輯,或者隨著時間變化的計算邏輯,這樣的動態計算TensorFlow是實現不了的,或者是很麻煩

K折交叉法,留一法,留P法

網格搜索,也就是一種窮舉的方法,劃定一個范圍,不斷的嘗試,所有的可能性,選出表現最好的參數

1.直接刪除2.平均值填充,中值填充,眾數填充3.預測模型填充

isnull:返回是否空值
notnull:isnull的否定
統計量填充:連續值
特殊值填充:比如0
不處理:xgb跟LGB會自動處理

主要是特徵降維
1.過濾法:按照發散性跟相關性對各個特徵進行評分,通過設定閾值或者帶選擇閾值的個數來選擇特徵
(代表:相關系數,互信息,卡方檢驗,信息增益)
2.包裝法:根據預測效果得分,每次選擇若干特徵,或者排除若干特徵
(代表:遺傳演算法,模擬退火演算法)
3.嵌入發:使用機器學習演算法進行訓練,得到每個特徵的權值系數,並根據系數從大到小選擇特徵
(代表:決策樹-熵,信息增益,正則化)

1.第一,根據電化學模型進行溫度修正,兼顧不同場景
2.電化學模型的RUL結果會作為LSTM的一個新特徵輸入

1.bagging,boosting
2.投票法,平均法,權重法,

1.網格搜索
2.隨機森林

1.查看訓練集特徵變數信息
2.查看數據統計信息
3.查看數據欄位信息
4.畫箱線圖探索數據
5.查看數據分布圖
6.可視化線性回歸關系
7.查看特徵變數的相關性(畫出相關性熱力圖,找出特徵變數和target變數相關系數大於0.5的特徵變數)
8.查看特徵變數跟target變數的

1.刪除異常值
2.最大最小值歸一化
3.查看訓練集數據和測試集數據分布情況
4.特徵降維
5相關性初篩
6.多重共線性篩選降維
7.pca主成分降維
8.決策樹構建新特徵

1.平均絕對值誤差:MAE是預測值跟真實值的絕對值
2.均方誤差:mse指參數估計值跟參數真實值之差的平方
3.均方根誤差:均方誤差的平方根
4.R2:反映了回歸模型在多大程度上解釋了因變數的變化,換句話就是模型對觀測值的擬合程度如何

個體學習模型的准確性越高,多樣性越大,模型融合的提升效果越好

如果需要稀疏性就⽤l1,因為l1的梯度是1或-1,所以每次更新都穩步向0趨近。
⼀般多⽤l2因為計算⽅便「求導置零解⽅程」,l2隻有最好的⼀條預測線⽽l1可能有多個最優解。
l1魯棒性更強對異常值不敏感

歸⼀化:對不同特徵維度的伸縮變換的⽬的是使各個特徵維度對⽬標函數的影響權᯿是⼀致的,即使得那些扁平分
布的數據伸縮變換成類圓形。這也就改變了原始數據的⼀個分布。
好處:
1 提⾼迭代求解的收斂速度,不歸⼀化梯度可能會震盪
2 提⾼迭代求解的精度

標准化:對不同特徵維度的伸縮變換的⽬的是使得不同度ᰁ之間的特徵具有可⽐性。同時不改變原始數據的分布。
好處
1 使得不同度ᰁ之間的特徵具有可⽐性,對⽬標函數的影響體現在⼏何分布上,⽽不是數值上
2 不改變原始數據的分布

I. NLP方向,收到一家叫暗物智能的公司的面試邀請,在考慮要不要去。有人了解這家公司嗎

聽說過這家公司,創始人據說是睜如業界大牛。最近有看到完悉鎮啟成A輪融資的消息,說不定現在進去還能拿到期權,不過旅山創業公司都有風險,樓主可以衡量下。

J. 產品經理如何入門自然語言處理(NLP)

自然語言處理,顧名思義即自然語言處理的技術,通常用縮寫NLP指代。各類產品經理日常的工作中,會遇到大量自然語言處理的應用場景。以智能推薦為例,在待推薦物文本分類、主題分類等場景中都會用到。本篇以產品經理的視角,談談如何入門自然語言處理。

統計模型

很多大牛對人工智慧的抨擊在於,認為人工智慧只是統計學,並不是真正的具有「智能」。在當前「弱人工智慧」的時代背景下,學習統計模型仍然有非常重要的價值。

拿經常用於分類場景的貝葉斯模型為例,在已經拿到用於訓練集的語料中,可以通過統計得出A出現的概率、B出現的概率、在A出現的前提下B出現的概率,計算如果B出現同時A出現的概率(即給定B樣本計算出現A的概率),就可以直接從前面三個統計概率計算得出。

當然以上貝葉斯模型成立並且表現良好的前提是 數據量足夠大,滿足大數定律 。不難發現統計模型的精髓在於,假設數據量足夠大後,可以用已有樣本的統計情況,來做判別或預測。

閉環流程

NLP技術應用場景廣泛且鬆散,且在很多情況下,作為中間處理技術流程,不被最終用戶所感知。再加上近些年新的自然語言處理技術不斷出現,給想入門自然語言處理的產品經理眼花繚亂,不知如何入手的困惑。

入門自然語言處理也需要講究MVP,以最小可行性的閉環,建立起初步認知,再不斷擴展和豐富NLP的知識體系,逐步建立大的框架和認知。

通常的自然語言處理任務可從「分詞」—>「構建特徵」—>「訓練模型」—>「分類或預測應用」。

以上流程中,除了分詞外,與機器學習通常流程一樣。英文一個個單詞本身就是分開的,是不需要分詞的。但對於中文來講,詞與詞之間是連接在一起的,需要將文本內容,切分成一個個詞再處理。

完成分詞後,計算機無法直接理解漢字,需要通過將一個個詞,編碼成計算機可以理解的數字再做處理,這個階段即構建特徵階段。

特徵完成後,再根據自然語言處理任務類型,決定採用哪種演算法訓練模型,最後將訓練好的模型應用於特定的分類或預測任務上。一個自然語言處理任務就完成了。

標注與預處理

前幾年從事的智能推薦產品中,推薦系統本身以CTR作為優化目標,實際是將點擊與否作為label,相當於用戶幫著做了分布式的標注工作。

傳統基於統計的自然語言處理任務中,大部分任務類型是有監督學習,需要人在已有語料上做大量的標注工作,才能保證任務的正常進行。

例如情感識別是否為正向情感,就需要人在語料上,將一條條信息標出是否為正向情感。再將此語料作為訓練集訓練模型,生成情感識別的分類模型用於情感識別。

文檔的預處理通常是將拿到的語料做去除標點符號、停用詞、數字等處理,去除自然語言無關內容,加快計算機計算和模型生成速度。

在完成以上處理後,可將文檔做分詞處理,再將詞作編碼處理即可。

常見任務及演算法原理

自然語言處理通常有以下應用場景:分詞、詞性標注、主題識別、情感識別、文本分類、機器翻譯等。下面將主要應用及背後演算法原理作簡要介紹。

有監督的分類問題。 無論情感識別還是垃圾郵件分類,本質上都可以轉化為幾個目標類型的分類問題。按照貝葉斯公式的邏輯,將已有語料數據進行類型標注,基於統計模型的邏輯,訓練得到分類模型,將待識別內容通過模型計算打分,根據閾值即可完成識別。例如二分類的情感識別,可以將0-0.5區間歸為消極情感,0.5-1區間歸為積極情感。多分類則是計算待分類樣本離哪個區間更近,即識別為哪種類型。

無監督的分類問題 。自然語言處理中,經常會有主題識別任務,這類任務通常是採用LDA主題模型,核心邏輯是將文章劃分為「文檔」—「主題」—「詞」的三層邏輯,以無監督學習自動完成按照主題的詞聚類。由於是無監督學習,需要根據實際情況指定學習出的主題個數,最終選擇主題個數最合理的結果。依賴人的主觀判斷和理解一系列詞背後組成的主題。

生成問題 。生成問題常見的有文本糾錯、詞生成、句子生成、機器翻譯等。生成問題從統計學邏輯上講,是基於已有語料的統計,計算出接下來要生成內容的概率。拿機器翻譯舉例,需要事先准備好中英文對照的大量語料,基於語料,機器學習到中英文詞對照、短語對照的知識,最終在翻譯場景下,輸出中文或英文相應的翻譯內容。

再拿隱馬爾可夫模型做詞性標注舉例,基於已經標注的語料,隱馬爾可夫模型可以學習到詞與詞之間詞性的狀態轉移概率,基於這個概率可以計算出一個詞屬於哪種詞性。

深度學習的應用。 CNN構建的神經網路,比較適合解決NLP分類問題,但由於沒有記憶,無法解決生成問題。RNN相較於CNN可以解決一定長度記憶問題,適合解決NLP領域一定長度的生成問題,例如詞生成,但無法保留長期記憶。LSTM具有長期記憶的手段,可以做生成句子的任務。

NLP 應用價值

文本是最常見的生產資料,產品經理學習NLP的原理及應用,可以開闊解決問題的視野。

拿在線教育行業舉例,利用自然語言處理能力,可以自動識別出學生評論的情感傾向,可以輔助老師進行作文批改、自動出題、自動解題。

不難看出,自然語言處理的應用場景,並非人做不了,而是可以替代人類的手工勞動,大大提升任務的效率,將人解放出來,做更有價值的工作。

小樂帝,一線AI產品經理、科技優秀作者、產品經理讀書會創始人。

「產品經理讀書會」

專注於愛讀書愛思考的產品人提供讀書推薦、產品思考、以書會友的環境

閱讀全文

與nlp演算法面試相關的資料

熱點內容
操作系統代碼編譯 瀏覽:481
程序員東北大學 瀏覽:426
編譯忽略空字元 瀏覽:117
多店鋪阿里雲伺服器教程 瀏覽:378
單片機求初值 瀏覽:420
安卓機如何在電腦備份圖片 瀏覽:925
ca證書加密機價格 瀏覽:798
天乾地支年份演算法 瀏覽:796
程序員打造的視頻 瀏覽:7
java和php通信 瀏覽:680
為什麼黑程序員 瀏覽:163
程序員男生 瀏覽:456
戴爾文件夾內文件怎麼置頂 瀏覽:582
雲伺服器6m網速 瀏覽:722
vivo手機中國聯通伺服器地址 瀏覽:862
工程總控編譯失敗 瀏覽:707
燕趙紅楓app如何下載 瀏覽:867
php查殺軟體 瀏覽:878
教育管理學pdf 瀏覽:547
伺服器均衡怎麼使用 瀏覽:626