馮豆豆
(四川大學計算機學院,成都 610065)
隨著網絡及移動設備的普及,新浪微博逐漸融入人們的生活,越來越多的用戶利用微博來記錄生活,表達個人觀點和抒發內心情感。這些微博數據記錄了用戶真實、長期的心理活動,是研究用戶人格的很好的數據。
人格作為心理學的一大分支,其研究重點是個體間的差異性。人格計算則是通過分析用戶的行為結果,預測用戶的人格,以量化個體間的差異性。利用這些量化了的差異性,可以判斷出不同用戶的不同需求,以提供更好的個性化服務,例如為高盡責性用戶推薦實用性較強的產品,為高開放性用戶推薦新奇產品等。人格計算擁有廣泛的應用空間,利用用戶的人格數據,可以為員工選聘提供指導意見,可以預測用戶是否具有攻擊行為,判斷用戶是否抑郁等。
全特質理論是William[1]等人提出的,全特質理論認為人格具有周期性,不同人格特質的人周期變化不同。
微博是我國青年最常用的社交工具之一,在微博上人們可以無約束地表達自己的感受和心情。這些數據記錄了用戶真實、長期的心理活動,為建立人格分類模型提供了理想的數據基礎。
人格分類是通過分析用戶的行為結果,預測用戶的人格屬于哪種類型,以量化個體間的差異性2。據筆者所知,人格分類的第一個研究是Sholomo等人[3]在2005年發表的,他們收集了1200名學生的2263篇散文,研究中使用功能詞(Function Words)1功能詞:Function words,不具有實際意義,但發揮語法作用的詞,如英語中的冠詞the。和系統功能語法(Systemic Functional Grammar)2系統功能語法:是韓立德等人提出的一種理論,認為語言是一個系統網絡,其中包含了多個子系統,語言使用者可以從中做出選擇。中的詞類作為特征,分別為外向性和情緒穩定性特質建立分類模型。2006年,Oberlander等人[4]認為博客可以記錄用戶在不受限制的條件下所想的內容,能夠更好地體現用戶人格,于是收集整理了71名用戶在一個月內寫下的博客,以n元組在博客中出現的次數作為特征值,使用支持向量機和樸素貝葉斯建立分類模型,模型的準確率可達到85%。為檢驗模型的泛化能力,Nowson等人[5]建立了一個更大的語料庫,語料庫中包含了1672名用戶的博客,并將模型應用到新語料庫上,模型的準確率從85%下降到了60%左右,可見模型的泛化能力弱。
Golbeck等人[6]是最早開始用社交網絡數據進行人格計算的,他們開發了一個Facebook應用,可以讓用戶在線填寫人格測試問卷,并且在用戶填寫問卷時收集用戶在Facebook上的數據,去掉不合格樣本后,剩余167個被試。用到的特征包括:文本特征、個人信息、網絡結構特征以及活動偏好特征,一共77個,最終的平均絕對誤差在0.11左右,證明使用社交網絡數據預測人格是可行的。
此后,利用社交網絡進行人格計算的研究層出不窮,為便于各研究成果之間進行比較,Stillwell等人[7]建立了myPersonality語料庫,語料庫來自Facebook平臺,收集了用戶的文本數據以及網絡結構數據,使用IPIP NEO-PI-R 大五人格量表(Goldberg L R,2006)[8]獲取用戶人格分數。
基于 myPersonality語料庫,Markovikj等人[9]用SMO和AdaBoost算法建立分類模型,準確率高達0.86~0.95。模型用到的特征可分為五個子集:網絡屬性、LIWC、詞性統計、Afinn和H4Lvd,結果表明文本特征對于提高模型準確率很有幫助。
Farnadi等人[10],分別在 Facebook、Twitter和 You-Tube三個社交平臺上建立人格計算模型,并且嘗試用另一個社交平臺上的數據擴充當前語料庫(如,使用Facebook上的數據擴充Twitter語料庫),結果發現擴充后的語料庫更難以預測。因為,不同社交平臺上的用戶分布不同,簡單的擴充只會增加數據噪聲。所以,本文將關注的重點只放在新浪微博一個平臺上。
除了英文語外,其他國家的研究者們也針對自己的母語進行了研究。目前,最進的成果是Suhartono等人[11]的研究。Suhartono等人通過印度尼西亞版的Twitter平臺,收集了359名用戶的數據,分別用SVM和XGBoost建立分類模型,SVM的準確率為76.2%,而XGBoost的準確率達到了97.9%,甚至對于情緒穩定性和外向性達到了100%。
國內方面,基于中文社交媒體的人格計算一般從微博、人人網收集數據。
Bai等人[12]從335名人人網用戶的數據中提取出五個子特征集,包括基本信息、網絡屬性、時間屬性,情感類型四個方面,使用C4.5建立二分類模型。分類依據是所有用戶得分的平均值和標準差,低于平均值一個標準差的為低分組,高于平均值一個標準差的為高分組,剩余為中間組,中間組忽略不計。但正如Mairesse[13]所說,這樣做雖然可以提高準確率,但卻降低了召回率。考慮到召回率,且為避免數據不均衡,本研究中的分類依據以中位數為分界線。等于高于中位數者為高特質,低于中位數者為低特質者。
在人格心理學中有多種人格因素模型,目前最流行的是大五人格模型(Big Five Model)也叫做五因素模型(Five Factor Inventory)。大五人格模型基于特質流派,研究取向可分為兩個:詞匯研究和問卷研究。詞匯研究基于詞匯假設,認為通過分析自然語言中的詞匯及語義,可以探究人格的維度。問卷研究的理論基礎是特質論,特質論認為人格是可預測的,通過觀察個人長期行為,便可總結得出人格特質。常用的人格問卷是Paul Costa和Robert McCrae共同編制的《NEO人格問卷》(NEO Personality Inventory,簡稱 NEO-PI,修訂版稱為NEO-PI-R)。大五人格模型共包含五個特質因素,表1介紹了大五人格模型的各個特質因素。

表1 大五人格模型
為了收集數據,建立了人格測試網站3網址:http://www.panvote.top/。用戶打開網站后首先需要使用微博賬號登錄,然后做44題中文版的人格問卷。具體的操作流程如圖1所示。

圖1 網站操作流程圖
用戶填寫完量表后,向用戶反饋其人格數據。用戶看到結果后,可以選擇分享到微博或關閉。其他用戶若點擊了該用戶分享的內容,也可參與調查。數據收集過程從2017年12月5日到2018年5月23日,共收集了324名用戶的微博數據。為保證收集到的數據是有用戶自己寫的,過濾掉了非原創數據。
為去除噪聲、無效數據,對數據進行篩選,篩選規則如下:
(1)將注冊時間低于一個月的用戶數據去除,因為這樣的用戶可能還不熟悉微博的使用方式;
(2)將用戶中轉發的內容去掉,非原創的內容并不能體現出用戶的人格;
(3)將微博數量小于10條的去掉,因為這樣的用戶數據量太少;
(4)去掉平均每天發微博的數量超過50條的,因為這樣的賬號可能是營銷賬號,通常由某個工作室維護,并不是單個用戶使用。
篩選過后,只有236名用戶數據有效。
本研究中用到的特征包括四個部分:
(1)個人信息:
個人信息是指每個用戶所公開的個人數據,包括昵稱、性別和年齡。
(2)網絡特征:
網絡特征是指用戶在使用微博網絡屬性,主要包括:粉絲數、關注數、微博數、分享數、評論數。不同的用戶在使用社交網絡時,會產生不同的行為,這些行為長期累積使得用戶的網絡屬性各不相同。所以,網絡屬性可以幫助我們分析用戶的人格。
(3)文本特征:
Pennebaker等人[14]認為個體所寫下的文本內容反映了個體的人格。所以,用戶的文本數據是人格計算的重要線索。
對于用戶文本分析來說,傳統的做法是基于SCLIWC等詞典提取文本特征,但是這種方法并不適合微博數據。因為微博數據具有很強的時新性,網絡用語更新換代快,新生詞層出不窮。而傳統做法所依賴的詞典并沒有囊括這些新生詞,會丟失許多信息。因此本研究中的文本特征通過TF-IDF選出特征詞,然后使用特征詞的頻率作為文本特征。
(4)情感特征:
基于中國知網的情感詞詞典分析每條微博的情感。如果微博中包含的積極情感詞數量大于消極情感詞數量,則該條微博屬于積極情感,反之亦然。以一個月為單位,統計每個月中積極情感的微博條數numpos,和消極情感的微博條數numneg,統計用戶最近一年內,每個月的numpos和numneg,分別求出積極情感的平均值avgpos和標準差stdpos,和消極情感的平均值avgneg和標準差stdneg。
人格分類領域常用的分類算法有樸素貝葉斯NB[4,15-16,18]、支持向量機 SVM[4,10,17,20]和 C4.5算法[12]。為方便對比本文使用了樸素貝葉斯、支持向量機和C4.5,表2介紹了這四種分類算法的原理并列舉了各自的優缺點。

表2 NB、SVM、KNN及C4.5原理簡介及優缺點列舉

表3 本研究實驗結果和其他研究結果的對比
從表3中可以看出本研究結果優于其他研究。
隨著社會的發展,人們對智能化的要求越來越高,因此,讓機器了解人類的心理活動,并作出適合的響應越來越重要。這就需要將心理學和計算機科學聯系起來,人格計算正是這樣的一個領域。人格計算自提出至今已有十多年的歷史,但仍存在很多問題,本文提出以下兩個改進方面。
(1)人格特質間的弱連接
文獻[18]提出人格特質間存在弱連接,文獻[19]中用皮爾遜相關計算人格特質間的相關性,發現各特質之間存在相關性(相關系數為-0.406~0.318),尤其是開放性和外向性這兩個維度,呈顯著相關(0.318)。文獻[20]中用J-S散度來計算人格特質間的弱相關性,并且使用肯德爾相關加以驗證,最后還比較了人格間弱相關對人格計算系統的影響,并得出結論:當不考慮人格特質間的弱相關性時,系統F1值相較于峰值下降很多。在未來的工作中需要將人格特質間的弱相關加入到人格計算系統中。
(2)利用大數據分析情境
人格計算根據用戶的行為結果(本文指文章內容)來預測用戶人格,但同一個用戶在不同的情境下產生的行為結果是不同的。例如,某用戶具有高外向性特質,在與朋友聚會后寫下的隨筆記錄可以反映出他的外向性特質,但是在失眠后寫下的隨筆記錄可能會表現出低外向性。文獻[21]提出需要在人格計算中考慮到情境因素,文獻[22]針對文獻[25]中的情境問題提出:通過大數據分析可以獲得情境對用戶行為的影響。朱廷劭等人[23]利用中文心理分析系統分析微博用戶的情緒內容,得出了情緒在一天內隨時間的變化規律。該變化規律在一定程度上反映出了情境對用戶行為的影響,基于此我們可以去除人格計算中的部分噪點信息。例如,文獻[27]中的規律指出,用戶在凌晨3點左右處于消極情緒,一個低神經質的用戶在凌晨3點可能受到失眠的困擾,而表現出高神經質的特質,這就屬于人格計算中的一個噪點信息。未來的人格計算工作中,可以考慮用大數據分析情景對用戶行為的影響,從而降低人格計算中的噪點。