Word2Vec is a special case of Kernel Correspondence Analysis and Kernels for Natural Language Processing

# Word2Vec is a special case of Kernel Correspondence Analysis and Kernels for Natural Language Processing

Hirotaka Niitsuma
Department of Computer Science
Okayama University
Okayama, Japan
niitsuma@cs.okayama-u.ac.jp
Minho Lee
Graduate School of Science and Technology
Kyungpook National University
Daegu, South Korea
mholee@knu.ac.kr
###### Abstract

We show that correspondence analysis (CA) is equivalent to defining a Gini index with appropriately scaled one-hot encoding. Using this relation, we introduce a nonlinear kernel extension to CA. This extended CA gives a known analysis for natural language via specialized kernels that use an appropriate contingency table. We propose a semi-supervised CA, which is a special case of the kernel extension to CA. Because CA requires excessive memory if applied to numerous categories, CA has not been used for natural language processing. We address this problem by introducing delayed evaluation to randomized singular value decomposition. The memory-efficient CA is then applied to a word-vector representation task. We propose a tail-cut kernel, which is an extension to the skip-gram within the kernel extension to CA. Our tail-cut kernel outperforms existing word-vector representation methods.

## 1 Introduction

Principal component analysis (PCA) is a form of unsupervised feature extractor. When applied to chi-squared distances of categorical data, PCA becomes correspondence analysis (CA). CA can extract numeric vector features from categorical data without supervised labeling. The simplest numerical representation for categorical data is a histogram-based representation such as tf-idf or a “bag-of-words”. Many applications use such simple representations. However, histogram-based representations cannot make use of information about correlations within the data. CA enables the representation of both histograms and correlations in data.

The most popular problem involving categorical data is natural language processing (NLP). However, CA has not been applied to NLP because most NLP problems involve a large number of categories. For example, the entire Wikipedia text comprises more than 10,000 different words. Because CA requires excessive memory if applied to numerous categories, CA has not been used for NLP problems involving more than 10,000 categories.

CA is implemented by singular value decomposition (SVD) of a contingency table. In many categorical problems, the contingency table is sparsely populated. Randomized SVD [6] is an appropriate SVD method for sparse matrices. However, CA requires dense matrix computation even for a sparse contingency table, which makes very large demands on memory resources. This research aims to address this problem. We propose using a randomized SVD with delayed evaluation to avoid expanding the sparse matrix into a dense matrix. We refer to this process as the delayed sparse randomized SVD (DSSVD) algorithm. We show that CA with DSSVD can be applied to NLP problems.

Neural-network-based approaches are the most popular feature extractors used in NLP. Of these, word2vec [10] is well known. Usually, such an approach will involve many parameters, which do not have explicit meanings in most cases. These parameters have to be tuned by grid searching or manual parameter tuning, which is difficult in the absence of explicit meanings for the parameters. This parameter problem with neural-network-based approaches also gives rise to domain problems. For example, if word2vec is tuned for application to restaurant reviews, the tuning may not be appropriate for movie reviews.

In most cases, the weight values used in neural networks are initialized as random values, which means that the computed results will always be different. For example, word-vector representations using word2vec will always be different, even when the same parameter values are used, because of random initial values. This adds to the difficulty of parameter tuning.

Since CA is PCA of a contingency table, always the same result is computed. From this viewpoint, the CA approach is better than neural-network-based approaches. Although the latter have these issues, they can be used to approximate any nonlinear function, which means that they can be used for a wide variety of problems. However, because CA is a form of linear analysis, it is not directly applicable to nonlinear problems. To address this issue, this research introduces a nonlinear kernel extension to CA. We can then show that this nonlinear CA approach is better in accuracy compared with recent neural-network-based approaches. In particular, we focus on comparison with respect to word-vector representation tasks. To distinguish linear and nonlinear CA, we refer to the linear CA as LCA.

## 2 Ca

CA is a statistical visualization method for picturing the associations between the levels of a two-way contingency table. As an illustration, consider the contingency table shown in Table 1. This is well known as “Fisher’s data” [4] and represents the eye and hair color of people in Caithness, Scotland. The CA of these data yields the graphical display presented in Figure 1, which shows the correspondence between eye and hair color.

Table 1 shows the joint population distribution of the categorical variable for eye color:

 xeye∈{ blue light medium dark}.

and the categorical variable for hair color:

 xhair∈{ fair red medium dark black}

The visualization is based on “one-hot encodings” and the “indicator matrices” of categorical variables. For example, a one-hot encoding and indicator matrix of the categorical variable can be defined as:

 eeye(blue)=(1,0,0,0)t eeye(light)=(0,1,0,0)t eeye(medium)=(0,0,1,0)t eeye(dark)=(0,0,0,1)t (1)
 (2)

In the following, and denote categorical variables representing the row and column of a contingency table, respectively. and denote one-hot encodings of and for the -th instance.

## 3 Covariance Based on Gini Index

Consider the following relation [16] about the variance of continuous data.

###### Lemma 1.

The variance of continuous data can be expressed as the sum of the differences of individual instances:

 Var(x) =1nn∑a=1(x(a)−¯x)2 (3) =12n2n∑a=1n∑b=1(x(a)−x(b))2 (4)

where are continuous sample data. is the average value of the sample data. is the variance of the continuous data.

###### Proof.

Let us expand (3) and (4).

 1nn∑a=1(x(a)−¯x)2 =1n(n∑a=1x(a)2+¯x2−2x(a)¯x) =1n((n∑a=1x(a)2)+n¯x2−2n¯x¯x) =1n((n∑a=1x(a)2)−n¯x2) (5) 12n2n∑a=1n∑b=1(x(a)−x(b))2 =12n2n∑a=1n∑b=1((x(a)2+x(b)2−2x(a)x(b))) =12n2(2nn∑a=1x(a)2−2n∑a=1x(a)(n∑b=1x(b))) =12n2(2nn∑a=1x(a)2−2n∑a=1x(a)n¯x) =12n2(2nn∑a=1x(a)2−2n¯xn¯x) =12n2(2nn∑a=1x(a)2−2n2¯x2) =1n(n∑a=1x(a)2−n¯x2) (6)

We see the expanded the equations (5) and (6) are same. ∎

Using the same formulation about the sum of the differences between individual instances for categorical data gives a Gini index [5]:

 Gini(x)=12n2n∑a=1n∑b=1|x(a)−x(b)| (7)

where

 |x(a)−x(b)|={1x(a)≠x(b)0x(a)=x(b). (8)

Here, is a categorical variable that takes one of the values in . Rewriting this formulation with one-hot encoding gives:

 e(x1)=(1,0,0,0,...)t e(x2)=(0,1,0,0,...)t. ... e(xm)=(0,0,0,...,1)t (9)

This is more similar to the continuous case:

 Gini(x)=12n2n∑a=1n∑b=1|e(x(a))−e(x(b))|22. (10)

Using this one-hot encoding, we can also define the covariance of categorical data. Consider the categorical variables and . If the given sample categorical data is

 {(xr,xc)}= {(xr(1),xc(1)),(xr(2),xc(2)),..., (xr(a),xc(a)),...,(xr(n),xc% (n))}, (11)

we can define the covariance of and :

 Covwrong(xr,xc)=14n2n∑a=1n∑b=1|e(xr(a))−e(xr(b))| ⋅|e(xc(a))−e(xc(b))|. (12)

Okada [12, 11] showed that this definition is invalid by considering the contingency table shown in Table 2. In this contingency table, and are highly correlated and the instance reduces the correlation between and . However, the instance increases the covariance in the formulation (12). To avoid such an invalid increase, Okada defined the covariance using rotated one-hot encoding [11].

###### Definition 1.

The covariance of categorical variables and is the maximized value :

 Cov(xr,xc) =maximizeR 12n2n∑a=1n∑b=1 12(er(xr(a))−er(xr(a)))t R(ec(xc(a))−ec(xc(b)) subject to RtR=E (13)

where is a rotation matrix that maximizes the covariance. The vectors and are one-hot encodings of and .

In terms of this definition, the instance reduces the covariance. In this respect, this definition is better than (12). Expanding the maximization problem, (1) gives a simplified form.

###### Lemma 2.

The maximization problem (1) is equivalent to

 Cov(xr,xc)= maximizeR 12tr(RtΞ) subject to RtR=E, (14)

where

 Ξ=N/n−rct/n2, (15) r=N1, (16) c=Nt1. (17)

is an contingency table, with entries giving the frequency with which row categorical variable occurs together with column categorical variable . denotes the vector of row marginals and is the vector of column marginals. .

###### Proof.

Consider the expansion of (1):

 12n2n∑a=1n∑b=112(er(xr(a))−er(xr(b)))t R(ec(xc(a))−ec(xc(b))) =14n2tr(Rtn∑a=1n∑b=1(er(xr(a))−er(xr(b))) (ec(xc(a))−ec(xc(b)))t) =tr(Rt(12nn∑a=1er(xr(a))ec(xc(a))t −12n2n∑a=1er(xr(a))n∑b=1ec(xc(b))t)) =12tr(Rt(HrtHcn−rctn2)) =12tr(Rt(Nn−rctn2))=12tr(RtΞ), (18)

where

 Hr=[er(xr(a1)),er(xr(a2)),...,er(xr(an))]t Hc=[ec(xc(a1)),ec(xc(a2)),...,ec(xc(an))]t. (19)

is the indicator matrix of . is the indicator matrix of . The contingency table can be constructed using the matrix product of the two indicator matrices:

 N=HrtHc. (20)

Substituting (18) into (1) gives (2). ∎

We can solve the maximization problem (2) using SVD.

###### Theorem 1.

is a local optimum of the maximization problem (2). Here,

 USVt=Ξ (21)

is an SVD of .

###### Proof.

Local optima of the maximization problem are given by differentiating the Lagrangian:

 L=tr(RtΞ)−tr(Λt(RtR−E)), (22)

where is a Lagrange multiplier. The differentiation of this Lagrangian with respect to gives the stationary condition:

 RtΞ=(Λ+Λt). (23)

This result shows that must be a symmetric matrix.

Consider the SVD:

 USVt=Ξ (24)

for the case . Here, is the symmetric matrix:

 RtΞ=VUtUSVt=VSVt

and is the rotation matrix:

 RtR=VUtUVt=E.

satisfies the stationary condition (23) and the constraint of Lemma 2. We can therefore conclude that is a local optimum of the probleam of Lemma 2.∎

###### Theorem 2.

When all singular values of are positive, is the global optimum for the maximization problem (2).

###### Proof.

Substituting into (2) gives:

 tr(RtΞ)=tr(RtUSVt)=tr(VtRtUS).

Note that is also a rotation matrix. Consider

 tr(QS)=tr(QD(s))=∑iqiisi,

where is the vector of the singular values of . Because is a rotation matrix, . Then,

 ∑iqiisi≤∑isi. (25)

The case gives the upper limit:

 ∑iqiisi=∑i1si=∑isi.

In our experiments, we did not find a case for which had a large negative singular value. In the following, we assume that is the global optimum of the maximization problem (2).

If negative singular values appear, we can use the following theorem.

###### Theorem 3.

Consider the following optimization problem for a given matrix :

 maximizeR tr(RtΞ) subject to RtR=E.

The global optimum of this optimization problem is:

 R=UD(sgn(s))Vt.

Here,

 UD(s)Vt=Ξ

is an SVD of the matrix , where is the vector of the singular values for the matrix .

###### Proof.

Consider the case for which some of the singular values are negative. In such a case, the upper limit (25) becomes:

 ∑iqiisi≤∑isgn(si)si=∑i|si|. (26)

The case gives the upper limit:

 ∑iqiisi=∑isgn(si)si=∑i|si|.

## 4 Lca

First, we introduce generalized singular value decomposition (GSVD).

###### Definition 2.

Generalized singular value decomposition (GSVD) of a given matrix with diagonal weight matrices and is the decomposition:

 ˘U^S˘Vt=Ξ (27)

where

 ˘U=D(r)1/2^U, (28) ˘V=D(c)1/2^V. (29)

denotes the diagonal matrix for which diagonal entries are the components of vector . The vectors and are given weight vectors. and are given by ordinary SVD:

 ^U^S^Vt=^Ξ (30)

where

 ^Ξ=D(r)−1/2ΞD(c)−1/2. (31)

Note that this decomposition maintains the perpendicularity of the base vectors in the decomposed space with the weight matrices:

 ˘UtD(r)−1˘U=˘VtD(c)−1˘V=E. (32)

Using GSVD, we can define the well-known analysis for categorical data .

###### Definition 3.

The liner correspondence analysis (LCA) of a given contingency table is GSVD:

 ˘U^S˘Vt=Ξ (33)

with weight matrices and . Here,

 Ξ =N/n−rct/n2, (34) r =Ξ1, (35) c =Ξt1. (36)
###### Lemma 3.

LCA is equivalent to the maximization problem:

 maximize^R 12tr(^Rt^Ξ) subject to ^Rt^R=E, (37)

and has the solution:

 ^R=^U^Vt. (38)

Here, and are given by ordinary SVD:

 ^U^S^Vt=^Ξ (39)

where

 ^Ξ=D(r)−1/2ΞD(c)−1/2. (40)
###### Proof.

LCA is the GSVD of . The GSVD is the SVD of . Applying Theorem 1 to the SVD of gives the required result. ∎

(21) and (30) enable the SVD to be rewritten as the following maximization problem based on one-hot encoding.

###### Theorem 4.

LCA is equivalent to the maximization problem:

 maximize˘R 14n2∑a,b(^er(xr(a))−^er(xr(b)))t ˘R(^ec(xc(a))−^ec(xc(b))) subject to ˘Rt[^er(xr1),^er(xr2),...]t˘R[^ec(xc1),^ec(xc2),...] =E (41)

where

 ^er(xr)=D(r)−1er(xr), (42) ^ec(xc)=D(c)−1ec(xc) (43)

are scaled one-hot encodings.

###### Proof.

Substitute the following relations into the maximization problem (37):

 tr(^Rt^Ξ)=tr(˘RtD(r)−1ΞD(c)−1) (44) ˘RtD(r)−1˘RD(c)−1=D(c)1/2^Rt^RD(c)−1/2=E ⇔^Rt^R=E (45)

where

 ˘R=D(r)1/2^RD(c)1/2. (46)

Substituting these relations in (37) gives:

 maximize˘R 12tr(˘RtD(r)−1ΞD(c)−1) subject to ˘RtD(r)−1˘RD(c)−1=E. (47)

Note that:

 [^er(xr1),^er(xr2),...,^er(xrnr)] =D(r)−1[er(xr1),er(xr2),...,er(xrnr)] =D(r)−1E=D(r)−1 [^ec(xc1),^ec(xc2),...,^ec(xcnc)] =D(c)−1[ec(xc1),ec(xc2),...,ec(xcnc)] =D(c)−1E=D(c)−1. (48)

Substituting this relation into problem (47) yields the optimization problem (41). ∎

This maximization problem defines the rotated Gini index using scaled one-hot encoding. We can therefore say that LCA is equivalent to defining a Gini index using scaled and rotated one-hot encoding.

## 5 Nonlinear extension

We now consider extending the optimization problem (41) using one-hot encoding on a nonlinear mapped space.

###### Definition 4.

A nonlinear extension to CA can be expressed as:

 maximizeR 14n2∑a,b(Φr(^er% (xr(a)))⊖rΦr(^er(xr(b))))t ⋅R(Φc(^ec(xc(a)))⊖cΦc(^ec(xc(b)))) subject to Rt[Φr(^er(xr1)),Φr(^er(xr2)),...]t R[Φc(^ec(xc1)),Φc(^ec(xc2)),...]=E (49)

where are nonlinear mappings. are subtraction operators on the nonlinear mapped spaces. The summation operator performs cumulative addition on the nonlinear mapped spaces:

 ∑xi=x1⊕x2⊕...

where is an addition operator on the nonlinear mapped spaces. We refer to this formulation (49) as kernel correspondence analysis (KCA).

To be able to use the kernel trick, we assume the following rules about subtract and add operations.

###### Assumption 1.
 X(Y1⊖cY2)t=XYt1⊖XYt2 (50) (X1⊖rX1)Yt=X1Yt⊖X2Yt (51) X⊖(Y⊖Z)=(X⊕Z)⊖Y (52) (X⊖Y)⊕Z=(X⊕Z)⊖Y (53) (X⊖Y)⊖Z=X⊖(Z⊕Y) (54) X⊕(Y⊖Z)=(X⊕Y)⊖Z (55)

Because , and are nonlinear operators, these relations are not valid in general. However, moving left-hand-side operators to the right-hand side in these relations can move outside the expression. Moving to the extreme right enables to require evaluation only once.

When , expanding (49) using these expansion rules gives the following theorem.

###### Theorem 5.

If and the rules in Assumption 1 are valid, we can introduce kernel matrices and . Using the kernel matrices, the maximization problem (49) becomes:

 maximizeR 12tr(RtKr(1nN⊖1n2rct)Kc) subject to RtKrRKc=E. (56)

Note that this formulation requires to be evaluated only once.

Specifying the operators and kernel matrices enables access to various known analyses for categorical data and NLP. Table 3 gives the relation between the specifications and known methods.

### 5.1 Semi-supervised CA

Consider the case where we wish to manually tune the distance between one-hot encodings using tuning ratio tables and .

 Φr(^er(xra))⊖rΦr(^er(xrb))=(^er(xra)−^er(xrb))γr(xra,xrb) Φc(^ec(xca))⊖cΦc(^ec(xcb))=(^ec(xca)−^ec(xcb))γc(xca,xcb) (57)

For this case, we can define the following problem.

###### Definition 5.

Semi-supervised correspondence analysis (SCA) can be expressed as:

 maximizeR 12n2tr(RtD(r)−1(N∘(ΓrNΓc) −(ΓrN)∘(NΓc))D(c)−1) subject to RtD(r)−1RD(c)−1=E r=(ΓrN)∘(NΓc)1 c=((ΓrN)∘(NΓc))t1 Γr=[γrij] Γc=[γcij] (58)

This problem is defined by considering and (57). The tuning tables and can be regarded as supervised training data. However, this method can also be based on unsupervised training data like PCA. We refer to this process as semi-supervised correspondence analysis (SCA).

## 6 Delayed Sparse Matrix

CA is ordinary SVD:

 ^U^S^Vt=D(r)−1/2(N/n−rct/n2)D(c)−1/2. (59)

Because is a dense matrix, is also a dense matrix, even when is a sparse matrix. This is the reason why the CA approach makes such a demand on memory resources.

However, computing the dense matrix can be avoided by delayed evaluation. Consider multiplying by an arbitrary matrix on both the left-hand and right-hand side of (59).

 left-dot(Z)=lamda(Z)( (ZD(r)−1/2N/n−ZD(r)−1/2rct/n2)D(c)−1/2) (60)

The right-hand-side multiplication can be expressed similarly:

 right-dot(Z)=lamda(Z)( D(r)−1/2(N/nD(c)−1/2Z−rct/n2D(c)−1/2Z)). (61)

Randomized SVD requires only a multiplying operation on the matrix to be decomposed, as for the power method. We can execute the randomized SVD using and without involving the expanded matrix (59). Because this scheme can avoid computing the dense matrix, there is a reduction in both computing time and memory requirements. We refer to this scheme as the delayed sparse randomized SVD (DSSVD) algorithm. Python implementation of this CA is provided in https://github.com/niitsuma/delayedsparse/blob/master/delayedsparse/ca.py

## 7 Word Representation

This research discusses the application of CA to word-vector representation tasks. Consider the following contingency table for some given training-text data:

 Nskip=[nskipij]=[\#(wi,tj)], (62)

where is the number of times that the word appears in the context . Based on this table, Mikolov et al. [10] introduced vector representations of words, referred to as word2vec. is computed by using the skip-gram model. However, the skip-gram model requires random sampling, which gives different results for each computation. This research uses the following fixed representation.

 \#(w1∗kw2)

This notation represents the number of subsentences for which an arbitrary words appear between words and . For example, consider the sentence:

“this is this is this is this is this.”

In this sentence, the number of times “is” occurs three words after “this” is:

 \#(this∗∗is)=\#(this∗2is)=3.

“is” also appears in other locations.

 \#(this∗0is)=4,\#(this∗1is)=0,\#(this∗2is)=3,...

Given an appropriate window size , this equation can represent a relation similar to the skip-gram.

 Nflat=[nflatij]=[W∑k=0\#(wi∗kwj)] (63)

This cannot ignore noise relations when is large. To ignore noise, we introduce the following weighted sum:

 Ncut=[ncutij]=[W∑k=0\#(wi∗kwj)γ(wi,wj,k)] (64)

where

 γ(wi,wj,k)=⎧⎪⎨⎪⎩1(\#(wi∗kwj)>\#(wi)\#(wj)n2)0(\#(wi∗kwj)≤\#(wi)\#(wj)n2).

is the number of times that the word appears in all the training text. is the total number of words in the given training text. The weighted sum can be introduced using a kernel extension similar to SCA. We refer to this extension as the “tail-cut kernel”. We can compute the LCA of and and the KCA of .

## 8 Experiments

This section compares various word-vector representation tasks using the text8 corpus .

### 8.1 Delayed Sparse Randomized SVD

Figures 3 and 3 show the computing times and the required memory for LCA, respectively. The horizontal axis is the size of the training data. The initial section of the text8 corpus was used as the training data for the LCA. The experiments were carried out in a Gentoo Linux environment using an Intel i7-3770K 3.50 GHz processor. Note that the vertical axes have logarithmic scales.

The LCA was computed using SVD with the numPy library, randomized SVD with the the scikit-learn library, and the DSSVD. DSSVD was 100 times faster than SVD with numPy and 10 times faster than randomized SVD. The memory required for DSSVD was 10% of that required for SVD of numPy and 20% of that required for randomized SVD. When using the whole text8 corpus, the differences became more emphatic. Because of excessive memory requirements, using CA for NLP is impossible without DSSVD. Python code of this experimets is provided in https://github.com/niitsuma/delayedsparse/blob/master/demo-ca.sh

### 8.2 Word Representation

We evaluated the English word-vector representation by focusing on the similarity between words using six test datasets.

Sim:

WordSim Similarity [15]

Rel:

WordSim Relatedness [1]

MEN:

MEN dataset [3]

M.Turk:

Mechanical Turk dataset [14]

Rare:

Words dataset [9]

S999:

SimLex-999 dataset  [7].

Table 4 shows a comparison between methods for the whole text8 corpus. Evaluation with these six test datasets provided a ranking of similarity among words. The evaluation values are Spearman’s rank correlation coefficients of the ranking of similarity among words. For comparison, we show the results for skip-gram with negative sampling (SGNS) [10], continuous bag-of-words (CBOW) [10], GloVe [13], and fastText [2].

In most cases, the tail-cut kernel provided the best or almost-best results. The LCA with also provided some of the best results. However, the LCA with results were drastically affected by the window-size parameter. LCA for also showed instability, whereas the tail-cut kernel provided stable results. For window sizes larger than 30, its result changes become insignificant. This implies that the tail-cut kernel is relatively independent of the window size parameter, thereby possibly decreasing the number of parameters by one.

SCA based on LCA for were also evaluated. The SCA used MEN data and M.Turk data as the supervised training data. SCA outperformed LCA for much of the test data. These results demonstrate that SCA can work effectively. Although the word-vector representation task is unsupervised learning, SCA can use supervised data within the word-vector representation task. Part of codes of this experiments is provided in https://github.com/niitsuma/wordca

## 9 Conclusion

We have proposed a memory-efficient CA method based on randomized SVD. The algorithm also drastically reduces the computation time. This efficient CA can be applied to the word-vector representation task. The experimental results show that CA can outperform existing methods in the word-vector representation task. We have further proposed the tail-cut kernel, which is an extension of the skip-gram approach within KCA. Again, the tail-cut kernel outperformed existing word-vector representation methods.

## References

• [1] Eneko Agirre, Enrique Alfonseca, Keith Hall, Jana Kravalova, Marius Paşca, and Aitor Soroa. A study on similarity and relatedness using distributional and wordnet-based approaches. In Proceedings of Human Language Technologies: The 2009 Annual Conference of the North American Chapter of the Association for Computational Linguistics, pages 19–27. Association for Computational Linguistics, 2009.
• [2] Piotr Bojanowski, Edouard Grave, Armand Joulin, and Tomas Mikolov. Enriching word vectors with subword information. arXiv preprint arXiv:1607.04606, 2016.
• [3] Elia Bruni, Gemma Boleda, Marco Baroni, and Nam Khanh Tran. Distributional semantics in technicolor. In Proceedings of the 50th Annual Meeting of the Association for Computational Linguistics, pages 136–145. Association for Computational Linguistics, July 2012.
• [4] R. A. Fisher. The precision of discriminant functions. Annals of Eugenics, 10:422–429, 1940.
• [5] C.W. Gini. Variability and mutability, contribution to the study of statistical distributions and relations. studi economico-giuridici della r. universita de cagliari (1912). reviewed in: Light, r.j., margolin, b.h.: An analysis of variance for categorical data. J. American Statistical Association, 66:534–544, 1971.
• [6] N. Halko, P. G. Martinsson, and J. A. Tropp. Finding structure with randomness: Probabilistic algorithms for constructing approximate matrix decompositions. SIAM Review, 53(2):217–288, May 2011.
• [7] Felix Hill, Roi Reichart, and Anna Korhonen. Simlex-999: Evaluating semantic models with genuine similarity estimation. Comput. Linguist., 41(4):665–695, December 2015.
• [8] Omer Levy and Yoav Goldberg. Neural word embedding as implicit matrix factorization. In Proceedings of the 27th International Conference on Neural Information Processing Systems, pages 2177–2185, 2014.
• [9] Thang Luong, Richard Socher, and Christopher Manning. Better word representations with recursive neural networks for morphology. In Proceedings of the Seventeenth Conference on Computational Natural Language Learning, pages 104–113, August 2013.
• [10] Tomas Mikolov, Ilya Sutskever, Kai Chen, Greg S Corrado, and Jeff Dean. Distributed representations of words and phrases and their compositionality. In Proceedings of the 26th International Conference on Neural Information Processing Systems, pages 3111–3119. 2013.
• [11] Hirotaka Niitsuma and Takashi Okada. Covariance and PCA for categorical variables. In Proceedings of the 9th Pacific-Asia Conference on Knowledge Discovery and Data Mining, pages 523–528, 2005.
• [12] T. Okada. A note on covariances for categorical data. In K.S. Leung, L.W. Chan, and H. Meng, editors, Intelligent Data Engineering and Automated Learning - IDEAL 2000, 2000.
• [13] Jeffrey Pennington, Richard Socher, and Christopher D. Manning. Glove: Global vectors for word representation. In Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing, pages 1532–1543, 2014.
• [14] Kira Radinsky, Eugene Agichtein, Evgeniy Gabrilovich, and Shaul Markovitch. A word at a time: Computing word relatedness using temporal semantic analysis. In Proceedings of the 20th International Conference on World Wide Web, pages 337–346, 2011.
• [15] Torsten Zesch, Christof Müller, and Iryna Gurevych. Using wiktionary for computing semantic relatedness. In Proceedings of the 23rd National Conference on Artificial Intelligence, pages 861–866, 2008.
• [16] Y. Zhang, H. Wu, and L. Cheng. Some new deformation formulas about variance and covariance. In Proceedings of International Conference on Modelling, Identification and Control, pages 987–992, June 2012.