冉丈杰
(西南交通大學制造業產業鏈協同與信息化支撐技術四川省重點實驗室,成都 611756)
城市群發展是世界經濟科技重心轉移的結果,近年來,城市群綜合科技服務平臺的快速成長與發展,使得線上服務交易的需求量急劇增加,同時伴隨著云計算、大數據等新興技術的迅猛發展,線上服務交易模式也迅速發展,成為綜合科技服務平臺的重要組成部分。但在服務交易中普遍存在技術需求描述模糊、技術供需文本非結構化等現象,這些情況使得服務供需匹配出現匹配困難、匹配成功率低等問題。截至2021年4月底,國內首創的技術轉移全流程服務平臺——科易網(www.1633.com)已發布科技成果共449565 項,而已簽約項目僅10784項,占比僅為2.4%。在此種背景下,針對非結構化的技術供需文本數據,研究面向科技資源服務交易的供需匹配技術,對促進科技服務交易的實現、提高科技服務交易的成功率具有重要意義。
當前針對服務供需匹配技術的研究,主要包括語義匹配、特征匹配等方面,而在進行供需匹配的過程中,又主要包括關鍵詞提取與語義相似度匹配2個部分,相關技術的研究為面向科技資源服務交易的供需匹配提供了技術支撐。
關鍵詞提取是進行服務供需匹配的前提,目的是從非結構化的需求文本中識別出有效的需求關鍵點?,F有的研究成果主要包括以下2個方面。
(1)基于詞頻統計的關鍵詞提取。紀蔚蔚運用詞頻統計的方法,對科學學相關文本的內容進行分析,研究其發展動向和研究熱點。熊則見等對關鍵詞詞頻進行統計,并對相關文獻進行了計量分析。He 等基于傳統的統計特征(如頻率、位置等)從網頁中提取關鍵詞。Kuncoro等提出TF-IDF方法,對社交媒體應用中用戶搜索的關鍵詞進行排序。
(2)基于詞圖網絡的關鍵詞提取。已有的分析方法主要利用TextRank模型,根據詞語間的鄰接關系構建詞圖網絡。Rahman 等提出并評估了一種新的基于TextRank 的技術,通過分析軟件變更任務的描述來自動識別和建議搜索項。謝瑋等基于TextRank 算法提取論文關鍵詞,并以實現論文審稿分配過程的自動化為目標,設計了一個論文推薦系統。
2013年Google 公司開發了一款用于訓練詞向量的軟件工具word2vec,其可根據給定的語料庫將一個詞語表達成向量形式。Xue 等基于語義方向點式相似距離模型,提出了一種使用word2vec 工具的情感詞典構建模型。此外,寧建飛等將word2vec 與TextRank 模型進行有效融合,夏天將百科知識以詞向量的形式融入TextRank 模型,改進單文檔關鍵詞抽取效果。但word2vec 在處理大規模語料時速度較慢,鑒于這個問題,Pennington 等綜合了LSA(latent semantic analysis)和word2vec 中CBOW 模型的優點,于2014年開發了GloVe 模型,充分考慮詞間共現,訓練速度有所提高。2016年Facebook開發了一款開源的快速文本分類器fastText,其文本訓練速度更快,且適合更處理大規模語料。2018年Google AI 研究院提出一種全新的預訓練模型BERT,在大量測試中該模型的性能均超越以往的模型,成為自然語言處理發展史上的一塊里程碑。李俊等在TextRank 的基礎上,利用BERT詞向量加權的方式,提出一種優化的關鍵詞抽取方法。
目前服務供需匹配的研究主要集中在供需匹配過程中的需求識別、需求聚類以及供需雙邊匹配問題上。劉慧敏等提出一種基于本體語義的云制造服務供需智能匹配方法。張嫻等針對技術研發端與產業需求端的信息對接問題,建立一套利用本體技術實現專利技術知識表示和供需信息知識匹配的知識組織模式。何喜軍等先后提出基于語義相似聚類的技術需求識別模型以及基于本體和SAO 結構的技術供需多維語義結構匹配模型。張建華等提出基于領域本體與CBR的知識供需匹配方法。
服務供需匹配模型的構建主要包括4個步驟:①采集技術需求文本并提取其關鍵詞。②采集技術供給文本建立技術供給基礎庫,并在此基礎上根據技術需求關鍵詞檢索出高相關項目,構建技術供給核心庫。③對技術需求的名稱文本與技術供給核心庫中項目的名稱文本進行分詞與去停用詞,并計算出各個分詞詞語之間的語義相似度。④利用各個分詞詞語之間的語義相似度、權重以及技術需求關鍵詞與對應技術供給之間的相關度,計算出服務供需匹配值,進行服務供需雙邊匹配。整個模型如圖1所示。

圖1 服務供需匹配模型
在利用TextRank 進行關鍵詞提取之前,首先采集需要用到的技術需求文本。之后,利用TextRank提取技術需求關鍵詞的主要步驟為:
(1)對于所用采集到的技術需求文本,根據標點符號(如“?!薄埃 保⒎指畛蓚€句子,結果表示為={,,…,S}。
(2)對?S∈(= 1,2,…,)做分詞與去停用詞處理,標記并保留指定詞性(如名詞、動詞、 形容詞)的詞語, 結果表示為S={t,t,…,t},t(= 1,2,…,,= 1,2,…,)即為候選的關鍵詞。
(3)根據每個候選關鍵詞t(= 1,2,…,,= 1,2,…,)之間的鄰接關系構建一個無向有權圖=(,),其中是由所有候選關鍵詞t(= 1,2,…,,= 1,2,…,)構成的點集,是由詞語間鄰接關系構成的邊集,且是×的子集,若兩個詞語V,V∈在長度為的窗口中共現,則認為它們之間存在鄰接關系,即V與V之間存在邊。
(4)令w為任意兩點V,V∈之間的權重,對于給定的點V,(V)表示指向V的點集,(V)表示V指向的點集,則點V的權重得分為

式中,阻尼系數∈[0,1],表示圖中某一給定頂點跳轉到圖中另一隨機頂點的概率,通常取= 0.85。
(5)利用式(1)循環迭代計算出每個頂點V的權重得分(V)直至收斂,并選取(V)較高的多個詞語作為提取的關鍵詞。
在進行服務供需匹配的過程中,為了能夠更加精準地匹配技術供需的文本,除了要針對口語化、非結構化的技術需求文本提取關鍵詞外,還需要針對技術供給文本進行一定程度的篩選。為實現這一目標,可以利用采集到的技術供給文本建立技術供給基礎庫,隨后將技術需求文本的關鍵詞與每一條技術供給文本進行相關度搜索,檢索出相關度較高的技術供給文本,并利用這些技術供給文本構建出技術供給核心庫,為更加精準匹配技術需求提供可能。
上述相關度搜索的過程可采用BM25相關度搜索算法來實現,該算法通常用于計算查詢語句與文本集合中每個元素之間的相關性。在面向科技資源服務交易的服務供需匹配過程中,將技術需求的關鍵詞作為查詢語句,將技術供給基礎庫作為文本集合,計算出與每一條技術供給文本∈的BM25得分,將BM25得分較高的技術供給文本作為技術需求關鍵詞對應的技術供給核心庫,之后將技術需求名稱文本中各個分詞的技術供給核心庫合并,作為此條技術需求的技術供給核心庫。BM25 得分的具體計算過程為:
(1)對查詢語句進行語素解析(一般是分詞), 表 示 為={,,…,q}, q∈(=1,2,…,)即為解析所產生的每個語素。
(2)對于技術供給基礎庫中的某一條技術供給文本∈,計算出每個語素q(= 1,2,…,)與的相關性得分(q,)。
(3)將每一個q(= 1,2,…,)與的相關性得分(q,)進行加權求和,即得查詢語句與技術供給文本的BM25得分( )
,。
BM25得分的計算公式為

式中,W表示每一對q與相關性得分的權重,通常定義為IDF,計算公式為

式中,表示文本集合中文本的總個數,(q)表示中包含q的文本數,0.5 主要用做平滑處理??梢钥闯?,(q)越大,q的重要性就越低,其權重也就越小。
(q,)的計算公式為

式中,f為語素q出現在文本中的詞頻,qf為語素q出現在查詢語句中的詞頻,,,均為調節因子,通常取= 2,= 1,= 0.75,為文本的長度,為所有∈的平均長度。
通常語素q在查詢語句中只出現一次,故取qf= 1,則式(4)可改寫為

從而BM25得分的計算公式可改寫為

隨著計算機技術的不斷發展,人們以此為基礎,針對自然語言處理領域開展了廣泛的研究。為了使自然語言能夠被計算機處理,則需要將自然語言轉換為計算機能夠處理的數字信號,文本向量化就是其中一種重要的手段。當前,文本向量化主要是通過詞語向量化實現的,即將單個詞語轉換為一個向量表示的形式,這就是詞向量。詞向量一般通過對自然語言進行建模,將語料庫中的詞語映射成為一個實向量。詞向量能夠良好地反映出詞語自身的語義特性,其每一維都可以被解釋成一種語義或語法上的特征,這樣一來相似的詞其詞向量在高維空間上將更為接近,詞語間的相關性、依賴關系也更為突出。
常見的靜態詞向量訓練模型有word2vec、fastText 等。word2vec 模型是一種雙層神經網絡模型,包括CBOW 模型和Skip-gram 模型兩種類型,CBOW 模型使用詞語的上下文作為輸入來預測這個詞語本身,Skip-gram 模型使用一個詞語作為輸入來預測它的上下文。fastText 模型與word2vec 中的CBOW 模型在架構上相似,區別在于二者所執行的任務不同:fastText 模型預測標簽,而CBOW 模型預測中間詞。BERT 是一種動態詞向量訓練模型,且可通過直接調用遠程服務器獲取詞向量,本文將直接利用本地訓練模型或遠程服務器獲取需要的詞向量。
假設技術需求文本中一個分詞詞語的向量為=(,,…,x),技術供給文本中一個分詞詞語的向量為=(,,…,y),則二者的余弦相似度為

若技術需求文本被分詞為{,,…,X},技術供給文本被分詞為{,,…,Y},將兩個分詞之間的語義相似度記為Sim(X,Y),則文本間的語義相似度矩陣為

由上所述,技術需求文本被分詞為{,,…,X}, 技 術 供 給 文 本 被 分 詞 為{,,…,Y},并利用TextRank 提取這些分詞詞語的權重,分別記為{w,w,…,w}以及{w,w,…,w},并對它們進行歸一化處理,公式分別為

若將技術需求關鍵詞X(= 1,2,…,)與技術供給文本之間的BM25 得分記為s,則技術供需文本之間的服務供需匹配值的公式定義為

的大小即表示了技術供需文本之間匹配程度的大小,越大,說明技術需求越可能與技術供給對接成功,同時通過設置服務供需匹配值的閾值,還可進一步篩選出可能與技術需求對接成功的技術供給。
技E網(www.ctex.cn)是由中國技術交易所建設并運營的國家技術交易全程服務支撐平臺,其中一共提供了11 種類型的技術需求,本文僅利用Python 采集技E 網中發布的電子信息技術類相關需求文本共1274 條,采集的文本內容包括技術需求名稱及需求簡介。利用Python 中提供的textrank4zh 開源庫,設置TextRank 算法中的窗口大小為2,并取關鍵詞的最小長度為3,得到僅對需求名稱文本提取關鍵詞的結果如表1所示,得到對需求名稱和需求簡介文本提取關鍵詞的結果如表2所示,兩表均取關鍵詞權重最大的前10個結果。

表1 需求名稱文本關鍵詞提取結果(部分)

表2 需求名稱文本+需求簡介文本關鍵詞提取結果(部分)
從表1、2可以看到,僅對需求名稱文本提取關鍵詞得到了技術指向性更明確的結果,而對需求名稱文本+需求簡介文本提取關鍵詞的結果包含一些無用信息,也正是由于需求簡介文本表述模糊這一痛點導致其中可能包含與實際技術需求無關的詞匯。后續的實驗利用自技術需求名稱文本提取到的關鍵詞繼續開展。
同樣利用Python 采集技E 網中發布的電子信息技術類相關技術供給文本,采集的文本內容包括技術項目名稱及項目簡介,共10517 條。利用BM25 相關度搜索算法,將3.1 節中提取到的技術需求關鍵詞與技術供給基礎庫中的所有文本進行匹配,將BM25 得分大于0 的技術供給項目作為集合,構建出該關鍵詞的技術供給核心庫。以技術需求關鍵詞“管理系統”為例,表3 給出了其技術供給核心庫中部分項目的名稱,僅展示BM25得分最大的前10個結果。

表3 “管理系統”技術供給核心庫(部分)
將技術需求名稱文本中各個關鍵詞的技術供給核心庫合并,即得到該條技術需求對應的技術供給核心庫。
合并3.1 及3.2 中提取到的技術需求與技術供給文本共11791條,僅使用其名稱的文本作為語料庫,因BERT可直接調用遠程服務器獲取詞向量,故僅使用word2vec 以及fastText 進行詞向量訓練,在本文的文本環境中,兩種方法所用訓練時間隨詞向量維度變化的關系曲線如圖2所示。

圖2 詞向量維度-訓練時間關系曲線
從圖中可以看出,word2vec 的訓練時間受詞向量維度的影響不明顯,而fastText 的訓練時間隨詞向量維度的增加而明顯增加,這是由兩者內在原理的差異引起的,fastText 通過輸入語句的類別標簽作為目標訓練詞向量,同時引入N-gram 優化準確性,而word2vec 中的Skip-gram通過預測上下文獲得詞向量。此外,fastText 還可勝任分類任務,而word2vec 僅在于獲得詞向量。盡管訓練fastText 模型需要更長的時間,但其性能更優于word2vec,更適合大語料庫的訓練,在一些場景下,其擁有更佳的準確性,因此本文后續的實驗以fastText和BERT 模型訓練的結果開展。
利用fastText 訓練本文的語料庫,并設置詞向量的維度為100,以技術需求“企業資產管理系統”為例,利用式(8)、(9)計算其于技術供給“基于ERP 的流程企業集成化管理系統及支持軟件”各個分詞的語義相似度矩陣,結果如表4 所示,基于BERT 的技術供需語義相似度矩陣如表5所示。

表5 基于BERT的技術供需語義相似度矩陣
從表4、5可以看出,基于BERT 的訓練結果對于詞向量的區分效果更好,這也反映了BERT模型擁有更佳的準確性。

表4 基于fastText的技術供需語義相似度矩陣
同樣以技術需求“企業資產管理系統”為例,利用式(10)~(12)計算出其與“管理系統”的技術供給核心庫中各個項目的服務供需匹配值,基于fastText 訓練結果得到的服務供需匹配值如表6 所示,基于BERT 訓練結果得到的服務供需匹配值如表7所示,僅展示部分技術供需匹配的結果。

表6 基于fastText的服務供需匹配值(部分)

表7 基于BERT的服務供需匹配值(部分)
從表6、7可以看出,不管是基于fastText 還是BERT訓練的結果,語義最為接近的技術供給項目均被篩選出,說明本文所提模型在一定程度上具有普適性。在實際情況中,往往需要篩選出多個可能的技術供給項目,再交由人工進行下一步篩選及匹配,因此可以通過設置服務供需匹配值的閾值,進一步篩選出小規模的技術供給項目,為服務供需匹配的最終對接提供支撐。
在基于資源池的科技服務交易中,為實現服務供需之間的匹配與對接,本文在供需匹配視角下,基于體現語義特征的詞向量,提出一種面向科技資源服務交易的供需匹配模型。結果表明:①基于TextRank 提取技術需求的關鍵詞,在一定程度上體現了技術需求文本的語義特征。②利用BM25相關度搜索算法成功對相關度較大的技術供給進行了初步篩選。③基于不同的詞向量訓練模型,通過計算服務供需匹配值,明確了具體供需文本之間的相似性,進一步縮小了有效技術供給的篩選范圍,提高了后續供需對接成功的可能性。
文本為實現科技資源服務交易中的供需匹配提供了一種思路,但仍存在不足與缺陷:①僅對技術需求文本的語義特征進行提取,未綜合考慮其他方面的因素。②在進行詞向量模型訓練時,僅采用技術供需的名稱文本作為訓練的語料庫,無法全面反映技術供需的具體語義情況。③對于技術供需能否成功對接,尚缺少一個評價指標,且最終要實現供需對接還需人工審核。