【转】自然语言系列学习之表示学习与知识获取(一)分布式表示
研究表示學習跟人工智能很多領域研究對象有關,這些領域包括自然語言處理,數據挖掘,社會網絡分析,多媒體處理等等,他們研究的對象包括 :
- 網絡結構:用戶及其關系和行為
- 媒體信息:文本,視頻,語音等信息
- 知識圖譜:結構化的世界知識
那么研究自然語言處理領域的人會關注與現實世界相關的非常多的不同種類的數據的對象,當面向這些數據的對象做數據挖掘的時候,有一個非常嚴峻的挑戰,就是這些信息本身是多源異構的,很難建立它們之間的語義關聯,解決這個問題的方法與表示學習有關。
在傳統的數據挖掘或者說相關的領域里面,大多數數據對象表示方案是基于符號的表示,這種思想可以用一個簡單的例子來舉例:
star[0,0,0,0,0,0,0,0,1,0,0,0,0,…]
sun[0,0,0,0,0,0,0,1,0,0,0,0,0,…]
上面是來自自然語言處理里關于詞的表示,在信息檢索或者自然語言處理里,一個非常基礎的關于詞表示,就是one-hot representation.
基本思想是每一個詞都用一個和這個詞匯表相等長度的向量來表示在向量里,只有某一維是1,然后其他維都是零,通過這種方式就可以把現實世界語言中的每一不同的詞都能用不同向量表示。
實際如果熟悉信息檢索的Bag of words模型,就會發現one-hot representation或者基于符號的詞匯表示方案是Bag of words模型的一個基礎,Bag of words模型現在已經廣泛應用在各大商業的搜索引擎當中,并且取得了非常好的效果,但是這種基于符號的方案存在非常嚴重的問題,就是它假設對象之間在語義上完全沒有任何關系,如上面的star和sun,如果計算它們的相似度,我們會認為它們之間的相似度是0,但這肯定是不符合實際。
為了解決這個問題,隨著深度學習的發展,一種新的數據表示方案被提出來,并且在各個領域取得了比較好的成績,這種方案就叫做分布式表示(distributional representation)。
分布式表示基本思想是把研究的對象表示成一個低維的稠密的實質的向量,那么這種向量的物理意義就是在于它能夠把所有的這些對象都能夠表示在一個語義的空間里。
在這個語義空間里,這些對象之間的距離反映了他們互相之間的語義的關系,這是分布式表示的基本思想。
那么為什么要叫分布式表示或者說它為什么會取這樣名字?
我的理解是在低維向量里這個對象的語義,是分布在低維向量里的每一維里,換句話說就是低維向量里的每一維被單獨取出來,它其實是沒有任何的物理含義,只有當這些維集合在一起形成一個向量,它能夠反映對象在空間里的具體位置,那么他才能夠真正的反映對象本身的語義信息,這就是分布式表示的一個基本的思想。 分布式表示在自然語言處理領域里面具有非常多的優勢:
第一:能夠解決大數據自然語言處理的數據稀疏的問題。
假設在上面的語義空間里,我們能夠用大數據里面的高頻的數據,經過學習語義的空間,就可以用語義的空間去表示那些相對低頻的數據,就形成了使用大數據中的高頻部分的語義信息去幫助表示低頻數據的語義信息,這樣就一定程度上解決了大數據自然語言處理的數據稀疏的問題。
第二:實現跨領域,跨對象的知識遷移
自然語言處理里一個非常大的特點是會關注非常多不同的對象,譬如說自然語言處理里會關注詞匯,句子,文檔,知識等多個不同的對象,如果要對這些對象進行各種各樣的自然語言處理的任務,往往要計算這些不同對象之間的語義關系,如果我們能夠把這些不同的對象通過某種方式映射到同一個語義空間里面,就能夠更好的去實現跨領域跨對象的知識遷移,譬如在自然語言處理里,一個任務是做文檔的關鍵詞提取,它本質上是計算詞匯和文檔之間的相似度,在做關鍵句子的抽取或者是做文檔的摘要,其實就是在做文檔和句子之間的語義相似度之間的計算。這些任務都可以用分布式表示的方法。
第三:提供多任務的統一底層表示
自然語言處理里面對于同一個輸入有非常多不同的任務,如對同一個句子,可以做詞性標注,命名實體識別,句法分析等等任務。如果通過分布式的表示可以給句子提供統一的底層的表示,就能夠更好的支持多任務的學習。這對自然語言處理有非常大的優勢。
這種分布式表示能夠給自然語言處理提供更好的工具,進行關于語言對象的深層語義的分析。 過去我們更多的是通過計算詞匯或者句子互相之間表層的,同線的,統計的各種關系,然后計算他們這種關聯的語義關系,如果能夠對這些語言對象背后的語義信息進行深層的表示,就有可能進行更加復雜的語義關系的計算,比如因果關系等等。
總結
以上是生活随笔為你收集整理的【转】自然语言系列学习之表示学习与知识获取(一)分布式表示的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 牙齿矫正感觉牙齿变长了怎么办
- 下一篇: 做牙套的牙齿里面有声音怎么办