天天看點

CS224n 筆記1 深度自然語言處理

前言

該系列部落格是對斯坦福CS224n系列課程的學習筆記,主要用于記錄課程主要知識,加深個人了解。另外此系列部落格隻記錄每一講中個人認為重要的内容,不包含全部内容。文章若有錯誤之處,請各路大神批評指正。

文章目錄

    • 前言
    • 什麼是自然語言處理(NLP)
      • NLP的層次
      • NLP的應用
    • 什麼是深度學習
    • 為什麼發展深度學習
    • 為什麼NLP很難
    • 關于Deep NLP
    • 總結

什麼是自然語言處理(NLP)

自然語言處理是計算機科學、人工智能以及語言學的交叉學科,其目标是為了讓計算機能夠處理或者了解人類語言,完成有意義的任務,如訂票、購物等。

NLP的層次

CS224n 筆記1 深度自然語言處理

NLP任務的輸入主要有語音和文本,其對應的第一級分别就是語音識别和OCR或分詞。接下來是形态學,然後就是句法分析和語義了解。由于僅僅了解單詞或詞語的意思無法準确了解句子的含義,是以句法分析和語義了解是NLP學習中的重點。

該課程主要關注圖中畫圈的兩個部分,語音信号分析是NLP領域第一個大顯身手的領域,但該課程的重中之重還是在第二部分。

NLP的應用

NLP中的應用多種多樣,大概可以從難易程度進行劃分如下:

  • 初級任務:拼寫檢查、關鍵詞搜尋、查找同義詞等
  • 中級任務:閱讀資訊,了解文本,提取特定資訊;文本分類,比如判斷文章閱讀難度或目标閱聽人,推文是正面還是負面的
  • 進階任務:機器翻譯,口語對話系統,智能問答等

什麼是深度學習

深度學習是機器學習的一個分支,其基本思想就是讓電腦自動學習,而不是手工寫代碼告訴電腦該做什麼。

在傳統機器學習中,面對一個應用問題,人類需要具備專業的背景知識,然後人工設計特征,把設計好的特征交給機器學習算法,讓機器完成權值優化的工作。在這個過程中,所謂的“機器學習”并沒有讓機器真正的學習,而隻是幫助人類完成了最後的優化工作,反而是人類學習到更多領域知識。課程中給出的一張圖很好的表示了這種關系:

CS224n 筆記1 深度自然語言處理

而深度學習作為表征學習的一部分,其學習的是原始輸入的多層特征表示:

CS224n 筆記1 深度自然語言處理

為什麼發展深度學習

深度學習是在上世紀八九十年代提出的,但是在2010年才逐漸崛起,究其原因主要有兩個方面,一方面是随着社會的發展,出現了能夠發揮深度學習優勢的海量資料和支撐深度學習計算的硬體能力,另一方面是深度學習不需要人工設計特征,同時在各種任務上取得了突飛猛進的成果。

為什麼NLP很難

人類語言模棱兩可,不像程式設計語言一樣具有明确的變量,另外人類語言會省略大量資訊,但是人類在接受語言時會根據自身的背景知識進行補充。

課程中舉了幾個很有意思的例子,此處列出一個:

The Pope’s baby steps on gays

人類對于這句話的了解通常為“教皇在同志問題上裹足不前”,但是對于沒有背景知識的機器來說,可能将這句話了解成“教皇的孩子踩了基佬”,這就是語言的歧義性所在。

是以說,自然語言處理是人工智能皇冠上的明珠,其困難性不言而喻。

關于Deep NLP

Deep NLP就是将深度學習的思想用于自然語言處理的任務中,比如機器翻譯、情感分析、客服系統等,用于解決實際中存在的問題,目前深度學習在自然語言處理任務中表現很好。另外課程中還簡單介紹了NLP領域常見的詞向量,這在後續的課程中還會詳細講解,本篇部落格不再贅述。

總結

CS224n第一講主要從頂至下的介紹了NLP,算是為初學者打開一扇大門的入門課程。下一講是對向量表示的講解,難度相較于此篇部落格深入,希望通過部落格的記錄,能夠加深自己對NLP領域知識的掌握和了解。

繼續閱讀