武麗婷 富野
摘要:在商業(yè)智能化的進(jìn)程中,用戶對商品的評價是用戶數(shù)據(jù)中非常重要的一部分。通過自然語言處理對用戶評論數(shù)據(jù)評價分析,更準(zhǔn)確了解消費者對產(chǎn)品的需求、意見以及建議,利用這些分析數(shù)據(jù)提高公司的決策質(zhì)量,有針對性地的改進(jìn)產(chǎn)品功能,從而提升消費者的滿意度。同時,新穎性監(jiān)測有助于對產(chǎn)品的持續(xù)改進(jìn),甚至可以從消費者的評價中了解競爭公司的產(chǎn)品趨勢。
關(guān)鍵詞:線上分析處理;數(shù)據(jù)挖掘;評價分析系統(tǒng)
中圖分類號:U692.4+3? 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2021)29-0147-03
隨著文本挖掘(Text Mining)的研究越來越多,例如關(guān)鍵語詞抽取技術(shù)(Key term extraction),文本聚類技術(shù)(Text Cluster?ing/Document Clustering),主題建模技術(shù)(Topic Model)等等,這些研究使得利用計算機(jī)技術(shù)分析消費者評價成為可能。新穎性檢測是異常檢測的特殊情況是文本挖掘技術(shù)的一個領(lǐng)域,異常檢測如入侵檢測,欺詐檢測,故障檢測,系統(tǒng)健康監(jiān)測,傳感器網(wǎng)絡(luò)中的事件檢測以及檢測生態(tài)系統(tǒng)干擾等,其主要被用于從數(shù)據(jù)集中移除異常數(shù)據(jù)。新穎性檢測的目的是新數(shù)據(jù)接納,或者說不同于已有的數(shù)據(jù)庫中的主題的數(shù)據(jù)。目前,有關(guān)異常檢測的方法有很多,其中應(yīng)用于自然語言處理方面的新穎性檢測的方法研究主要針對論文文獻(xiàn)的新穎性檢測與判定,新聞的新穎性檢測等。但這些方法的研究對象是長篇的文檔,而本項目的研究數(shù)據(jù)是與之相對很短的商品評價。如果直接將對文檔的研究方法直接應(yīng)用于評論文本,得出的結(jié)果將會是非常粗糙的。此外,在評論文本分析的過程中,我們關(guān)注的結(jié)果并不只是此評論的主題,還包括消費者對該主題的態(tài)度和觀點。
基于用戶評論的評價分析系統(tǒng),通過對用戶評論的收集與去噪、文本的預(yù)處理以及主題建模等等,提出一套適用于面向評論文檔的新穎性檢測的方法,能夠檢測出新出現(xiàn)的評價主題以及消費者的情感變化,利用數(shù)據(jù)變化,提高決策質(zhì)量和提升消費者滿意度。
1詞形還原和詞干提取
為了說明詞形還原和詞干提取之間的區(qū)別,考慮要處理的單詞:saw,詞干提取算法可能會簡單地刪除其派生詞尾并生成字母s,但是詞形還原可能會考慮更復(fù)雜的分析,并且會判斷是否將該單詞視為動詞還是名詞,以字典形式生成單詞 see 或 seen。詞形還原和詞干提取方法在單詞處理行為上也有所不同,確切地說,詞干提取方法經(jīng)常縮短單詞的派生形式,適用于粗粒度層面的處理,而詞形還原通常縮短單詞的不同詞形的形式,通常被應(yīng)用在細(xì)粒度層面的處理上,例如文本挖掘等類似的較為準(zhǔn)確的處理中。
在實際的實踐中,詞形還原或詞干提取通常由特定的語言處理庫來完成,例如在python平臺中,NLTK和scikit-learn包中的函數(shù)都可以實現(xiàn)這一目標(biāo)。
2詞嵌入
眾所周知,計算機(jī)不能識別“語言”,只能識別“數(shù)字”。因此,我們需要用數(shù)學(xué)的方式來表達(dá)單詞,也就是說,我們表示“詞”使用數(shù)字,這些“數(shù)字”實際上是“特征”。因此,這個程序也稱為“特征提取”。在這里,我們稱其為“詞嵌入”(Embed? ding),因為它描述了數(shù)學(xué)程序,并且使用向量表達(dá)式,將單詞從“詞匯”空間映射到實數(shù)空間。詞嵌入的方法包括人工神經(jīng)網(wǎng)絡(luò)[1],概率模型[2]等。
對于詞嵌入,使用了 word2vec 的 CBOW 模型,Continuous Bag-of-Words(CBOW)CBOW模型的訓(xùn)練輸入是某一個特征詞的上下文相關(guān)的詞對應(yīng)的詞向量,而輸出就是這特定的一個詞的詞向量。圖1展示了CBOW 的神經(jīng)網(wǎng)絡(luò)模型,是一個只有一層隱藏層的簡單的神經(jīng)網(wǎng)絡(luò),但是其隱層的激活函數(shù)其實是線性的,相當(dāng)于沒做任何處理,我們要訓(xùn)練這個神經(jīng)網(wǎng)絡(luò),用反向傳播算法,本質(zhì)上是鏈?zhǔn)角髮?dǎo)。此神經(jīng)網(wǎng)絡(luò)訓(xùn)練的目的不是輸出結(jié)果,而是得到此隱藏層的權(quán)重。輸入層的每一個神經(jīng)元{x1k, x2k, … ,xck, }對應(yīng)著輸入的上下文單詞。C 是上下文的窗口大小,V是詞典的大小。每一個單詞的通過one-hot編碼方式編碼,所以每個單詞的編碼長度為V,其中只有一位的值為1,其他位都為0。由于CBOW使用的是詞袋模型,因此上下文單詞都是平等的,也就是不考慮他們和關(guān)注的詞之間的距離大小,只要在上下文之內(nèi)即可。
下面通過一個實例來介紹CBOW神經(jīng)網(wǎng)絡(luò)的機(jī)制。考慮一個簡單的訓(xùn)練集,包括三個句子,如下:
S1:“the dog saw a cat.”
S2:“the dog chased the cat.”
S3:“the cat climbed in tree.”
那么,這個數(shù)據(jù)集的詞典為[the, a, in, dog, cat, tree, saw, chased, climbed],共有9個單詞。然后,對每一個單詞用one-hot 的方法進(jìn)行編碼,例如“dog”編碼后的向量表示為:[0, 0, 0, 1, 0, 0, 0, 0,0],“saw”的編碼為[0, 0, 0, 0, 0, 0, 1, 0, 0]。
然后考慮上下文窗口(context window)大小,在這個例子中,取窗口大小為4,用于訓(xùn)練這個語句:“The dog saw a cat in a tree”。得到(上下文,目標(biāo)詞匯)(context, target))數(shù)據(jù)對集:
([the, dog, saw, a], cat )
([dog, saw, a, cat], in )
([saw, a, cat, in], a )
([a, cat, in, a], tree )
對于([the, dog, saw, a], cat )數(shù)據(jù)點的圖示如圖1所示,隱藏層 h(hyper parameter)是一個維度為 N 的向量,表示特征的數(shù)量。輸出層是一個維度為V 的向量,包括了詞典中的每一個單詞,值表示根據(jù)輸入的上下文,檢測出該單詞的概率。One-hot 編碼后的向量通過一個V*N 的權(quán)重矩陣W連接到隱藏層。
3主題建模
在自然語言理解任務(wù)中,我們可以通過一系列的層次來提取含義——從單詞、句子、段落,再到文檔。在文檔層面,理解文本最有效的方式之一就是分析其主題。在文檔集合中學(xué)習(xí)、識別和提取這些主題的過程被稱為主題建模(Topic Model)。對于本系統(tǒng)要獲取的一些信息,例如:“客戶在談?wù)撌裁矗俊保爸饕P(guān)注什么?”等等,都要從產(chǎn)品評論中得到數(shù)據(jù)答案。其實答案就是聚類的“話題”,從數(shù)據(jù)集中提取作為主要信息,這個過程稱為“主題建模”。在目前,主題建模的算法有很多,比如潛在語義索引[3],由Papadimitriou、Raghavan、Tamaki和Vempala在 1998年發(fā)表的一篇論文中提出;然后在1999年,Thomas Hof?mann又在此基礎(chǔ)上,提出了概率性潛在語義索引(簡稱 PLSI)[4]。
隱含狄利克雷分布(Latent Dirichlet allocation,簡稱 LDA)是易生成的概率主題模型,由Blei, David M.、吳恩達(dá)和Jordan,? Michael I于2003年提出[5]。可以生成由主題詞列表描述的主題以及某個文檔屬于每個Topic 的概率列表。LDA定義主題,每個詞被任意分配到一個主題,評論被歸類到其詞中最具代表性的主題,然后它會查看每個單詞并將其分配給另一個主題,具體取決于每個主題的評論有多少包含此特定單詞。該算法是隨機(jī)的,這意味著我們每次運行它時,結(jié)果都不同,但具有良好的參數(shù)時它可以非常穩(wěn)定。本系統(tǒng)用獲取的數(shù)據(jù)進(jìn)行了LDA 試驗,目標(biāo)是擁有易于解釋的集群,因為這意味著我們的集群是概念的代表,可以被視為評論的子類型。我們分別嘗試了5、6、7和8個集群。其中最好的結(jié)果是當(dāng)我們有7個集群時更容易分析它們。
3.1潛在語義分析(LSA)
潛在語義分析(Latent Semantic Analysis, LSA)是主題建模的基礎(chǔ)技術(shù)之一,其核心思想是把我們所擁有的文檔-單詞矩陣分解成相互獨立的文檔-主題矩陣和主題-單詞矩陣。
3.2深度學(xué)習(xí)中的LDA:Lda2vec
LDA是現(xiàn)在應(yīng)用最廣泛的主題模型,它在文檔層面能很好地獲取主題向量的表達(dá),但是由于其主要側(cè)重于整篇文檔的主題檢測,所以當(dāng)文檔較短時,得到的結(jié)果較粗糙,效果就有所折扣。而在文本處理中,在更細(xì)層面的單詞表達(dá)上,有word2vec 方法,即本文中介紹的兩種基于神經(jīng)網(wǎng)絡(luò)的詞嵌入模型,有非常好的效果,得到的單詞向量能很好地體現(xiàn)單詞與單詞之間的相似程度(通過距離表征)。 Moody在2016年提出了lda2vec方法[7],是word2vec 和LDA 的擴(kuò)展,它共同學(xué)習(xí)單詞、文檔和主題向量。
以下是其工作原理:
Lda2vec在word2vec 的Skip-gram模型基礎(chǔ)上建模,以生成單詞向量。Skip-gram是通過利用輸入單詞預(yù)測周圍上下文詞語的方法來學(xué)習(xí)詞嵌入的模型。通過使用lda2vec,我們不直接用單詞向量來預(yù)測上下文單詞,而是使用上下文向量來進(jìn)行預(yù)測。該上下文向量被創(chuàng)建為兩個其他向量的總和:單詞向量和文檔向量。
單詞向量由的Skip-gram word2vec模型生成。而文檔向量
實際上是下列兩個組件的加權(quán)組合:
1)文檔權(quán)重向量,表示文檔中每個主題的「權(quán)重」(稍后將
轉(zhuǎn)換為百分比)。
2)主題矩陣,表示每個主題及其相應(yīng)向量嵌入。
文檔向量和單詞向量協(xié)同起來,為文檔中的每個單詞生成「上下文」向量。lda2vec 的強(qiáng)大之處在于,它不僅能學(xué)習(xí)單詞的詞嵌入(和上下文向量嵌入),還同時學(xué)習(xí)主題表征和文檔表征。
圖2 Lda2vec工作流程圖來自文獻(xiàn)[7]內(nèi)容,展示了其工作流程。除了Lda2vec方法可適用于短的文本主題提取模型之外,也提出了針對短文本的主題建模方法,在句子層面對其進(jìn)行主題分析。
4研究內(nèi)容及技術(shù)方案
4.1研究目標(biāo)
本項目的研究目標(biāo)是提出一套適用于面向評論文檔的新穎性檢測的方法,即隨著時間發(fā)展,消費者的評價的不斷出現(xiàn),此方法能夠檢測出新出現(xiàn)說的評價主題,以及消費者的情感變化。更具體地,包括:
1)評論的收集與去噪。收集包括網(wǎng)頁評論,郵件反饋等評論,并去除噪聲(包括電話號碼、電子郵箱、評論表情等)。
2)文本的預(yù)處理,包括詞形還原和詞干提取。
3)主題建模。本項目擬采用基于word2vec 和LDA兩種方法的主題建模,并加入情感主題。
4)新穎性檢測。由于消費者的評論具有很高的時效性,所以,本項目擬采用基于距離的新穎性檢測方法,并研究加入時間信息的檢測方法。
4.2采取的技術(shù)方案
4.2.1文本的預(yù)處理
在自然語言預(yù)處理中,有兩種算法可以完成這個任務(wù),即詞形還原和詞干提取。Stemming 和Lemmatization方法有一個共同的目標(biāo),即將詞的派生形式(例如動詞置換、所有格名詞)轉(zhuǎn)換為常用的基本形式(即字典中的基本形式)。例如:
-am,are,is?be
-dog,dogs,dog’s,dogs’?dog
但是,這兩種方法在原理上有所不同。Stemming過程的目標(biāo)是去除詞尾(即派生詞綴)并保留詞的公共前綴,這在大多數(shù)情況下可以輕松實現(xiàn)。此外,詞形還原的目的是去除詞的詞尾以獲得詞的詞典形式,即詞元,這需要復(fù)雜的詞匯和詞法分析,而不是詞干分析任務(wù)。由于評論的處理需要粒度較細(xì)的處理方式,所以本項目主要采用詞形還原方法。
4.2.2基于word2vec和LDA 的主題建模
LDA是最常用的主題模型,但是用于短文本的主題建模上會發(fā)生數(shù)據(jù)稀疏(sparsity)問題。原理上講,LDA是基于統(tǒng)計學(xué)的建模方法,如果一個簡短的文檔只有幾個詞,樣本數(shù)顯然太少,無法推斷參數(shù)。所以當(dāng)文檔較短時,得到的結(jié)果較粗糙,不能準(zhǔn)確地得到文本的主題。所以,考慮文本處理中顆粒較細(xì)的處理方法,即在單詞層面上,有word2vec方法,即上文中介紹的兩種基于神經(jīng)網(wǎng)絡(luò)的詞嵌入模型,有非常好的效果,得到的單詞向量能很好地體現(xiàn)單詞與單詞之間的相似程度(通過距離表征)。所以,考慮將word2vec 的“局部性(locality)”和LDA 的“全局性(globally)”相結(jié)合,同時,word2vec得到的結(jié)果向量是稠密的(dense),而LDA得到的結(jié)果向量是稀疏的,在查閱相關(guān)文獻(xiàn)的過程中,發(fā)現(xiàn)lda2vec方法就是運用的上述思想。除此之外,評論文檔一般包括消費者的情感信息,但一般都是簡單的表述,例如喜歡這件產(chǎn)品,或者覺得令人失望等。所以,可以利用關(guān)鍵詞識別方法,即利用文本中出現(xiàn)的清楚定義的影響詞(af?fect words),例如“開心”“難過”“傷心”“害怕”“無聊”,來影響情感分類。情感分類可簡單地分為三類:積極,中性,和消極。
所以,本項目借鑒lda2vec 如何將word2vec 和 LDA這相結(jié)合的方法,再結(jié)合情感信息,得到針對評論文本的主題建模。
5結(jié)論
通過對用戶評論的收集與去噪、對文本進(jìn)行預(yù)處理,提出一套適用于面向評論文檔的新穎性檢測的方法,設(shè)計出基于用戶評論的評價分析系統(tǒng),可以很好地幫助公司對產(chǎn)品進(jìn)行改進(jìn),提高了決策質(zhì)量、提升了消費者滿意度。隨著人工智能領(lǐng)域的不斷推進(jìn),相信本研究也將會進(jìn)一步完善,真正實現(xiàn)技術(shù)的落地應(yīng)用。
參考文獻(xiàn):
[1] Mikolov T, Sutskever I, Chen K, et al. Distributed representa?tions of words and phrases and their compositionality[J]. Ad?vances in Neural Information Processing Systems, 2013, 26:3111-3119.
[2] Globerson A, Chechik G, Pereira F, et al. Euclidean Embed?
ding of Co-occurrence Data[J]. Journal of Machine Learning Research, 2007,8(4):2265-2295.
[3] Papadimitriou C H,RaghavanP,TamakiH,etal.Latentseman? tic indexing:a probabilistic analysis[J].Journal of Computer and System Sciences,2000,61(2):217-235.
[4] Hofmann T.Probabilistic latent semantic indexing[J].ACM SI?
GIR Forum,2017,51(2):211-218.
[5] Blei D M, Ng A Y, Jordan M I. Latent dirichlet allocation[J]. Journal of machine Learning research, 2003,3(Jan):993-1022.
[6] CollobertR,Weston J.A unified architecture for natural lan?guageprocessing:deep neural networks with multitask learning [C]//Proceedings of the 25th international conference on Ma? chine learning - ICML '08.July 5-9,2008. Helsinki, Finland. New York:ACM Press,2008:160-167.
[7] Moody C E. Mixing dirichlet topic models and word embed? dings to make lda2vec[J]. arXiv preprint arXiv:1605.02019, 2016.
【通聯(lián)編輯:梁書】