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