第一章、 文字和語言vs數(shù)字和信息
簡要介紹了語言和文字的發(fā)展過程
第二章、 自然語言處理
在上世紀(jì)50年代到70年代,科學(xué)家們都想用人們理解語言的方法去讓電腦進(jìn)行自然語言處理。70年代到90年代之間人們在用語法規(guī)則和統(tǒng)計(jì)學(xué)進(jìn)行自然語言處理之間爭論不休,直到90年代之后,統(tǒng)計(jì)學(xué)徹底占據(jù)了上風(fēng)。
第三章、 統(tǒng)計(jì)語言模型
對于一句話,因?yàn)樽匀徽Z言是上下文相關(guān)的,所以要計(jì)算一句句子中所有詞的概率積,如果夠大,那么這句話正常的可能性極高。但是計(jì)算每個(gè)詞的概率很困難,因?yàn)槊總€(gè)詞出現(xiàn)的概率和前N個(gè)詞相關(guān),但是N太大有時(shí)不好算概率,馬爾科夫就提出每個(gè)詞的概率只參考前一個(gè)詞,那么就好算多了。一般只參考前一個(gè)詞太少,3個(gè)比較合適,google也只用了4個(gè)。
但是有時(shí)候一個(gè)詞在語料庫中沒有,而我們又不能說它的出現(xiàn)概率為0,所以就要進(jìn)行處理,這里用到了古德-圖靈的方法(在統(tǒng)計(jì)中相信可靠的統(tǒng)計(jì)數(shù)據(jù),而對不可信的統(tǒng)計(jì)數(shù)據(jù)打折扣,同時(shí)將折扣出來的那一小部分概率給予未看見的事件)。實(shí)際運(yùn)用時(shí),對于每個(gè)詞的概率,如果相對前一個(gè)詞出現(xiàn)的頻度大于一個(gè)閾值,不打折扣,小于閾值,打折扣,再把多出來的概率賦予未看見的事件。
對于語料的選取,在哪個(gè)領(lǐng)域搜索就使用哪個(gè)領(lǐng)域的數(shù)據(jù)進(jìn)行訓(xùn)練。比如搜索網(wǎng)頁,雖然網(wǎng)頁上夾雜著噪音和錯(cuò)誤,也不能使用新聞稿作為語料。對于噪音和錯(cuò)誤,成本不高的能過濾的就進(jìn)行處理。
第四章、 談?wù)劮衷~
最容易的分詞方法是查字典,遇到字典有的詞就標(biāo)注出來,并與最長的詞匹配(上海大學(xué)),這么做能解決70%以上的問題,但是有很多歧義性的問題解決不了。統(tǒng)計(jì)語言模型分詞的方法是把句子按照可能的拆分,對每種拆分計(jì)算概率。
分詞的不一致性分為錯(cuò)誤和顆粒度不一致。錯(cuò)誤:比如“北京大學(xué)生”分成“北京大學(xué)-生”不合適(越界型錯(cuò)誤),“賈里尼克”分成四個(gè)字(覆蓋型錯(cuò)誤)。顆粒度不一致,“清華大學(xué)”分成“清華大學(xué)”或“清華”+“大學(xué)”,這種顆粒度不一致不作為錯(cuò)誤。
第五章、 隱含馬爾可夫模型
自然語言處理可以理解為通信的發(fā)送和接受所要進(jìn)行的編碼解碼。
隱含馬爾可夫模型把計(jì)算可能的編碼解碼問題轉(zhuǎn)換成了求概率的問題,使用鮑姆-韋爾奇算法(訓(xùn)練算法)和維特比算法(解碼算法)就可以使用這個(gè)模型了。
第六章、信息的度量和作用
信息熵指信息的不確定性,不確定性越大,熵越大。互信息指的是兩個(gè)隨機(jī)事件的相關(guān)性,互信息取值在0-1之間,無關(guān)為0,完全相關(guān)為1。相對熵衡量兩個(gè)取值為整數(shù)的函數(shù)的相似性,可以用來衡量文章的相似度,詞之間的相似度。
第七章、 賈里尼克和現(xiàn)代語言處理
賈里尼克很厲害,把通信的方法運(yùn)用到了自然語言處理上,他在約翰·霍普金斯大學(xué)設(shè)立的實(shí)驗(yàn)室很強(qiáng)。
第八章、 布爾代數(shù)和搜索引擎
搜索的本質(zhì)是:自動(dòng)下載盡可能多的網(wǎng)頁;建立快速有效的索引;根據(jù)相關(guān)性對網(wǎng)頁進(jìn)行公平準(zhǔn)確的排序(下載,索引,排序)
第九章、 圖論和網(wǎng)絡(luò)爬蟲
構(gòu)建爬蟲的要點(diǎn):
1、構(gòu)建爬蟲要考慮用BFS還是DFS
目標(biāo)是在有限的時(shí)間里最多的爬下最重要的網(wǎng)頁,,在最極端情況下,爬蟲很小,那么只能爬每個(gè)網(wǎng)站的首頁而放棄這些網(wǎng)頁里的鏈接,所以原理上用BFS
但是因?yàn)榕酪粋€(gè)網(wǎng)站需要建立連接(三次握手,四次揮手),這個(gè)時(shí)間也要算上,所以在BFS的時(shí)候適當(dāng)?shù)募尤胍恍〥FS比較合適,,所以要建立一個(gè)調(diào)度系統(tǒng)來判斷優(yōu)先級(jí)。
2、頁面的分析和URL的提取
頁面的分析要看網(wǎng)頁的代碼是不是容易分析
3、URL表(用于記錄網(wǎng)頁是否被爬過)
因?yàn)檫@張表很大,所以要分配給很多服務(wù)器執(zhí)行,比較好的方法一般用到了兩個(gè)技術(shù):
(1)給每臺(tái)服務(wù)器明確分工,,根據(jù)URL分配給對應(yīng)的服務(wù)器
(2)批處理,每次向散列表發(fā)送一大批詢問,更新一大批散列表內(nèi)容,減少通信次數(shù)
第十章、 PageRank
信息檢索課上過,懂的。
第十一章、 如何確定網(wǎng)頁和查詢的相關(guān)性
主要是基于TF-IDF,信息檢索課上過,懂的。
第十二章、 有限狀態(tài)機(jī)和動(dòng)態(tài)規(guī)劃
地圖上地址的識(shí)別使用有限狀態(tài)機(jī),導(dǎo)航使用動(dòng)態(tài)規(guī)劃求最短路徑
第十三章、 Google AK-47的設(shè)計(jì)者
阿米特·辛格致力于簡單的搜索解決方案,比如如果暫時(shí)只能完成80%的提升幅度,那么放棄20%的提升留作以后改進(jìn)也是可以的,免得一開始就想做大而全的方案導(dǎo)致整個(gè)工程無法完成。另外,他有一個(gè)很好的習(xí)慣,就是所有的搜索算法修改都要講出為什么好的理由,從而讓一切都變得有據(jù)可依,講不清原理的算法改進(jìn)不采用。
第十四章、 余弦定理和新聞分類
兩篇文章的相似性可以根據(jù)他們TF-IDF所化向量的余弦來求得,,這個(gè)想法真的是巧妙。另外,對于計(jì)算大數(shù)據(jù)下的向量余弦,有幾個(gè)可以簡化的地方,向量長度不需要重復(fù)計(jì)算;只考慮向量中的非零元素;刪除虛詞;
第十五章、 矩陣運(yùn)算和文本處理中的兩個(gè)分類問題
余弦求相似性的運(yùn)算在文本很多的情況下計(jì)算量很大,很耗時(shí),,要一次性把所有新聞的相關(guān)性求出來,可以使用矩陣運(yùn)算中的奇異值分解。
第十六章、 信息指紋及其應(yīng)用
判斷一段文本是否相同可以使用信息指紋(一段不太長的隨機(jī)數(shù)),信息指紋的生成方法很簡單,先把文本轉(zhuǎn)成數(shù)字,然后使用偽隨機(jī)數(shù)產(chǎn)生器算法(平方取中間算法等),如果兩段文本相同,那么信息指紋也相同。如果文本大部分相同怎么辦,可以使用相似哈希。另外,對于視頻的相似性,因?yàn)槊?0幀中有一幀是關(guān)鍵幀,其他幀都和這幀差異很小,所以取得一系列關(guān)鍵幀后求信息指紋即可。
第十七章、 談?wù)劽艽a學(xué)的數(shù)學(xué)原理
RSA加密算法
第十八章、 搜索引擎反作弊
用通信模型對于反作弊也有用
(1)從信息源出發(fā),加強(qiáng)通信(編碼)自身的抗干擾能力
(2)從傳輸來看,過濾掉噪音,還原信息
在使用了PageRank算法之后,作弊者就想用大量鏈接指向同一個(gè)網(wǎng)站來提高這個(gè)網(wǎng)站的排名,但是導(dǎo)向這個(gè)網(wǎng)站的那一堆網(wǎng)站出鏈向量余弦距離接近1,這就說明都是同一個(gè)人建的,就是為了提高排名。
另外還可以利用圖論的知識(shí),在圖中個(gè),幾個(gè)節(jié)點(diǎn)兩兩相互連接,那么很有可能是作弊的,為了提高排名。
搜索引擎的目的有兩個(gè),一個(gè)是導(dǎo)航,另一個(gè)是查找信息,但是搜索引擎也不能保證信息的權(quán)威性和準(zhǔn)確性。怎么解決吶?有一個(gè)思路,比如提及吸煙的危害,與他一起出現(xiàn)的機(jī)構(gòu),如果出現(xiàn)頻次很高,一般就更權(quán)威,當(dāng)然,這需要對每句句子進(jìn)行句法分析,工作量很大,Google的句法分析器足夠快且服務(wù)器夠多才辦到。
第十九章、 談?wù)剶?shù)學(xué)模型的重要性
1、一個(gè)正確的數(shù)學(xué)模型應(yīng)當(dāng)在形式上是簡單的。
2、一個(gè)正確的模型一開始可能還不如一個(gè)精雕細(xì)琢過的錯(cuò)誤模型,但只要大方向是對的,就應(yīng)該堅(jiān)持下去。
3、大量準(zhǔn)確的數(shù)據(jù)對研發(fā)很重要
4、正確的模型也可能受噪音干擾,而顯得不準(zhǔn)確:這時(shí)不因該用一種湊合的修正方法彌補(bǔ),而是要找到噪音的根源,這也許通往重大的發(fā)現(xiàn)。
第二十章、 不要把雞蛋放到一個(gè)籃子里
最大熵原理:對一個(gè)隨機(jī)事件的概率分布進(jìn)行預(yù)測時(shí),我們的預(yù)測應(yīng)當(dāng)滿足全部已知的條件,而對未知的情況不要做任何主觀假設(shè)。
另外,對于任何一組不自相矛盾的信息,最大熵模型存在,而且唯一,是以指數(shù)形式展示的。
第二十一章、 拼音輸入法的數(shù)學(xué)原理
相比類似五筆輸入法的拆分字結(jié)構(gòu),拼音輸入法雖然鍵多,但是減少了思維的停頓,所以更合適,也不慢。另外,拼音轉(zhuǎn)漢字的算法類似最短路徑算法,使用了動(dòng)態(tài)規(guī)劃,輸入法是一個(gè)將拼音串變到漢字串的轉(zhuǎn)換器。
第二十二章、 自然語言處理的教父馬庫斯和他的優(yōu)秀弟子們
馬庫斯最大的貢獻(xiàn)是建立了LDC語料庫,另外培養(yǎng)出了很多優(yōu)秀的學(xué)生。做事情有兩種可以成功的方法,要么追求完美,完善細(xì)節(jié),要么以簡為美,簡單有效。
第二十三章、 布隆過濾器
把一個(gè)email地址通過8個(gè)隨機(jī)數(shù)生成器生成8個(gè)信息指紋后再通過一個(gè)隨機(jī)數(shù)生成器生成八個(gè)自然數(shù),然后在一串全是0的字符串中把相應(yīng)數(shù)字位置為1.那么以后遇到垃圾郵件直接就可以判斷郵箱了,也很節(jié)省存儲(chǔ)空間,不過可能有一點(diǎn)誤判。
第二十四章、 馬爾可夫鏈的拓展
貝葉斯網(wǎng)絡(luò)是加權(quán)的有向圖,是馬爾可夫鏈的拓展,用于文本分類
第二十五章、 條件隨機(jī)場文法分析及其他
馬爾可夫鏈的拓展,無向圖,用于句法分析,用于拼接出合理的句子,還有也可以一定概率上預(yù)測未來發(fā)生的事件(要有很大的訓(xùn)練數(shù)據(jù)量),美國警方就用這個(gè)達(dá)到有針對性的在某些區(qū)域防范某些犯罪。
第二十六章、 維特比和維特比算法
本質(zhì)上是動(dòng)態(tài)規(guī)劃求最短路徑。
第二十七章、 上帝的算法-期望最大算法
期望最大化算法屬于EM算法。根據(jù)現(xiàn)有模型,計(jì)算各個(gè)觀測數(shù)據(jù)輸入到模型中的計(jì)算結(jié)果,這個(gè)過程稱為期望值計(jì)算過程(E過程),重新計(jì)算模型參數(shù),以最大化期望值,稱為最大化過程(M過程)。EM算法對于凸函數(shù)能得到全局最優(yōu)解,然而文本分類不是凸函數(shù),只能得到局部最優(yōu)解。
用于文本分類就是一開始隨機(jī)選定一些點(diǎn)作為文本分類的各個(gè)中心點(diǎn),再針對每個(gè)點(diǎn)選出最近的點(diǎn)進(jìn)行歸類,產(chǎn)生很多的歸類劃分,但是這種劃分肯定效果很差,因?yàn)槭请S機(jī)選的中心點(diǎn)。然后,對于每塊劃分,計(jì)算它的中心作為新的中心點(diǎn)(之前分類的時(shí)候只是算了最近點(diǎn),不代表隨機(jī)選的點(diǎn)是中心點(diǎn)),然后再歸類,如此循環(huán)往復(fù)直到收斂,就完成了歸類。
第二十八章、 邏輯回歸和搜索廣告
搜索廣告的廣告點(diǎn)擊率可以使用邏輯回歸計(jì)算,基本上就是對于每個(gè)可能的影響因素,乘以對應(yīng)的參數(shù)后相加得到一個(gè)值,和最大熵函數(shù)很類似。至于參數(shù)的計(jì)算,因?yàn)樗且粋€(gè)一層的人工神經(jīng)網(wǎng)絡(luò),所以所有訓(xùn)練人工神經(jīng)網(wǎng)絡(luò)的方法都適用。
第二十九章、 各個(gè)擊破的算法和Google云計(jì)算基礎(chǔ)
把大的問題拆分成小的問題進(jìn)行解決后合并結(jié)果。
第三十章、 Google大腦和人工神經(jīng)網(wǎng)絡(luò)
不容易講清楚,基本來說,人工神經(jīng)網(wǎng)絡(luò)相當(dāng)于一個(gè)分類器,很智能的分類器。
第三十一章、 大數(shù)據(jù)的威力
大數(shù)據(jù)的作用很大