Opinion Spam Analysis and Detection Leaked Confidential Information - - PowerPoint PPT Presentation
Opinion Spam Analysis and Detection Leaked Confidential Information - - PowerPoint PPT Presentation
Opinion Spam Analysis and Detection Leaked Confidential Information as Ground Truth Yu-Ren Chen, Hsin Hsi Chen National Taiwan University What Is Opinion Spam? spreading commercially advantageous opinions as regular users on the Internet
What Is Opinion Spam?
- spreading commercially advantageous opinions as
regular users on the Internet
○ positive opinions about own products/services ○ negative opinions about competitors
- also known as ‘review spam’ or ‘shilling’
- undoubtedly unethical
- in most cases illegal
- believed to be widely used in practice
○ potentially lucrative profits → strong incentives
‘Spam’ in General
- definition of ‘spam’
○ (Wikipedia) the use of electronic messaging systems to send unsolicited bulk messages (spam), especially advertising, indiscriminately ○ (Oxford) irrelevant or unsolicited messages sent
- ver the Internet, typically to large numbers of
users, for the purposes of advertising, phishing, spreading malware, etc.
Various Kinds of Spam
- email spam
○ the most well-known kind of spam ○ spam is defined as ‘email spam’ in Merriam-Webster
- search engine spam
○ manipulation of search engine indices and rankings ○ content spam: keyword stuffing, meta-tag stuffing, scraper sites, article spinning, machine translation ○ link spam: link farms, hidden links, expired domains, comment spam, referrer log spam
- social network spam
○ bulk message, malicious links, fake friends, etc.
- many more...
Opinion Spam v.s. Other Spam
- very carefully written to avoid getting caught
○ deemed as fraud → unacceptable ○ backfiring may cause serious damage to the reputation of a brand (or a store, restaurant, etc.)
- initiated by a big brand in our case study
(Samsung)
○ high stakes ○ opinion spammers have to be really careful
Difficulty in Obtaining Dataset
- manual annotation is pretty much useless
○ low inter-annotator agreement score (Ott et al. 2011) ○ approximated ground truth ■ duplicate / near-duplicate reviews
- (Jindal et al. 2008)
■ crowdsourced fake reviews
- (Ott et al. 2011)
- utilizing confidential internal records in our study
○ real record of opinion spam in real world ○ ‘true’ ground truth
Our Case Study - 三星寫手門事件
- conducted by ‘鵬泰顧問有限公司’, a subsidiary
company of Samsung
- hired writers and designated employees were
instructed to make disingenuous reviews on web forums
- revealed by a hacker known as ‘0xb’
○ making confidential documents in 鵬泰 publicly available on TaiwanSamsungLeaks.org
- Samsung was fined $10 million TWD by the Fair Trade
Commission in Taiwan
About ‘Mobile01’
- the main battlefield of this marketing campaign
- where the leaked documents was first made public
- one of the most popular websites in Taiwan
○ #10 in Alexa traffic rank in Taiwan
- mainly featuring discussion about consumer electronics
○ mobile phones, tablets, etc.
- primarily a web forum site
○ rather than product review site such as Amazon
- written in Traditional Chinese for the most part
○ rather than in English
Structure of Mobile01 Forum
More about Web Forums
- thread (topic, 討論串)
○ collection of posts (from oldest to latest) ○ started by specifying the title and the first post
- post (文章)
○ first post (original post, thread starter, 一樓) ○ reply (回覆) ■ all posts except the first posts ■ can be used for bumping (手動置頂,頂)
- hierarchical structure
○ forum ⇢ board ⇢ thread ⇢ post
Dataset Collection
- leaked spreadsheets
○ HHP-2011.xlsx and HHP-2012.xlsx ○ containing URLs to the spam posts ○ source of the ground truth in our study
- Mobile01
○ contents of the posts ■ including spam and non-spam ○
- ther various kinds of information on Mobile01
○ all posts from 2011 to 2012 on SAMSUNG (Android) board ■ where the ‘spam density’ is the highest ○ all profiles of the posters of such posts ○ three SQLite tables: POSTS, PROFILES, THREADS,
a snippet of the leaked spreadsheet ‘HHP-2012.xlsx’
an example post on Mobile01
a snippet of the table ‘POSTS’ scraped from Mobile01
an example profile on Mobile01
a snippet of the table ‘PROFILES’ scraped from Mobile01
a snippet of the table ‘THREADS’ scraped from Mobile01
amount of data collected
Looking into the Dataset
- main observations
○ subtlety in spam posts ○ low spam post ratio of some spammers ○ types of spammer accounts
■ reputable accounts ■ throwaway accounts
○ first posts v.s. replies in threads ○ pattern in submission time of spam posts ○ activeness of threads ○ collusive activities of spammers
examples of subtly written spam posts
examples of subtly written spam posts
examples of subtly written spam posts
Low Spam Post Ratio of Some Spammers
- our definition of spammer
○ poster who had submitted any spam post
- only 33% of the posts from spammers are spam in this
dataset
Different Types of Spammer Accounts
- reputable accounts
○ hired reputable writers ○ low spam ratio
- throwaway accounts
○ registered in batch ○ high spam ratio ○ low number of threads initiated
- others
○ hired non-reputable posters? ○ borrowed accounts?
pattern in registration time
First Posts v.s. Replies
- first post
○ initiating the thread ○ richer in content ○ higher spam ratio
- reply (2nd, 3rd posts in thread)
○ usually quite concise
Submission Time of Spam Posts
- hypothesis: spam posts are more often made during
work time compared to normal posts
○ because spamming is a job rather than a leisure activity
Activeness of Threads
- threads started by spam first posts are expected to be
more active
○ written to draw attention and exposure
- measuring of ‘activeness’ of a thread
○ number of posts in the thread ○ number of clicks on the thread
Collusion between Spammers
- different spam accounts submit spam posts to the
same thread ○ fabricating the majority opinion ○ bumping the same spam thread
- 67% of the spam posts are in the threads containing
multiple spam posts
- could be different actual human posters
- or just one human login with different accounts
○ still can be seen as collusion between the accounts
Detection
- evaluation metric
- data splitting
- machine learning
- spam detection for first posts
- spam detection for replies
- spammer detection
Evaluation Metric
- spam / spammer is in minority (<5%)
○ accuracy ✘
- high precision / recall on the spam /
spammer class is preferable
○ F-measure ✔
Data Splitting
- posts (spam detection)
○ made in 2011 → training set ○ made between Jan 2012 and May 2012 → test set
- user accounts (spammer detection)
○ who had submitted a post in 2011 → training set ○ who had submitted a post between Jan 2012 and May 2012 → test set ○ who had submitted a post in both → training set ■ probabilistic prediction on posts will be used in spammer detection
Test Set* for Posts
- concern: capturing the writing habit of spammers?
○ favorite words, preferred writing style and etc. ■ might be purely personal preference ■ not essential to opinion spamming
- solution: removing posts by ‘cross-posters’ from test
set for posts ○ cross-posters: users who have made a post in both
- f training set and test set
○ result set: test set*
number of instances in each split
Machine Learning
- Scikit-Learn (Pedregosa et al. 2011)
○ machine learning in Python
- SVM with RBF kernel
○
- utperforms SVM with linear kernel, logistic regression,
AdaBoost, random forests, etc ○ Python wrapper for LibSVM ○ scaling features to zero mean and unit variance ■ (Hsu et al. 2003) ○ two primary hyperparameter (c, γ) to tune ■ 5-fold cross-validation on the training set ■ grid search on (c, γ) with F-measure as the metric to
- ptimize
Spam Detection for First Posts
- specifically for first posts in threads
- expected to be have nicer results than for replies
○ higher spam ratio ○ richer content
- only show the performance on test set* in the
following slides for conciseness
Random Baseline
- predict whether a first post is spam
according to the result of a fair coin flip
- precision ≈ ratio of spam
- recall ≈ 50%
features\metrics precision recall F-measure random 2.52% 55.71% 4.82%
(Dimension-reduced) Bag-of-Words
- Chinese word segmentation with Jieba
- words with < 5 occurrences are removed
- words appeared in over 30% of the posts are removed
○ stop words like
- Randomized PCA (Halko et al. 2011) to reduce the
dimension of bag-of-words
○ efficient on large matrices ○ mitigating overfitting ○ speed up the training process
Number of Dimension to Reduce to
- determined by the result of the 5-fold cross validation
- F-measure is the highest when bag-of-words is reduced
to 150 dimensions
Bag-of-Words Performance
- tremendous performance boost
○ F-measure improved by 46%
- how?
features\metrics precision recall F-measure random 2.52% 55.71% 4.82% bag-of-words 50.00% 51.43% 50.70%
Finding the ‘Keywords’
- finding the features that decide the predictions
○ no simple way since RBF kernel is non-linear
- falling back to SVM with linear kernel
○ suffering ~10% loss in F-measure ○ able to get the coefficients (weights) which indicate the importance of each feature
- PCA inverse-transformed the coefficients to get the
importance of each word
words with the highest weights (spam keywords)
words with the lowest weights (ham keywords)
Comparing the ‘Keywords’
- words that are the strongest spam indicators
○ Samsung’s top products (galaxy, nexus, note, sii) ○ describing user experiences (體驗 , 看到 , 覺得) ○ focusing on the multimedia aspect (照片 , 拍照 , 影片)
- words that are the strongest non-spam indicators
○ seeking help (問題, 解決, 無法) ○ polite words (謝謝, 大大, 小弟) ○ technicalities (rom, 開機 , 設定)
- spam first posts put more emphasis on certain topics
○ bag-of-words able to exploit such characteristics ○ although each post looks rather unsuspicious
Bag-of-words of Titles
- titles of the threads may help too
○ but might have a different set of keywords ○ appending the title bag-of-words reduced to 50 dimensions
features\metrics precision recall F-measure random 2.52% 55.71% 4.82% bag-of-words 50.00% 51.43% 50.70% title + content bag-of-words 56.16% 58.57% 57.34%
Content Characteristics
symmetric KL divergence between spam and hams
distribution of #images and #words
Content Quantity of Spam First Posts
- spam first posts are essentially advertisements in
disguise
○ ‘unboxing’ articles ○ experience with the products ○ containing lots of words and pictures
- regular users usually don’t bother to take effort to
write long articles
○
- ften just seeking help
Impact on Performance
- precision ⇈ recall ↓
○ We prefer precision to be higher anyway.
- overall F-measure increased by 3%
features\metrics precision recall F-measure random 2.52% 55.71% 4.82% bag-of-words 56.16% 58.57% 57.34% bag-of-words + content CHAR 64.91% 52.86% 60.32%
Non-content-related Features
- submission time
○ 24 binary indicator features for each hour ○ 7 binary indicator features for each day in a week
- thread activeness
○ number of posts in the thread initiated by the first post
features \ metrics precision recall F-measure random 2.52% 55.71% 4.82% bag-of-words 56.16% 58.57% 57.34% BoWs + content CHAR 64.91% 52.86% 60.32% BoWs + content CHAR + time + thread len 66.67% 57.97% 62.02%
Moving on to Detection for Replies
- compared with first posts
○ lower ratio of spam ○ less content ○ expected to be harder to detect
- replies sharing the same thread with some replies in
training set are removed
Repeating the Procedures
- random baseline
○ worse F-measure due to lower spam ratio
- bag-of-words
○ not nearly as useful as for first posts
features\metrics precision recall F-measure random 1.38% 50.15% 2.68% bag-of-words 11.85% 19.83% 14.83% bag-of-words + content CHAR. 12.32% 19.83% 15.20%
Content Characteristics of Replies
- three out of the top four content characteristics
features in terms of symmetric KL divergence
○ n_emoticons, p_emoticon_pos, p_ntusd_neg ○ all about sentiment ○ side with the previous ‘pro-samsung’ posts
Content-centric Features Not as Effective for Replies
- replies tend to contain substantially less content that
first posts
○ don’t need to initiate a topic discussion ○ concise first posts are less acceptable in the many forum cultures
- replies that are ‘just for bumping’
○ drawing more attention to the thread ■
- ften started by a spam first post
○
- ften not even trying to deliver any message
■ already in other posts in the thread
Non-content-related Features
- previously used: submission time, length of thread
- an additional one: position of the reply in the thread
○ nfloor and pnum
features\metrics precision recall F-measure random 1.38% 50.15% 2.68% bag-of-words 11.85% 19.83% 14.83% bag-of-words + content CHAR. 12.32% 19.83% 15.20% BoWs + content
- CHAR. + others
14.65% 25.07% 18.49%
‘Spamicity’ of the First Post in Thread
- reply to a thread started by a spam first post
○ more likely to be spam
- spamicity of the first post in the thread
○ leveraging the model in spam detection for first posts ■ probabilistic prediction ■ more likely to be spam if closer to 1
features\metrics precision recall F-measure bag-of-words 11.85% 19.83% 14.83% BoWs + content
- CHAR. + others
14.65% 25.07% 18.49% 〃+ 1st post spamicity 21.10% 26.82% 23.62%
Spammer Detection
- definition of spammer
○
poster who had submitted any spam post
- each instance in the training and test set is an user
account ○ instead of a post
- suitable for some applications
○ just ban the spammers
Features from User Profile
- numerical attributes from scraped profiles
○ n_threads, p_phone_section, score, n_posts, n_replies
- spammer accounts actually tend to be more ‘reputable’
○ hired reputable writers ○ higher degree of participation ○ most normal users are ‘lurkers’
features\metrics precision recall F-measure random 0.91% 45.88% 1.78% profiles 2.75% 22.62% 4.91%
Maximum Spamicity of First Posts of the User
- maximum spamicity of all first posts made by the user
○ taking the max is a natural choice considering our definition of spammer
- preferring the model for first posts to have
precision > recall
○ ‘multiple chances’ to get it right ○
- ur model for first post happens to have this property
- if an user in test set(users) have a spam first post in
training set(posts)
○ cheating?
Impact on Performance
- almost a 50% boost in F-measure
- 54 / 84 (64.3%) of the spammer in test set has a spam
in training set for first posts
features\metrics precision recall F-measure random 0.91% 45.88% 1.78% profiles 2.75% 22.62% 4.91% profiles + max_spamicity_fps 66.67% 42.86% 52.17%
Burstiness of Throwaway Spammer Account Registrations
- number of throwaway spammer accounts registered
within 20 days
features\metrics precision recall F-measure random 0.91% 45.88% 1.78% profiles 2.75% 22.62% 4.91% profiles + max_spamicity_fps 66.67% 42.86% 52.17% profiles + max_spamicity_fps + burstiness_reg 67.27% 44.05% 53.24%
Frequently Appeared Groups of Posters
- utilizing the ‘collusion between spammers’
- bservation mentioned earlier
- finding the groups of posters who often appear (make
post) together in the same threads ○ frequent itemset mining
■ each itemset is 30 consecutive posters in a thread ■ implementation: Python Orange
As a ‘Smoothing’ Step
- not directly incorporated as a feature into the model
- if the sum of spamicity of the posters in a frequent
appeared group is > threshold ○ predict all posters in that group as spammers
pseudocode of the remained parts
Impact on Performance
features\metrics precision recall F-measure random 0.91% 45.88% 1.78% profiles 2.75% 22.62% 4.91% profiles + max_spamicity_fp s 66.67% 42.86% 52.17% profiles + max_spamicity_fp s + burstiness_reg 67.27% 44.05% 53.24% profiles + max_spamicity_fp s + burstiness_reg + freq groups 67.95% 63.10% 65.43%
Caveat
- burstiness of throwaway spammer account
registrations
○ result is meaningless if the test set is not temporally contiguous to training set
- frequent appeared groups of posters
○ similar situation
Conclusions
- the first dataset with the “true ground truth”
for opinion spam studies
- content-centric features are ‘unintuitively’
effective for finding spam first posts
- spam replies seem to be much harder to
detect than first posts
- collusion between spammers is a big giveaway
Future Work
- sentiment shown in posts toward the brands
○ an algorithm to better capture sentiment of the posts
- interaction between posters
○ what forums are used for ○ reply to whom?
- integration of spam and spammer detection
○ just different perspectives ○ currently: first post → spammer ○ an united model?