1. 程式人生 > >ConceptVector: Text Visual Analytics via Interactive Lexicon Building using Word Embedding

ConceptVector: Text Visual Analytics via Interactive Lexicon Building using Word Embedding

 

論文簡介

  本文是對詞嵌入的一種應用,使用者可以自己建立自己所需要的concept,系統根據使用者提供的seed可以實現推薦其他詞彙,以幫助使用者更高的構建自己的concept。同時使用者可以利用自己建立的concept對文字進行分析,通過作者提出的一種演算法來實現對文字排序,以此來篩選出對使用者更有價值的資訊。

 


 

  首先明確concept的基本概念,原文的解釋是一組語義相關的關鍵字,用來描述特定的物件、現象或主題。事實上就相當於一個集合的名字;例如,有一個名為clothing的concept,那麼它可能就包含{T-shirt,dress,underwear,put}等等,本文所做的工作就是幫助使用者建立使用者想要的concept。

  同時也要知道詞嵌入概念:詞嵌入其實就是把每個單詞對映成一個向量,這樣可以方便機器計算,以此來找到單詞之間的相似性。目前詞嵌入演算法大致分為三類1.Embedding layer、2.Word2Vec/Doc2Vec 3.Glove 本文采用的是Glove演算法。

 

現有研究

  LIWC(Linguistic Inquiry and Word Count):人類手工構建的一個concept集,它速度快、解釋性強且具有很強的有效性。但另一方面,它耗時耗力,同時它也很小,只有40多個情感concept,每個concept只包含了不到100個詞彙。

  Empath(該文章發表在CHI 2016):Empath選擇了18億字的現代小說資料集,通過深度學習來尋找這些單詞和短語之間的潛在聯絡。但同樣的,它不支援互動,concept都是預先構建好的,使用者並不能對他進行自定義更改。

  下面用兩個例子來說明empath的侷限性

example-1:Tweets by U.S. 2016 Presidential Candidates

  利用Empath預先構建好的197個concept來分析希拉里和特朗普的兩組推文,每組推文包含大概3000條資訊,統計結果如圖

  

    由圖可以清晰地看到兩組之間存在明顯差異(p<0.01)

  基於此作者提出了一種互動式構建concept的視覺化系統conceptVector,特朗普的集中在醜陋,咒罵,驚喜。而希拉里則集中在性、飲食和家庭的concept。進一步研究發現存在許多假陽性資訊,如suprise中的wow,意義較低,只是表示語氣而已。而在plant這個concept中佔比最大的bush,系統將他識別為灌木叢,

  而實際上特朗普指的是Jeff Bush.等等。

example-2:Tweets from NASDAQ 100 Companies

  利用斯柯達100家公司的tweets,對於屬於每個公司的一組tweet,我們通過計算計算在預先構建的194個concept中包含的單詞出現的次數來形成一個194維的特徵向量,然後通過k-means聚類和主成分分析法進行2維展示。以此來發現有意義的叢集。

  

  發現名字對於叢集效果影響較大,名字中含有{cook、dish}的被叢集到一起,同樣的含有technology的也被劃到了一起。當我們刪除這些關鍵詞後,發現叢集效果更好。並發現了更有意義的叢集。例如,萬豪酒店和TripAdvisor因為涉及旅遊、度假和睡眠概念的詞彙(橄欖綠加黑色邊框)而形成了一個叢集。帶有負面情緒的公司,如嘲弄、忽視、殺戮和仇恨,也被聚集在一起(紅點和紅邊)。

  由此本文作者研發了conceptVector系統。

 


 

 系統設計

    整體系統介面如圖

    簡單介紹一下系統:作者將concept化分為兩種:單極性和雙極性,雙極性包括的比如{happy ,unhappy},單極性比如work-related。使用者給自己的concept起好名字後,通過新增種子關鍵字,系統就會給出推薦詞,旁邊還可以看到推薦詞的叢集效果以更好的幫助使用者進行構建。構建完成後,使用者可以用自己的concept來對評論集進行排名,如果發現結果不如人意,使用者可以立即對concept進行更改,即:概念細化階段。通過不斷地迭代來篩選出最符合使用者需求的資訊。同時旁邊也有輔助檢視幫助使用者進行判斷。

                

    整個系統設計理念如上圖(概念構架+文字分析)

主要演算法

   Glove: 參考 https://blog.csdn.net/coderTC/article/details/73864097

   文章中提出的評分演算法

    這裡只拿雙極性詞作為舉例,單極性大同小異,對於每個concept對應三個集合{positive、negative、and the irrelevant set}分別用Lp,Ln,Li表示

    q:待查詢的詞向量      l:集合L中包含的關鍵詞向量

       

    p(q|L)表示q屬於L的概率   k(q,l)用來計算q和l之間的相似度

    

    本文用高斯密度核函式來計算向量之間的相似性。

    假定先驗概率表示式和後驗概率表示式為

 

    由此可根據下面這個式子計算出單詞q屬於concept C 的得分

     


 

評估 

  1.選取15名大學生讓他們構建“family”“body”“money”三個concept 用LIWC中的詞彙作為標準,在這個字典中,family包含了65個單詞,body包含了180個單詞,money包含了173個單詞,通過準確率,查全率,查到單詞的數量三個方面進行比較,結果如圖

 

          

 

   2.為了驗證雙極性概念模型好不好,採用Hedonometer project中的10200個關鍵字組成的對幸福概念相關的排名列表,然後利用自己的KDE演算法來對單詞進行排序,然後算得與標準集之間的斯皮爾曼相關係數,實驗結果如圖

         

    顯然GloVe+KDE的組合是最好的。

    3.為了說明比Emapth好,還找了兩個專家來對兩個系統進行審評,來說明ConceptVector確實是好的。


 

文章貢獻

  1. 一個名為ConceptVector的視覺化分析系統,使用者可以在其中互動式地為定製概念構建和細化詞彙表,並無縫地使用它們分析文件語料庫
  2. 為使用者提供字和詞的相似性建模,幫助使用者構建concept
  3. 定量結果比較了我們的詞與概念的能力類似於人類標記的能力

 

論文pdf下載