Sense2vec – A Fast and Accurate Method for Word Sense Disambiguation
arxiv.org
arxiv.org
To understand the technique, first understand word2vec:
http://rare-technologies.com/word2vec-tutorial/
http://colah.github.io/posts/2014-07-NLP-RNNs-Representation...
Now understand part-of-speech tagging:
http://spacy.io/blog/part-of-speech-POS-tagger-in-python/
By default word2vec gives you clusters for each word, this paper is giving you clusters for word_POS, e.g. The_DT apple_NNP employee_NN is_VBZ eating_VBG an_DT apple_NN. The same trick is done with named entity labels as well.
The following papers explain how the new word vectors are used in a dependency parser:
Collobert and Weston (2011): http://arxiv.org/pdf/1103.0398.pdf
Wang and Manning (2014): http://cs.stanford.edu/~danqi/papers/emnlp2014.pdf
Yoav Goldberg (2015): http://u.cs.biu.ac.il/~yogo/nnlp.pdf Survey/review, aimed at grad students
Ideas are often obvious after you hear them for the first time.
A reasonable amount of work has already been done in disambiguation of the meanings of words with word embeddings, some of it trained, some untrained.
These particular papers that have recently caught my attention, and have the potential to bring significant gains wrt existing technologies are these:
1. Infinite-Length Word embeddings http://arxiv.org/pdf/1511.05392v2.pdf I am particularly excited about this paper, as the authors suggest a method to create variable-length word vectors, depending on the multiplicity of meanings a word can have (so theoretically, if a word had a _lot_ of meanings, the word vectors would me very large. Reminds one of the word 'Aladeen'). IF the authors happen to me hanging out here, the community is eagerly waiting for the reference implementation. : )
2. Joint Learning of Words and Meaning Representations for Open-Text Semantic Parsing http://jmlr.csail.mit.edu/proceedings/papers/v22/bordes12/bo...
3. Breaking Sticks And Ambiguities With Adaptive Skip-Gram http://arxiv.org/pdf/1502.07257v2.pdf
Edit: added paper 3.
The ball is bouncing on the floor
The ball takes place in the hotel
However, plain "old" word2vec will handle it fine.
A round ball is associated with words like bounce, and various sporting terms. It will appear in a the vector space alongside those words.
A dance ball is associated with dance, gowns, "go to", etc.
The example in the paper around "Washington" shows how this can be used to distinguish between the NER (named entity resolution) type "PERSON" and "GPE" (Geo-political-entity) - it disambiguates very well between Washington (George) and Washington (DC).
If this is true, that's astonishing. Also, this might allow us to build assistive technologies for people who are unable to perceive sarcasm.
word2vec is using a very weak supervision which is the order in which words appear in a meaningful sentence. And I think it is fascinating to use this kind of weak supervision to build distributed embedding for words.
What's supervised about that? Can't this be produced by a large enough corpus?
While they got good results telling bank the noun from bank the verb... they didn't differentiate bank the noun (financial ) from bank the noun (the side of a river).
Or even more complicated... look at all the uses of bank on word net.
http://wordnetweb.princeton.edu/perl/webwn?s=bank
I'm not sure I can grasp the implications of disambiguating some words, but not others. For some applications it might make sense but... trying to disambiguate words or leave them as single vectors is still, in my mind, an open research question.
EDIT: Sorry, this question above is probably too convoluted to understand. As I understand, the evaluation of the UAS in the paper was made by letting the parser use the gold PoS labels from the UD treebank (plus either word embeddings). But what would happen if the PoS labels for evaluating the dependency parser came from a PoS tagger, as would be the case when working on unseen data? I might imagine that "plain" embeddings could maybe produce a better UAS in that case, because they are not as "overfitted" as the "enriched" embeddings (as those are derived from the PoS-tagger labeled words in the first place).
Perhaps also relevant to this conversation, the disambiguation for pre-training did in fact use "real-world" tags (not gold standard). Thus, sense2vec as an algorithm was able to sort through the noise generated by mistakes in the part-of-speech tagger to still generate meaningful embeddings.
The method does not pos-label vectors or words in the model. Instead, it pos-labels the text that sense2vec is trained on. In this way, you get multiple vectors for words with multiple-POS usages (as if they were different words altogether). The change to the syntactic parser was just based on using POS to select which word embedding (of the several available for each word) to use as input. Sense2vec was trained on predicted POS labels. The parser used gold standard POS tags in both normal word2vec and sense2vec for even comparison.
Which, given the time they've put into this paper, is not an unreasonable thing.
Edit: just noticed their email addresses are of the http://www.digitalreasoning.com/ domain. Seems they're not in the business of releasing open source versions, so to speak.
OS versions of similar tech exist, but this is new.
I've wanted to do this for a while, so it's nice to see that it works well.
One thing notably absent from the paper is a discussion of the trade-off between augmenting tokens with annotations in this way for sense disambiguation vs. data sparseness. Their approach may make the embeddings for frequent senses better, but the difficulty in WSD is typically in low-frequency senses. I think that particularly in disambiguation using part-of-speech tags, there is still a high semantic relatedness between senses, especially in languages with frequent nominalization or verbalization.
I can imagine that an model that predicts a target (or context) in decomposed form (token and label) might improve embeddings for low-frequent senses.
Rare words are usually pretty unambiguous for part-of-speech. I would guess this mostly has an effect on the top 5,000 items of the vocabulary, and most of the rest of the lexicon only has a single "sense".
Sure. I was pointing to real WSD where sparseness becomes even a stronger problem than when your definition of sense is restricted to part-of-speech tag or sentiment.
Rare words are usually pretty unambiguous for part-of-speech.
I was talking about (possibly) frequent words where some part-of-speech are infrequent, not about rare words. To take five more or less random examples form the Brown corpus (yes, we train on large corpora, but I think similar distributions could hold for less frequent forms in languages with e.g. frequent nomalization, not everyone speaks English!):
mother NN 173 VB 1
code NN 20 VB 1
hanging NN 1 VBG 20
level JJ 14 NN 172 VB 2
services NNS 115 VBZ 1
If your learning method is as coarse-grained as simply throwing the token plus part-of-speech into word2vec or wang2vec, some will be below the frequency cut-offs (or will be to sparse to learn good embeddings), while other 'senses' may in reality be semantically similar.