Talk I gave at the Data Science Northeast Netherlands Meetup, where I detail the custom in-house entity linking framework, sentiment analysis, and entity salience scoring model we developed for Company.info, in addition to showing some example applications of our corpus of news articles linked to organization profiles.
1. Onderdeel van FD MediagroepOnderdeel van FD Mediagroep
Financial News Mining
Data Science Northeast Netherlands Meetup, 16 Nov 2017
Onderdeel van FD Mediagroep
2. Onderdeel van FD Mediagroep
Who am I?
•
• BA. Media Studies (UvA)
• Science editor (NTR)
• MSc. Media Technology (Leiden)
• Ph.D Information Retrieval @ UvA (2017)
• “Entities of Interest --- Discovery in Digital Traces”
• Data Scientist at FD Mediagroep/Company.info
2
3. Onderdeel van FD Mediagroep
Outline
• Financial News @ FDMG/Company.info
• Entity Linking
• What is
• Entity Linking with custom KB:
• Approach
• Results
• Applications
3
15. Onderdeel van FD Mediagroep
Data
• News articles:
• Hundreds of sources (Dutch, online)
• From Het Financieele Dagblad to the Groninger Gezinsbode
• Thousands of articles per day
• Multiple years of archive
• Knowledge Base:
• ~2.7M companies & organisations
• Rich metadata: sector information, financial information, people,
buildings, etc…
15
16. Onderdeel van FD Mediagroep
Linking companies in news
• Before: humans
• Now: machines
16
20. Onderdeel van FD Mediagroep
Step 1: NER
• De Hoge Dennen Capital heeft een minderheidsbelang genomen in
Pseudonimiseer, een Amsterdamse start-up die is gespecialiseerd in
privacybescherming bij data-analyse.
20
21. Onderdeel van FD Mediagroep
Step 1: NER
• De Hoge Dennen Capital heeft een minderheidsbelang genomen in
Pseudonimiseer, een Amsterdamse start-up die is gespecialiseerd in
privacybescherming bij data-analyse.
21
22. Onderdeel van FD Mediagroep
Step 2: EL
• De Hoge Dennen Capital heeft een minderheidsbelang genomen in
Pseudonimiseer, een Amsterdamse start-up die is gespecialiseerd in
privacybescherming bij data-analyse.
• Hoge Dennen Capital -> 32102936 0000
• Pseudonimiseer -> 58388702 0000
22
23. Onderdeel van FD Mediagroep
Step 2: EL
• De Hoge Dennen Capital heeft een minderheidsbelang genomen in
Pseudonimiseer, een Amsterdamse start-up die is gespecialiseerd in
privacybescherming bij data-analyse.
• Hoge Dennen Capital -> 32102936 0000 (De Hoge Dennen Capital B.V.)
• Pseudonimiseer -> 58388702 0000 (Viacryp B.V.)
23
24. Onderdeel van FD Mediagroep
Challenges
• A single entity mention can refer to multiple entities
24
25. Onderdeel van FD Mediagroep
Challenges
• A single entity can be referred to by multiple entity mentions
25
27. Onderdeel van FD Mediagroep
Approach: NER
• NER: Sequence Prediction
• Based on [Graus et al., ECIR ‘14]
• B-I-O scheme
• Beginning of entity mention
• Inside entity mention
• Outside entity mention
• E.g.: “Daarnaast sloot het bedrijf twee nieuwe
overeenkomsten met Xenos en Big Bazar
voor in totaal 2000 vierkante meter voor
een periode van 10 jaar.”
27
Daarnaast
sloot
het
bedrijf
twee
nieuwe
overeenkomsten
met
Xenos
en
Big
Bazar
voor
in
totaal
2000
vierkante
meter
voor
een
periode
van
10
jaar
.
28. Onderdeel van FD Mediagroep
Approach: NER
• NER: Sequence Prediction
• Based on [Graus et al., ECIR ‘14]
• B-I-O scheme
• Beginning of entity mention
• Inside entity mention
• Outside entity mention
• E.g.: “Daarnaast sloot het bedrijf twee nieuwe
overeenkomsten met Xenos en Big Bazar
voor in totaal 2000 vierkante meter voor
een periode van 10 jaar.”
28
Daarnaast O
sloot O
het O
bedrijf O
twee O
nieuwe O
overeenkomsten O
met O
Xenos B-ORG
en O
Big B-ORG
Bazar I-ORG
voor O
in O
totaal O
2000 O
vierkante O
meter O
voor O
een O
periode O
van O
10 O
jaar O
. O
29. Onderdeel van FD Mediagroep
Approach: NER
• Features (for token t in sentence s):
• Token-identity: token=Xenos
• Word-shape: TokenIsCaps={1,0},
TokenIsNumber={1,0}, …
• Context: prevToken=met, nextToken=en, …
• Dictionary: TokenInCompanyDict={1,0},
InPersonNameDict={1,0}, …
• Corpus: token’s TF-IDF weight, token’s word-cluster
membership, …
• And more…
• Structured Perceptron
• Predict tag {B, I, O}
29
Daarnaast O
sloot O
het O
bedrijf O
twee O
nieuwe O
overeenkomsten O
met O
Xenos B-ORG
en O
Big B-ORG
Bazar I-ORG
voor O
in O
totaal O
2000 O
vierkante O
meter O
voor O
een O
periode O
van O
10 O
jaar O
. O
30. Onderdeel van FD Mediagroep
Approach: EL
• Common: Linking to Wikipedia
30
31. Onderdeel van FD Mediagroep
EL 2 Wikipedia
• Use mappings;
• Anchor texts to Wikipedia pages.
• Kendrick Lamar -> Kendrick_Lamar
• Kendrick Duckworth -> Kendrick_Lamar
• Use statistics;
• How often are words used as anchor?
• To which pages do they link?
31
32. Onderdeel van FD Mediagroep
Approach: EL
• Custom KB – Custom features
• Based on [Meij et al., WSDM ‘12]
1. Binary classification, for each mention m:
• Retrieve candidate organisations (query CI database with m)
2. For c in candidates:
• Entity features: Turnover, Size, etc…
• Mention features: MentionLength, etc…
• Entity-Mention features: MentionTitleOverlap, etc…
• Doc features: WoonplaatsInDocument, etc…
• Classify(m, c, doc) -> score
3. Take top-ranked entity
32
33. Onderdeel van FD Mediagroep
Data
• Multiple years of (hand-labeled) articles.
• NER:
• Split article into sentences
• Filter sentences with at least 2 entity mentions
• EL:
• Apply NER to article
• For each mention (m) in doc:
• Query KB (retrieve 20 candidates)
• For each <m, c, doc>-tuple:
• Extract features
• Label: If c == groundtruth: label POS, else NEG
• Train binary classifier
33
34. Onderdeel van FD Mediagroep
Evaluation
• Take data, make train/test-split
• NER: ~85%
• EL: ~85%
• But: Data is noisy/biased
• + Manual inspection
34
35. Onderdeel van FD Mediagroep
Bonus: Entity Salience
• Based on [Reinanda et al., CIKM ‘16]
• Simple baseline approach:
• Prominence: where in the document is entity first mentioned?
• Frequency: how often is entity mentioned?
• Salience: math.sqrt(Prominence*Frequency)
35
36. Onderdeel van FD Mediagroep
Bonus: Sentiment analysis
• Simple Bag-of-Words binary classifier (Naive Bayes)
• Trained on hand-labeled data (~10k articles) (labeled POS/NEG.)
• Given article (TF-IDF weighted vector), predict {POS, NEG}
36
37. Onderdeel van FD Mediagroep
Document Enrichment
• On average; 0.24s/article;
1. NER: Feature extraction + Prediction
2. EL: Retrieve Candidates (one query per mention)
3. EL: Feature Extraction+Classification (for each candidate)
4. Entity Salience Scoring
5. Sentiment analysis
• Number of published articles per day: approx. +160%
• Number of linked orgs: approx. +310%
• Works 24h/day
• More “long tail” articles
37
39. Onderdeel van FD Mediagroep
Burst detection/summarization
• Simple burst detection algo:
• Take rolling average of time series
• Take cutoff (e.g., mean+std)
• Any point over cutoff = burst
39
Nederlandse Aardolie Maatschappij B.V.
40. Onderdeel van FD Mediagroep
Burst detection/summarization
• Simple burst detection algo:
• Take rolling average of time series
• Take cutoff (e.g., mean+std)
• Any point over cutoff = burst
40
2016-08
• Groen licht voor oliewinning in Drenthe
• Robotkraan RoBorg aan boord van de Kroonborg
• Afvalwater NAM weer door Hardenberg naar Twente
• Minister Kamp: NAM mag weer afvalwater injecteren in Twentse bodem
• Nam hervat volgende maand waterinjectie
• “Vertrouwen in NAM en CVW naar absoluut dieptepunt.”
• Groen licht voor herstart oliewinning in Schoonebeek
• Groen licht voor oliewinning in Drenthe
• Oliewinning in Schoonebeek half september hervat
• TU Delft: 'Schadeonderzoek Arcadis deugt niet'
Nederlandse Aardolie Maatschappij B.V.
41. Onderdeel van FD Mediagroep
Burst detection/summarization
• Simple burst detection algo:
• Take rolling average of time series
• Take cutoff (e.g., mean+std)
• Any point over cutoff = burst
41
2016-08
• Groen licht voor oliewinning in Drenthe
• Robotkraan RoBorg aan boord van de Kroonborg
• Afvalwater NAM weer door Hardenberg naar Twente
• Minister Kamp: NAM mag weer afvalwater injecteren in Twentse bodem
• Nam hervat volgende maand waterinjectie
• “Vertrouwen in NAM en CVW naar absoluut dieptepunt.”
• Groen licht voor herstart oliewinning in Schoonebeek
• Groen licht voor oliewinning in Drenthe
• Oliewinning in Schoonebeek half september hervat
• TU Delft: 'Schadeonderzoek Arcadis deugt niet'
2017-03
- NAM aansprakelijk voor immateriële schade aardbevingen
- NAM aansprakelijk psychologische schade aardbevingen
- Aardbevingsellende: 'Het vreet aan ons'
- NAM aansprakelijk voor psychische schade bewoners aardbevingsgebied
- NAM aansprakelijk immateriële schade inwoners Groningenveld
- NAM ook aansprakelijk voor immateriële schade door aardbevingen
- Live: Rechtszaak immateriële schade door aardbevingen [afgelopen]
- NAM moet ook immateriële schade aardbevingen vergoeden
- 'Uitspraak is een mokerslag voor NAM en minister Kamp'
Nederlandse Aardolie Maatschappij B.V.
47. Onderdeel van FD Mediagroep
Fin
Questions?
@dvdgrs
www.graus.co
david.graus@fdmediagroep.nl
Refs:
D. Graus, M. Tsagkias, L. Buitinck, and M. de Rijke, “Generating pseudo-ground truth for predicting new concepts in social streams,” ECIR 2014
E. Meij, W. Weerkamp, and M. de Rijke, “Adding semantics to microblog posts,” WSDM 2012
R. Reinanda, E. Meij, and M. de Rijke, “Document Filtering for Long-tail Entities,” CIKM 2016
47
Editor's Notes
- age-old problem, particularly when ‘clean data’ is available pretty much solved
10 years ago very popular.
Adding semantics to documents, more explicit than implicit models (e.g., topic models).
Some issues w/ evaluation; the ‘ground truth’ data is biased, manual inspection