非主流自然語言處理 遺忘演算法系列(一) 演算法概述

2021-07-07 09:29:28 字數 2890 閱讀 7426

一、前言

這裡「遺忘」不是筆誤,這個系列要講的「遺忘演算法」,是以牛頓冷卻公式模擬遺忘為基礎、用於自然語言處理(nlp)的一類方法的統稱,而不是大名鼎鼎的「遺傳演算法」!

在「遺忘」這條非主流自然語言處理路上,不知不覺已經摸索了三年有餘,遺忘演算法也算略成體系,雖然仍覺時機未到,還是決定先停一下,將腦中所積梳理成文,交由nlp的同好們點評交流。

曾與前總編劉江有過一面之緣,竟能圍繞遺忘這個演算法相談甚歡,回想起來極是難得,本系列文章、基礎演算法原始碼、演示程式都將在csdn首發,算是一些紀念吧。

二、遺忘演算法原理

能夠從未知的事物中發現關聯、提煉規律才是真正智慧型的標誌,而遺忘正是使智慧型生物具備這一能力的工具,也是適應變化的利器,「遺忘」這一頗具負能量特徵的傢伙是如何實現發現規律這麼個神奇魔法的呢?

讓我們從巴甫洛夫的狗說起:狗聽到鈴聲就知道開飯了。

鈴聲和開飯之間並不存在必然的聯絡,我們知道之所以狗會將兩者聯絡在一起,是因為巴甫洛夫有意的將兩者一次次在狗那兒重複共現。所以,重複是建立關聯的必要條件。

我們還可以想像,狗在進食的時候聽到的聲音可能還有鳥叫聲、風吹樹葉的沙沙聲,為什麼這些同樣具備重複特徵聲音卻沒有和開飯建立關係呢?

細分辨我們不難想到:鈴聲和開飯之間不僅重複共現,而且這種重複共現還具備乙個相對穩定的週期,而其他的那些聲音和開飯的共現則是隨機的。

那麼遺忘又在其中如何起作用的呢?

1、所有事物一視同仁的按相同的規律進行遺忘;

2、偶爾或隨機出現的事物因此會隨時間而逐漸淡忘;

3、而具有相對穩定週期重複再現的事物,雖然也按同樣的規律遺忘,但由於週期性的得到補充,從而可以動態的保留在記憶中。

在自然語言處理中,很多物件比如:詞、詞與詞的關聯、模板等,都具備按相對穩定重現的特徵,因此非常適用遺忘來處理。

三、牛頓冷卻公式

那麼,我們用什麼來模擬遺忘呢?

提到遺忘,很自然的會想到艾賓浩斯遺忘曲線,如果這條曲線有個函式形式,那麼無疑是模擬遺忘的最佳建模選擇。遺憾的是它只是一組離散的實驗資料,但至少讓我們知道,遺忘是呈指數衰減的。另外有乙個事實,有的人記性好些,有的人記性則差些,不同人之間的遺忘曲線是不同的,但這並不會從本質上影響不同人對事物的認知,也就是說,如果存在乙個遺忘函式,它首先是指數形式的,其次在實用過程中,該函式的係數並不那麼重要。

這提醒我們,可以嘗試用一些指數形式的函式來代替遺忘曲線,然後用實踐去檢驗,如果能滿足工程實用就很好,這樣的函式公式並不難找,比如:退火演算法、半衰期公式等。

有次在阮一峰老師的部落格上看關於帖子熱度排行的演算法時,其中一種方法使用的是牛頓冷卻定律,遺忘與冷卻有著相似的過程、簡潔優美的函式形式、而且引數只與時間相關,這些都讓我本能想到,它就是我想要的「遺忘公式」。

在實踐檢驗中,牛頓冷卻公式,確實有效好用,當然,不排除有其他更佳公式。

四、已經實現的功能

如果把自然語言處理比作從礦砂中淘金子,那麼業界主流演算法的方向是從礦砂中將金砂挑出來,而遺忘演算法的方向則是將砂石篩出去,雖然殊途但同歸,所處理的任務也都是主流中所常見。

本系列文章將逐一講解遺忘演算法如何以o(n)級演算法效能實現:

1、大規模語料詞庫生成

1.1、跨語種,演算法語種無關,比如:中日韓、少數民族等語種均可支援

1.2、未登入詞發現(只要符合按相對穩定週期性重現的詞彙都會被收錄)

1.3、領域自適應,切換不同領域的訓練文字時,詞條、詞頻自行調整

1.4、詞典成熟度:可以知道當前語料訓練出的詞典的成熟程度

2、分詞(基於上述詞庫技術)

2.1、成長性分詞:用的越多,切的越準

2.2、詞典自維護:切詞的同時動態維護詞庫的詞條、詞頻、登入新詞

2.2、領域自適應、跨語種(繼承自詞庫特性)

4、共現詞典生成(詞云、知識圖譜)

五、技術交流及業務

1、技術qq群: 217947873

2、****:

[email protected]



自然語言處理系列 開篇

前幾天在網上意外搜到了自然語言處理 natural language processing,nlp 的學習路線圖 roadmap,點這裡 一共四張,分別介紹了概率 統計 機器學習 文字挖掘 nlp背景 和基於深度學習的自然語言處理,仔細看下來,既欣喜又慚愧。欣喜的是地圖內容全面而有條理,通篇下來幾無...

自然語言處理 TF IDF演算法

當我們去了解一篇文章是不是我們所需要時就要去看摘要,看關鍵字,而對於關鍵字的提取使用的主要流行的演算法就是if idf和textrank演算法,此篇博文重點是對if idf演算法的學習。3 詞頻 逆文件頻次演算法 tf idf 是由兩部分組成,其中tf演算法是用於統計乙個詞在一篇文件出現的頻次,id...

自然語言處理之TF IDF演算法

乙個容易想到的思路,就是找到出現次數最多的詞。如果某個詞很重要,它應該在這篇文章中多次出現。於是,我們進行 詞頻 term frequency,縮寫為tf 統計。結果你肯定猜到了,出現次數最多的詞是 的 是 在 這一類最常用的詞。它們叫做 停用詞 stop words 表示對找到結果毫無幫助 必須過...