شناسایی شخصیت انسان

تغییرات پروژه از ابتدا تا تاریخ 1394/08/30
برای تعاملات اجتماعی لازم است که رفتار انسان را بفهمیم. شخصیت یکی از جلوه‌های بنیادی آن است که بوسیله ی آن میتوانیم درک درستی از خصوصیات رفتاری داشته باشیم. بدیهی است که ارتباط نزدیکی میان شخصیت و فعالیت در شبکه‌های اجتماعی مانند فیسبوک وجود دارد. در اینجا قصد داریم تا بر اساس پروفایل فیسبوک افراد شخصیت آن‌ها را شناسایی کنیم.

# مقدمه
شخصیت نقشی مهم در تعاملات اجتماعی ایفا میکند. شخصیت پیچیده ترین ویژگی انسان‌هاست و باعث تمایز بین افراد میشود. فعالیت های کاربران در شبکه های اجتماعی اطلاعات با ارزشی برای فهم رفتار و تجربیات و علایق و نظرات افراد  فراهم آورده است. فیسبوک یکی از محبوب ترین شبکه‌های اجتماعی است که بیش تر کاربران روزانه از آن استفاده می کنند. در حال حاضر  تعاملات روزانه بیش از ۸۰۰ میلیون کاربر را که بطور متوسط بیش از ۴۰ دقیقه روزانه صرف پروفایل خود میکنند را فراهم آورده‌است.[1] بنابراین پروفایل فیسبوک به یک منبع اطلاعاتی مهم برای تاثیر گذاری روی دیگران بدل گشته است. در این میان کاربران برای ساخت پروفایل خود اطلاعات زیادی از خودشان از قبیل این که چه چیزهایی به اشتراک می گذارند و چگونه آن را می گویند, اطلاعاتی که درباره خود می‌نویسند, تغییر حالت هایشان[^status updates] عکس‌ها و علایقشان [^interests] آشکار می نمایند. از این رو بیشتر شخصیت کاربران از پروفایلشان قابل استنتاج است. اخیرا نشان داده شده است که شخصیت افراد بر اساس پروفایل فیسبوکشان میتواند توسط دیگران پیش بینی شود[2]. برای مثال افراد هنگامی که میخواهند با دیگران ارتباط برقرار کنند و یا برای شغلی کسی را استخدام کنند پروفایل فیسبوک آن‌ها را بررسی می کنند. با توجه به این حقیقت که افراد بر اساس پروفایل فیسبوکشان یکدیگر را قضاوت میکنند ۲ نکته مهم آشکار میشود : ۱. پروفایل فیسبوک شخصیت افراد را نمایان می سازد ۲. برخی از جنبه‌های پروفایل فیسبوک افراد برای تشخیص شخصیت مورد استفاده قرار می گیرند[3].

##کاربرد
شناسایی شخصیت میتواند در کاربرد‌های زیادی شامل آنالیز شبکه‌های اجتماعی و سیستم‌های توصیه‌گر و شناسایی جرم و تشخیص نویسنده متن و آنالیز احساسی متن و زمینه‌های بسیار دیگر مورد استفاده قرار گیرد. برای مثال واحدهای استخدام نیروی انسانی صد‌ها نیروی متقاضی کار را بر اساس شرایط و صفات لازم مورد نیاز بررسی می نمایند در همین حین کارکنان در بازار‌های اینترنتی می کوشند تا تولیدات و اجناس خود را بر اساس نیاز‌های مشتری ارائه کنند تمام این موارد در نهایت شامل قدمی حیاتی برای مدل کردن شخصیت کاربران است.[4]


##مدل FFM یا BIG FIVE MODEL
در این جا برای مدل کردن شخصیت افراد از مدلFFM استفاده می کنیم که در حال حاضر گسترده ترین و بطورکلی یکی از پذیرفته شده ترین مدل‌های شخصیتی است و به ۵ بعد تقسیم می شود همچنین توانایی پیش بینی شخصیت بر اساس این مدل در [5] بررسی شده است. در این مدل شخصیت انسان بصورت یک بردار پنج تایی از مقادیر تبدیل می شود که هر‌کدام متناظر با یکی از ۵ بعد آن می باشد. این مدل محبوب ترین مدل میان محققین علوم کامپیوتر است که برای شبیه سازی ویژگی‌های شخصیتی هم به کار می رود. این مدل رفتاری شامل ۵ بعد است که به OCEAN معروف است و به شرح زیر می باشد:
**تجربه اندوز** [^Openness] 
هنر دوست - کنجکاو - خلاق - باهوش. این‌ها معمولا ایده‌های غیر معمول و تجربه‌های زیادی دارند.
**وظیفه شناس **[^Conscientiousness] 
موثر - سازمان یافته - مسئولیت پذیر. این افراد بسیار قابل اطمینان بوده و هدف خاصی را دنبال میکنند و همچنین برنامه ریزی را به بی برنامگی ترجیح می دهند.
**برونگرا** [^Extraversion]
 پر انرژی - فعال - مدعی - اجتماعی. این افراد اشتقاق زیادی برای فعالیت در شبکه‌های اجتماعی دارند.
**تطابق پذیر** [^Agreeableness]
 مهربان - مشارکت پذیر - خوش بین. این افراد معمولا صلح جو‌ اند و به دیگران خوش بین اند و قابل اعتماد مردم اند.
**روان رنجور** [^Neuroticism]
 حساس - دستپاچه - دلواپس. افراد با این ویژگی خیلی زود احساس و حالتشان عوض می شود. این افراد معمولا نامطمئن و بی ثباتند.

## هدف
هدف مسئله شناسایی شخصیت افراد بر اساس ویژگی‌های پروفایل فیسبوک مانند تعداد دوستان، تعداد گروه‌ها، تعداد تغییر وضعیت‌ها، … و همچنین بر اساس محتوای پست‌ها و وضعیت‌های وی است و در نهایت مقایسه نتایج بدست آمده با نتایج پرسشنامه ای که توسط خود فرد پر شده و تلاش برای بهبود نتایج خواهد بود.


# کارهای مرتبط
بطور کلی ۲ روش برای بررسی رفتار کاربران در شبکه‌های اجتماعی اتخاذ شده است.روش اول از انواع یادگیری ماشین[^Machine Learning] برای ساخت مدل رفتاری فقط بر اساس ویژگی‌های شبکه مانند تعداد دوستان، گروه‌ها، لایک‌ها و … بهره میگیرد. ولی روش دوم فعالیت‌های کاربران را به همراه محتوای متون انتشار یافته توسط کاربر به عنوان نشانه‌های زبانی ‪  [^linguistic cues] در نظر می گیرد. در هر کدام از این روش‌ها تحقیقات متعددی صورت گرفته که در اینجا به معرفی آن ها می پردازیم.

##تنها بر اساس ویژگی های شبکه[2]
در تحقیقات مختلف فرضیات مختلفی مبنی بر اینکه هر کدام از ویژگی‌های شبکه بر روی کدام ابعاد رفتاری تاثیر می گذارند. برای مثال در  فرض‌های متعددی در ارتباط با ابعاد مدل FFT و ویژگی‌های شبکه در نظر گرفته شده و یا در[2] فرض شده است که 
1. افراد تجربه اندوز و روان رنجور ارتباط مستقیمی با تعداد بروز رسانی‌های وضعیت  و عکس‌ها و گروه‌ها و لایک‌ها دارند.
2. افراد وظیفه شناس ارتباط معکوسی با استفاده از هر کدام از جلوه‌های فیسبوک دارند.
3. برون گرایان ارتباط مستقیمی با استفاده از هر کدام از قسمت‌های فیسبوک دارند.
4. افراد تطابق پذیر ارتباط مستقیمی با تعداد دوستان و گروه‌ها و لایک‌ها دارند.
ویژگی‌هایی که در‪طبق این روش صورت گرفته است عبارتند از:
. تعداد دوستان - تعداد گروه‌ها -تعداد لایک‌ها- تعداد عکس‌های آپلود شده - تعداد بروز رسانی وضعیت - تعداد بار‌هایی که در عکس دیگران برچسب زده شده ‪[^tagged]

###درستی فرضیات
برای نشان دادن میزان درستی فرضیات کاربران با ویژگی‌های مشابه را در یک خوشه[^cluster] قرار داده می شود و مقدار میانگین امتیاز رفتار شخصیتی برای هر گروه را آزمایش میشود. n کاربر بر اساس ویژگی های در نظر گرفته شده بصورت صعودی مرتب می شوند تا لیست $u_1$,$u_2$,...,$ u_n$ بدست آید. سپس لیست به  $q=\frac{n}k$ مجموعه‌ی مجزا تقسیم می شود بطوری که برای i امین مجموعه تمام مقادیر آن بین $c_iq$, $c_i+1q$ قرار میگیرد. تقسیم بندی کاربران به گروه‌های مساوی ولی با صعودی بر اساس مقادیر ویژگی‌ها این امکان را می دهد تا بتوان رابطه بین ویژگی‌ها و رفتار شخصیتی را نشان داد. همچنین برای نشان دادن این رابطه نمودار پراکندگی خوشه ای [^Clustered Scatter Plots] رسم می شود که محور عمودی مقدار میانگین ویژگی‌ها و محور افقی میانگین امتیاز رفتار شخصیتی را نشان می دهد. نمونه ای از این نمودار برای بررسی وجود ارتباط بین تعداد لایک‌های کاربران و تجربه اندوز بودنشان در شکل زیر آمده است:
![ شکل ۱ - نمودار پراکندگی خوشه ای](http://i67.tinypic.com/1412i5g.png)

###پیش بینی شخصیت بر اساس این روش
برای پیش بینی ابتدا از رگرسیون چند متغیری خطی [^multivariate linear regression] با 10 [برابر اعتبار متقاطع](https://en.wikipedia.org/wiki/Cross-validation_%28statistics%29) [^10fold cross validation] استفاده می شود. برای برازش[^goodness-of-fit] از $R^2$ استفاده می شود و در این رگرسیون امتیاز‌ها به صدک تبدیل میشود به این طور که اگر فردی۱۰۰ دوست دارد در ۲۰ امین صدک از لحاظ تعداد دوستان قرار می گیرد که این کار کیفیت رگرسیون را بالا می برد. در جدول ۱ $R^2$ و RMSE برای هر یک از ابعاد آورده شده اند.

![جدول ۱ - نتیجه ](http://i68.tinypic.com/21j20qg.png)
با توجه به جدول میتوان یافت که هر چند که این روش برای بعضی از رفتار بصورت منطقی دقیق است ولی برای بعضی دیگر مانند تطابق پذیری بشدت ناکار آمد است.
توجه شود که در این جا برای برای روش یادگیری از رگرسیون چند متغیری خطی  استفاده شده ولی استفاده از روش‌های یادگیری دیگر مانند SVM تغییر چشم گیری در نتایج نخواهد داشت.[2]

###محدودیت ها
در این روش اطلاعات بصورت خیلی سطح بالا مورد استفاده قرار میگیرند برای مثال تعداد لایک‌ها در نظر گرفته شده تا این که چه مواردی لایک شده و یا تعداد بروز رسانی‌های وضعیت به جای اینکه چه کلماتی در آن‌ها آمده است در نظر گرفته می شود.

## بر اساس ویژگی های شبکه به همراه نشانه های زبانی
مانند آنچه در روش قبل گفته شد کاربران می توانند جمله هایی به عنوان درباره من[^About Me] و یا در وضعیت‌هایشان  بنویسند.

###بدنه متن
متن‌های مورد بررسی علاوه بر کلمات و جملات شامل مخفف‌ها (BRB-be right back, …) و شکلک‌ها(:D) و زبان عامیانه و انواع علائم اختصاری می باشد. بدلیل اینکه هر کدام از این نشانه‌ها معانی مشخصی برای تشخیص شخصیت دارند، آن‌ها را دست نخورده باقی می گذاریم.

###پیش پردازش
معمولا برای بررسی متن و بدست آوردن ویژگی‌ها از ۲ روش استفاده می شود.

####ابزارLIWC 
با استفاده از این ابزار ۸۱ ویژگی در ۵ دسته بندی کلی می توان یافت : ۱)تعداد استاندارد‌ها(تعداد کلمات و تعداد گزاره‌ها و …) ۲) پردازش روانشناختی (تعداد کلمات‌های غضبناک و تعداد کلمات احساسی و …) ۳) نسبی( کلمات درباره زمان و تعداد فعل‌های آینده یا گذشته و …) ۴) نگرانی‌های شخصی(تعداد کلمات بکار رفته درباره‌ی شغل و پول و سلامتی و …) ۵) ابعاد زبان شناسی (تعداد علائم نگارشی و تعداد قسم‌های بکار رفته و …).[7, 9]

####روش Bag-Of-Words
در این روش نشانه‌ها [^Tokens] به عنوان ویژگی‌ها استفاده می شود. در نتیجه یک نمونه طبقه بندی [^classification instance] برداری از نشانه‌ها است که در متن یافت می شود. سپس با استفاده از پیدا کردن کلمات کلیدی مانند [tf-idf](https://en.wikipedia.org/wiki/Tf%E2%80%93idf) به مقادیر ویژگی تبدیل می شود. در این روش یک بدنه با ۶۵۴۵ نمونه شامل ۱۵۰۰۰ ویژگی می شود.[8]

###طبقه بندی[^classifiers]
در [۹] از Support Vector Machine, k-nearest neighbors, Naïve Bayes  و در [۸] از روش های  Multinomial Naïve Bayes, Sequential Minimal Optimization, Bayesian Logistic Regression برای طبقه بندی استفاده شده است در اینجا روش‌های [8] را به اختصار توضیح می دهیم.

####روش SMO
یک روش پیاده سازی برای SVM است که مسئله را به زیر مسئله های ۲ بعدی تقسیم می کند که بصورت تحلیلی حل می شوند. همچنین نیاز به یک الگوریتم بهینه ساز عددی [^numerical optimization algorithm] و فضای ماتریس برای ذخیره سازی از بین می رود. در حالت کلی سرعت بیشتر و دقت بالا تری نسبت به SVM دارد.

####روش BRL
در آمار بیزی توزیع های قبلی به عنوان ضریب رگرسیون قرار میگیرد. در BRL از پیشین[^Priors]‌های متفاوتی(مانند لاپلاس و یا گاوس) استفاده می کنیم تا از تولید مدل‌های پراکنده برای متون اجتناب کنیم.

####روش MNB
در این روش نمونه‌ها با چند جمله‌ای $p_1$, $p_2$,..., $p_n$ تولید می شود که pi به معنی احتمال رخ دادن رویداد i ام است. بردار ارزش در این روش یک هیستوگرام است (X=($x_1$,$x_2$,…,$x_n$ که xi تعداد دفعاتی که رویداد i دیده شده را نشان می دهد. تشابه X برابر است با :
![](http://i64.tinypic.com/2v31uv4.png)
###روش های ارزیابی
برای ارزیابی الگوریتم های طبقه بندی از precision , recall, F1 استفاده شده است که بصورت زیر محاسبه می شوند:
![](http://i67.tinypic.com/2iaq0kz.png)
که  tp, tn, fn, fp از بصورت زیر تعریف می شود:
![جدول2- تعریف tn, tp, fn, fp](http://i66.tinypic.com/2n3gh0.png)
طبق [9] بین روش های مطرح شده در طبقه بندی روش MNB عملکرد بهتری نسبت به BLR, SMO دارد.

# آزمایش‌ها

# کارهای آینده

# مراجع

[1] Mairesse, F. and Walker, M. A. and Mehl, M. R., and Moore, R, K. Using Linguistic Cues for the AutomaticRecognition of Personality in Conversation and Text. In Journal of Artificialintelligence Research, 30(1), pp.457–500, 2007. 

[2] S.D.Gosling, S. Gaddis, and S. Vazire. Personality impressions based on Facebookprofiles. 2007. 
[3] Bachrach, Y., Kosinski, M., Graepel, T., Kohli, P., & Stillwell, D.Personality and Patterns of Facebook Usage. 2012. 
[4] Agarwal, B. Personality Detection from Text: A Review. International Journal of Computer Systems, Vol. 01, Issue.01, September, 2014. 
[5] Goldberg, L., R. The Development of Markersfor the Big Five factor Structure. In _Psychological Assessment_, 4(1).pp. 26–42. 1992.
[6] C. Ross, E.S. Orr, M. Sisic, J.M. Arseneault, M.G. Simmering, and R.R. Orr. Personality and motivations associated with [7] Facebook use. _Computers in Human Behavior_, 25(2):578–586, 2009.
Golbeck, J.; Robles, C.; and Turner, K. Predicting personality with social media. In _Proc. of CHI_, 253–262. New York, NY, USA: ACM. 2011. 
[8] Firoj Alam, Evgeny A. Stepanov, Giuseppe Riccardi, “Personality Traits Recognition on Social Network – Facebook”, In The Seventh International AAAI Conference on Weblogs and Social Media Workshop on Computational Personality Recognition (Shared Task), pp.6-9.
[9] G. farnadi, S. Zoghbi, M. Moens, M. DeCock, “ Recognizing Personality Traits using Facebook Status Updates”, In The Seventh International AAAI Conference on Weblogs and Social Media, Workshop on Computational Personality Recognition (Shared Task).