朱姝姍,黨親親,蔣 玲
(樂山師范學院,a.圖書館;b.經濟管理學院,四川 樂山 614000)
隨著自然語言技術的不斷發展,特別是目前transformers 技術和預訓練語言模型技術的突破[1],基于深度學習方法的各項自然語言任務的性能有了很大提高[2-3],這些技術提供的信息服務越來越廣泛[4]。目前,在很多特定領域中,問答和檢索系統被廣泛應用,例如很多網站都提供針對該網站的檢索和問答服務[5]。特別地,在大學圖書館的服務中,基于自然語言技術的問答和檢索也是一個有價值的服務工具,被很多大學所采用[6]。
此類信息服務系統,面臨一個關鍵難題是專業術語的收集和處理問題。通常,一個特定領域存在大量的專業術語詞匯,這些詞匯往往是構建該領域信息服務系統不可或缺的數據。但是,此類詞匯的收集和應用都存在一定困難。首先,這類詞語,對于通用語料來說,是低頻詞甚至是表外詞,基于這些語料預訓練的語言模型和詞向量,無法有效處理此類詞匯,給接下來利用語言模型和詞向量構建該領域的服務系統帶來了挑戰。而為了能夠有效處理該領域的信息,需要盡可能地收集這個領域的專業術語詞,在進一步采用相關技術來提升信息系統處理此類詞匯的性能。因此,低成本收集專業術語詞是一個構建特定領域信息服務系統的一個關鍵環節。
首先,每個特定領域的術語詞都有自己獨特的涵義和使用方法,例如財務、法律、稅務等領域。收集這些領域的術語詞,往往需要專業知識,這給收集術語詞帶來了挑戰。其次,專業術語詞在通用領域中出現的頻次相對不多,且給定的特定領域往往缺少足夠的語料用于收集這些術語詞,進一步導致了收集困難。最后,如果利用大量的該領域的專家來進行收集標注,不僅人工成本高,而且效率低下,且尋找合格的領域標注人員有很大困難。因此,直接通過人工的方法,給獲得此類專業詞的收集整理帶來了很大挑戰。為此,針對特定領域,開發高效低成本的專業詞收集方法和工具,具有很大的應用價值。
可利用開源詞向量來收集術語詞。我們知道,語料中包含的詞語數量隨著語料的增多而增多,特別地,對于海量語料,往往包含了成百上千萬個詞語。對于這樣的語料,一般來說包含一個特定領域的大量術語詞。而目前的開源詞向量是利用海量語料訓練而來的,因此,借助這些開源詞向量數據集,為收集特定領域的術語詞提供的機會。我們研究發現,可以開源詞向量來有效收集特定領域的術語詞。
目前,利用海量語料訓練的開源詞向量,是研究和應用的一個熱點。英文訓練好的開源詞向量數據集有word2vec[7],GloVe[8],中文詞向量[9]。
利用給定的開源詞向量數據集來收集術語詞,可通過詞向量技術和人工標注方法結合的方式來獲取術語詞。我們通過如下步驟來進行。
首先,收集一定數量的種子詞。一般是利用這個領域里已有的術語詞集,也可以通過專業人士標注利用已有的專業語料進行人工標注得到一定量的術語詞,這一步是必不可少的,要求是在資源允許的條件下,盡量收集更多的專業詞匯。
其次,利用開源詞向量和詞詞相似算法,從詞向量集合中查找和種子詞相似的詞匯,作為術語詞的備選集合。由于術語詞和種子詞其使用環境接近,因此它們之間具有較大的相似度。這是通過詞相似方法來收集術語的理論根據。這個環節是自動的,成本低,速度快。我們知道,如果一個詞在訓練語料中出現的次數較多,其對應的詞向量有很好的表示。反之,很多專業詞往往是低詞頻詞,其對應的詞向量的表示就沒那么有效,因此利用詞向量計算相似度,不是完全準確的。
最后,利用專業人員對基于詞向量數據得到的備選詞進行標注,從而獲得準確的近義詞。這一步需要一定資源和人工。首先,備選詞集合中的詞匯數量一般不是很多,人工成本不是太高。其次,由于選擇的詞語和種子詞之間有較大的相似度,因此其中很大比例是術語詞。這一步需要研究如何用更少的人力成本來收集可能多的專業詞的近義詞的方法。需要通過實驗來分析基于詞相似計算查找的近義詞的情況,以及后續的人工標注的工作量進行評估,確定這個方法的有效性。另外,利用詞相似來查找近義詞算法中,有一些超參數需要確定,這些超參數對接下來的人工標注成本有影響。
針對圖書館信息服務領域,研究了如何用開源詞向量來收集術語詞的有效性。首先,選擇了圖書情報領域的一個術語詞集合作為種子詞集[10]。然后我們選擇一個被廣泛使用的開源詞向量數據—騰訊詞向量數據集[9]作為獲取術語詞的詞向量集合。詞向量相似度算法采用余弦相似度算法來召回種子詞的相似詞。利用人工方法,對召回的詞語進行人工標注,獲取準確的術語詞。實驗表明,設計的方法是一個高效的特定領域的近義詞標注方法,實現了圖書檢索領域的近義詞的收集整理工作,可為該領域的進一步信息服務提供了一個有價值的術語詞集合。最后,進一步分析了召回算法中的超參數對實驗結果的影響,進而找到了這些超參數設定的合適值,以降低這個工作人工標注工作量,提升這個方法的速度。
下面先介紹開源詞向量有關概念和詞相似計算方法,然后介紹利用開源詞向量獲取專業詞語方法。
訓練詞向量最常用的方法是采用淺層神經網來進行的。常用的模型有skipgram 模型和gloves 模型等。這些模型計算速度快,適合于用海量語料來訓練。我們采用的開源詞向量數據集采用的是skipgram 模型,是米科洛夫于2013 年設計的[7]。在skip-gram 語言模中,把語料看做詞語構成的一個序列集合S=(w(1),w(2),,...,w(M)),對于詞語w(t),用該詞預測其周圍的詞語詞語概率p(w(t+k) |w(t)),訓練的目標是增大這個概率。得到下面的損失函數進行優化:

其中,Kfalse 表示窗口半徑,通常取值為5。Skipgram 模型是淺層模型,只有輸入層和輸出層,因此計算速度快,可以采用大規模語料計算進行訓練。該方法訓練的詞向量具有優越的性能,被廣泛的研究和應用,目前依然是研究熱點方法。從公式(1)可以發現,基于skipgram 語言模型訓練的詞向量,是用相鄰的詞語互相預測得到的,這樣訓練的詞向量,其主要捕獲的是詞的上下文信息。這些上下文信息反映了這個詞的用法。
從skipgram 語言模型的損失函數,可以發現,如果2 個詞語出現的上下文越相似,則它們的詞向量越相似。因此可用詞向量分析詞語的相似度。類似的,2 個詞語,如果都是一個特定領域的術語詞,則它們的用法,也就是上下文有很大可能有一定的相似性,因此二者之間的向量的相似度值也較大。因此可以利用這個特性來獲得更多的一個給定領域的術語詞。需要用到詞向量的相似度,下面介紹基于詞向量度量2 個詞語的相似度方法。通常,基于詞向量方法相似度采用余弦相似度。設2 個詞 的對應的詞向量,則這兩個詞的相似度可通過如下公式計算:

表示向量的內積,表示向量的模長。研究發現[7],余弦相似度可以有效度量2 個詞語用法的相似或是相關程度。這給尋找用法相關的術語詞提供了一個有效的算法。但實際情況有些復雜,對于給定的一個術語詞,和其相似度較大的詞語,只有一定概率是術語詞,有些時候,盡管2 個詞的相似度很高,但也不能保證該詞就一定是和種子詞一樣是術語詞。這就給基于相似度尋找術語詞帶來了麻煩,因此需要人工標注來進一步確認哪些詞是術語詞。
利用詞向量的相似度來獲得術語詞,首先要有一定數量的種子詞,然后利用詞向量的相似度,找到和種子詞相速度高的詞語。通常有top-k 和top-p 兩種方法來獲得和種子詞相似度高的詞語,下面分別介紹。
(a)Top-k 方法。對種子詞w,設詞向量集合為V,令

topk(w,V)false 表示V 中和w 相似度最高的前k 個詞。K 的大小對選擇尋找術語詞效率和數量有影響。在下面的實驗中,我們會研究k 的影響。
(b)top-p 方法。對于種子詞w,類似公式(3),我們定義集合

top p(w,V)表示V 中和w 相似度大于p 的全部詞語。同樣地,參數p 尋找w 的相似詞有很大影響。我們通過實驗來研究p 的影響。
通過Top-k 或者top-p 方法,獲得了詞w 的相似詞集合 topk(w,V)或者top p(w,V),然后通過專業人士對這個集合中的詞進行標注,進一步獲得精確的術語詞。這一步需要一定時間和人工成本。
為了驗證開源詞向量是否有助于收集特定領域的術語詞,采用了一個被廣泛應用的詞向量數據集:騰訊詞向量數據集[9]。該詞向量采用是skip-gram 模型的改進版——位置敏感的skipgram 模型,傳統的skip-gram 語言模型是詞袋模型,也就是沒有位置信息,位置敏感的skipgram 采用的訓練目標函數如下:

該方法在原有skipgram 方法上添加了位置編碼信息zj,因而可以獲得更詞之間的相對位置關系,可以獲得了更好的詞表示。
騰訊詞向量數采用的訓練數據集是自大規模的多源數據,有來自騰訊新聞和天天快報的新聞語料,同時還補充了通過爬蟲技術獲得的互聯網網頁數據和來自在線小說語料等,訊詞向量首先利用了現有的詞典和維基百科和百度百科的詞條,使用的分詞算法中也考慮了Shi 等人于提出的語義算法[9]來發現語料中的新詞。
實驗中有2 類參數:一個是top-k 算法中參數k,首先設k=5,10,15,20,25,30,然后根據實驗結果的評估,最后k=10;另一類參數是top-p 中的p,設為p=0.5,0.6,0.7,0.8,0.9,0.95。實驗評估結果設定為0.7。
針對圖書館信息服務領域,選擇術語種子詞是一個專業詞匯數據集是<圖情常規專業>[10],該數據集中包含了4846 個中英圖書情報專業語詞,剔除了英文詞語,保留了其中的中文詞。這個數據集有有1158 個術語詞義項,每個義項包含了1 到4 個術語詞,其中有86 個義項包含了多個術語詞。很多詞通過約定符號進行了合并和縮寫表示,為了接下來的處理,我們對這些特殊表示進行了拆分補全處理:
a)原有語料中的含有小括號形式的專業“引(序)言”,把它們拆分為“引言”和“序言”。
b)代用中括號的表達,例如“重印[本]”,也做了進一步拆分,拆分結果為“重印”和“重印本”。
c)對于小括號中有多個專業的,例如“文件(宗卷”,“存檔)號碼”,做了拆分和補全,結果為“文件號碼”“宗卷號碼” “存檔號碼”。
首先利用實驗評估方法的有效性。通過實驗,可以回答利用開源詞向量集合,是否可以有效地擴充專業詞的近義詞。為此,從數據集D 中選擇了181 個圖書情報專業術語詞匯作為種子詞。按詞相似方法,按照top-k(k=50)方法,從詞向量集合V 中抽取了和這些目標詞相似度較高一些詞語,然后再經過專家標注,選出和圖書情報相關的術語詞(見圖1)。圖1 中的橫坐標是詞語id,縱坐標是召回的術語詞數量。按照種子詞召回的術語詞數量進行了遞增排序。從圖中可以看到,有超過一半的種子詞召回了超過10 個術語詞。平均每個種子詞召回了25 個術語詞。這表示通過詞相似算法,從開源詞向量中可以獲得大量的特定領域的專業術語詞。這個實驗說明,利用開源詞向量集合來獲取圖書情報特定領域的專業詞匯,是一個有效的方法。

圖1 所有種子詞擴充的術語詞分布
為了進一步評估近專業術語詞擴充的情況,按召回數量劃分了若干個區間,統計了每個區間包含的種子詞數量,見表1。可以看到,有57 個種子詞只獲得了至多2 個術語詞。而有77 個種子詞獲得了大于3 小于40 個術語詞。有46 個種子詞獲得了超過40 個術語詞。從這個表格中,可以看到,不同的種子詞獲得的術語詞數量差異很大。有大量的種子詞獲得了很少的術語詞,作為一個極端情況,有25 個術語詞沒有召回一個術語詞(見表1 中最后一行)。出現這種情況,有2 個原因:首先,這個術語詞可能是一個圖書情報中用法很不常見的生僻詞;還有一種情況是詞向量語料集合本身帶來的問題,例如訓練詞向量的語料中與某個種子詞相關的圖書情報術語詞很少導致的。與之相反,有大量的種子詞召回了很多術語詞。要注意的是,這些數據是基于top-50 方法得到的,因此每個種子詞至多召回50 個術語詞。這顯然是不充分的,實際上,針對召回多的種子詞,可以進一步擴大top-k 中的k 值,會進一步召回更多的術語詞。實驗的目的是正面這個方法的有效性,因此只嘗試了k=50 的情況。

表1 種子詞在不同術語擴充數量區間的分布情況
在top-k 算法中,k 越大,召回的術語詞數量可能越多。但是標注工作量也逐步增加。同時,隨著k 變大,召回的詞和目標詞的相似度越低,這這個詞是目標詞的術語詞的概率也變小。可見,k 對任務的性能和成本有著直接影響,選擇合適的k 是非常關鍵的一個環節。我們實驗了當k 的變化對召回專業詞數量變化的影響。在這個實驗中,設k=1,2,…,50,分布統計181 個種子詞在第k 個位置(top-50)召回的術語詞數量(見圖2)。我們可以看到一個顯著的趨勢:隨著k 增大,召回的術語詞穩步下降,降幅從100 左右降到50 左右。這個現象說明,k 越大,該位置是術語詞的概率越小。k=1 附近,概率大約為0.55,當k=50 的位置時候,概率大約為0.25 左右。

圖2 top-50 中第k 個位置召回術語詞的數量
在top-p 方案中,p 越大,也就是相似度越大,則召回的詞越少,獲得的術語詞也就越少。反之,可以獲得更多術語詞,但是p 變小,召回詞的數量會急劇增多,會大大加重標注的代價。我們用實驗來分析p 的大小對召回術語詞數量的影響。為此,我們根據p 的取值范圍和實驗設定,設定了p 的5 個分布區間,基于181 個種子詞召回的術語詞,按其和種子詞之間的相似度,統計了落在不同區間獲得的術語詞數量。實驗結果如圖3所示。
在圖3 中,召回的術語詞和種子詞的相似度落在區間[0.6,0.7)中最多,其次是[0.5,0.6)區間。這是因為,在此區間內,按照top-p 算法,召回了和種子詞相似的詞數量更多,因此其中包含了更多數量的術語詞。而相似度越大,召回詞語的數量越少,基于標注得到的術語詞也少,見圖3 中最后2 個區間中術語詞的數量。為了平衡標注工作和術語詞召回數量2 個矛盾結果,取p=0.5,這樣可以保證召回數量不是太多,同時可以獲得一定數量的術語詞。

圖3 p 對術語詞數量的影響
文章介紹了利用開源詞向量獲得特定領域術語詞的方法。整個方案包括2 個步驟;首先,利用詞相似算法召回和種子詞的最相似的詞;然后,利用圖書情報領域專家對這些詞進行判別標注,以便獲得精確的圖書情報領域的術語詞。采用了2種基于詞相似算法進行召回,top-k 和top-p 算法,同時分析了參數k 和p 的獲得術語詞的數量和標注工作量影響。實驗結果表明,利用開源詞向量數據集可以有效擴充圖書情報領域的術語詞。