Regularized online tensor factorization for sparse knowledge graph embeddings

Knowledge Graphs represent real-world facts and are used in several applications; however, they are often incomplete and have many missing facts. Link prediction is the task of completing these missing facts from existing ones. Embedding models based on Tensor Factorization attain state-of-the-art results in link prediction. Nevertheless, the embeddings they produce can not be easily interpreted. Inspired by previous work on word embeddings, we propose inducing sparsity in the bilinear tensor factorization model, RESCAL, to build interpretable Knowledge Graph embeddings. To overcome the difficulties that stochastic gradient descent has when producing sparse solutions, we add l1\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$l_1$$\end{document} regularization to the learning objective by using the generalized Regularized Dual Averaging online optimization algorithm. The proposed method substantially improves the interpretability of the learned embeddings while maintaining competitive performance in the standard metrics.


Introduction
Knowledge Graphs are large graph stores that represent real-world facts by connecting entities through relations. These facts follow the triple form (e s , r, e o ) where e s and e o are respectively, the subject and object entities and r is the relation between them. Unfortunately, Knowledge Graphs have many missing facts and therefore are not complete. The amount of facts, entities, and relations is vast and thus, containing all of them in a Knowledge Graph is a complex task, e.g., Wikipedia's task is to contain information on all branches of knowledge. Furthermore, most Knowledge Graphs model information areas that are continually evolving and changing, which causes the graphs to be incomplete. Different Machine Learning approaches have been proposed to tackle this issue.
Since Knowledge Graphs can be represented as a thirdorder binary tensor where each position of the tensor represents whether a fact (triple) is true or false, different algorithms based on Tensor Factorization have been proposed for inferring the missing knowledge. These factorization algorithms [2,25,44] produce distributed representations of the entities and relations within the Knowledge Graph, also known as Knowledge Graph Embeddings. Embeddings are then used to predict new facts from the known ones.
Embeddings, when distributed, are, however, difficult to interpret. They are real-valued vectors whose individual dimensions can not be understood, i.e., their latent dimensions have low semantic meaning. Several cognitive arguments based on the economy of storage maintain that a small set of features is not enough to describe every semantic concept and domain in our vocabularies [23,24,31]. From the cognitive point of view, some words require more characteristics to be described and others that require less. Besides, certain properties belong to specific semantic domains and sharing properties is not natural for humans. Furthermore, we do not describe concepts based on what they are not since it would be uneconomical; thus, we do not store that a desk is not a vegetable or a glass can not fly. Following these arguments, as authors in [23] presented, the feature set of a representation should only store positive facts, a wide range of feature types, and only & Unai Zulaika unai.zulaika@deusto.es a small quantity of these features should be used to describe a concept. To achieve such properties, the feature set of the concepts representations should be non-negative and sparse. In this work, we present a solution to get the sparsity property in training time for Knowledge Graph Embeddings. Nevertheless, while we do not strictly induce non-negativity in our method, it highly enforces embeddings to have high non-negativity values, as we demonstrate in Sect. 4.4. Other approaches also have been proposed to increase interpretability for Knowledge Graph embeddings. Authors from [5] regularize embeddings incorporating additional entity co-occurrence statistics from text data, thus inducing interpretability in the embeddings. [12] extract weighted Horn rules from embeddings to interpret them. In the area of word embeddings, different authors proposed various models for modelling sparse word-embeddings [23,34].
A common approach to introduce sparsity in machine learning models is to apply the l 1 regularization to the training process. However, the online optimization with stochastic gradient descent (SGD) cannot produce sparsity for the l 1 regularizer making it a non-trivial task. To overcome such an issue, we propose to use the generalized Regularized Dual Averaging (gRDA) algorithm [6], which can produce l 1 regularized embeddings in an online learning setting. We are, to our knowledge, the first to propose a sparse Knowledge Graph Embedding (KGE) solution without any external knowledge.
To conduct our study, we propose the RESCAL model and introduce the l 1 regularizer into the embeddings applying gRDA. We perform experiments to evaluate both the performance and interpretability of the embeddings. We test the embeddings on the link prediction task and compare the performance to the other models. Furthermore, we evaluate the interpretability based on the word intrusion task. Results demonstrate that our approach remains competitive on link prediction while improving the interpretability of the learned embeddings.
In summary, our main contributions are: • Presenting the first sparse linear KGE model, sRES-CAL, that increases interpretability and remains competitive with the state-of-the-art; • Adapting the online optimization algorithm generalized Regularized Dual Averaging to an unknown setting and showing its efficiency; • an extensive evaluation and comparison between dense KGE models and sRESCAL.

Related work
The literature has widely studied the representation of KG's entities and relations as continuous vectors in a lowdimensional space. We first review works that produce embeddings based on tensor decomposition methods which are of primary interest to our approach. Then, we present different techniques for interpreting KG embeddings.

Knowledge graph embedding models
Various tensor factorisation models for link prediction have been proposed in the literature: RESCAL [25] is a bilinear model which associates entities with a vector that captures latent semantics. Relations are represented as matrices that model pairwise interactions between the latent factors.
DistMult [44] is a specific case of RESCAL where relations are diagonal matrices. Therefore, relations only capture pairwise interactions between the same dimensions. While this model requires fewer parameters, it cannot model asymmetric relations because of its diagonal property.
ComplEx [37] is an extension of DistMult which outputs complex-valued embeddings. This property makes the model asymmetric, improving the performance in nonsymmetric relations.
TuckER [2] is a linear model based on the Tucker decomposition [38] and previous linear models can be interpreted as special cases of this. Its power relies on a core tensor which allows multi-task learning by sharing knowledge between entities and relations.
All of these are based on tensor factorisation techniques and produce distributed representations. However, unlike our model, they do not introduce sparsity in the embeddings, and the semantic meaning of the representations' dimensions is less understandable. Furthermore, our method could be adapted to different models since it relies on the optimisation process rather than the factorisation itself.

Interpreting knowledge graph embeddings
Authors in the literature have proposed different methods for interpreting KGEs. In [5] authors induce interpretability in the embeddings by adding a measure of coherence as a regularisation term of the overall loss function using additional entity co-occurrence statistics from the text. The coherence measure allows automated evaluation of the quality of topics learned by topic modelling methods by using additional Point-wise Mutual Information (PMI) for word pairs. In [12], authors adopt ''pedagogical approaches'' to interpret KGEs and extract weighted Horn rules to increase their interpretability. In the work [3], authors present a model that does predict links and decides whether it is a ''topical'' or a ''social'' link. A different work, [43], presents a translational model (ITransF) which learns associations between relations and concepts via sparse interpretable attention vectors. Authors in [9] use the topological properties of a network to explain the contribution of particular categories of features in link prediction. In the work [11] authors improve KGEs using background taxonomic information. Finally, in [1] authors analyse the latent structure and semantic meaning of KGEs based on theoretical interpretations of word embeddings. While all of these works try to increase the interpretability of link prediction in Knowledge Graphs, several properties differentiate our approach: it directly increases the interpretability in the embeddings, the process is done at training time, and it does not use external knowledge in the process.
Not only methods for interpreting KGEs, but different approaches for improving KG-related tasks and techniques were proposed in the literature. In [40], the authors propose an ensemble framework to enhance the robustness and trust of knowledge graph completion. Authors in [39] consider a Bayesian reinforcement learning paradigm to harness uncertainty into multi-hop reasoning; in this manner, the method improves interpretability and performance in the task. Authors in [46] incorporate external knowledge with explicitly syntactic and contextual information for the task of aspect-based sentiment analysis.
Techniques for interpreting word embeddings by sparsity mechanism have also been proposed. In [23], authors apply a sparse non-negative matrix factorisation model to produce word embeddings. In the work [10], they use sparse coding techniques to derive sparse word embeddings from dense word representations. Similar to our work, authors from [35] modify the Continuous Bag of Words model and add the l 1 regulariser in online training by employing the Regularized Dual Averagaging method. Authors in [34] present a k-sparse denoising autoencoder to produce a sparse non-negative high dimensional projection of word embeddings. Finally, [27] produce word embeddings by an underlying LDA-based generative model, which helps to generate sparse vectors. These approaches are closer to the approach presented in this work since they produce sparse embeddings. However, they all focus on word embeddings which are developed differently. Our approach works on tensor factorisation techniques that can not be used to build word embeddings.

Sparse tensor factorization
This section presents our approach for applying the l 1 regularization to the RESCAL model via the gRDA optimization algorithm. First, we introduce the background and the RESCAL model itself, then describe the details of the approach. The same technique can be applied to other KGE models such as TuckER or DistMult.

Background
Let E denote the set of all entities and R the set of all relations present in a knowledge graph. We denote the collection of triples in a KG as D and each triple is represented as ðe s ; r; e o Þ 2 D, with e s ; e o 2 E denoting subject and object entities respectively and r 2 R the relation between them.
In the link prediction task the objective is to learn a scoring function / which scores, s ¼ /ðe s ; r; e o Þ 2 R, whether a triple is true or false. To complete the task, we observe a subset of all true triples, aiming to score all the missing ones correctly. In this work, we only consider scoring functions given by a tensor factorization technique, e.g., RESCAL.

RESCAL model
The RESCAL model [25] is a relaxed version of the DEDICOM [13] matrix factorization method, which decomposes a matrix into two matrices that provide an asymmetric relation between entities.
In the case of KGs the tensor is three-mode, therefore the original tensor X 2 R n e Ân e Ân r , is decomposed by RESCAL into an entity matrix A 2 R n e Âd and k relation matrices R k 2 R dÂd where n e represents the number of entities in the KG and d is a hyperpameter for the embedding dimensionality. Thus, the k-th slice of the tensor is factorized as where n r is the number of slices (relations) in the tensor.
RESCAL is a latent feature model which scores triples by the interaction of the latent features of the subject and object entities. The scoring is given by where e s ; e o 2 R d are respectively the subject and object embeddings from the entity embedding matrix E (A in Eq. 1), and R k is the asymmetric relation matrix corresponding to the k-th relation in the KG.

Sparse RESCAL
We aim to introduce sparsity into the embeddings via l 1 regularization. As we know, the l 1 regularization applies a penalty in the learned weights, which makes them push towards 0, leading to finding sparse solutions for the embeddings.
The RESCAL model was originally [25] optimized using the Alternating Least Squares (ALS) method. Nevertheless, different works have pointed out that newer training techniques improve model performance [15,18]. Furthermore, in a recent work [30] that provides an extensive analysis on KG models and their training processes, authors present the Adam [16] method to be the best for training RESCAL. However, as Adam is a stochastic gradient descent (SGD) extension, it can not produce sparse solutions directly applying l 1 regularization to the loss function. The minor updates which SGD makes in the vectors' values difficult the output of many zero entries [8], i.e., it is quite challenging to get two float numbers to add up and equal zero. To overcome this issue, we propose using generalized Regularized Dual Averaging (gRDA) for optimizing the RESCAL model with sparse constraints. gRDA is itself a generalization of the RDA algorithm for sparse neural networks [42], which can be very useful for sparse online learning with l 1 regularization as it can explicitly exploit the regularization structure. In each iteration of the RDA algorithm, the weights of the model are updated, taking into account not only the loss function but also the whole regularization term introduced to achieve the sparsity.
To apply l 1 regularization to our model, we first update the RESCAL model's loss function: where k is a hyperparameter that controls the importance of the regularization term. We follow the same training procedure as [2]. We apply the data augmentation method used by [7] adding reciprocal relations for every triple in the dataset. We also use 1-N scoring, i.e., we score all entity-relation pairs fðe s ; rgÞ and the corresponding inverse fðe o ; r À1 gÞ with every entity e 2 E. We use the Binary Cross Entropy (BCE) loss function: fðy i logfðp i gÞ þ fð1 À y i gÞ logfð1 À p i gÞgÞ; where p 2 R n e is the vector of predicted probabilities and y 2 R n e is the binary label vector.

Optimization
In gRDA, at each iteration, the learning weights are adjusted by solving a simple optimization problem that involves the running average of all past subgradients of the loss function. Its update rule is the following: where c is the step size, PðwÞ is the penalty function, FðwÞ is a deterministic and convex regularizer which stabilizes the optimization process in the same manner as proposed in [32] and gfðn; cgÞ is a deterministic non-negative function of n; c. Notice that RDA is a special case of gRDA where gfðn; cgÞ ¼ nc and w 0 ¼ 0.
Since we want to apply the l 1 regularization to the RESCAL model, we follow the same criteria given by [6] for gRDA-l 1 . We set the strongly convex function FðwÞ ¼ 1 2 fjjwgjj 2 2 and the penalty function to be PðwÞ ¼ fjjwgjj 1 . We also follow the function gðn; cÞ ¼ cc which is conjectured by authors to be a universal formula for applying gRDA-l 1 in difficult tasks. In Eq. 6, c ¼ c and l are hyperparameters and t 0 ! 0 is the time mean dynamics. Furthermore, l is the trade-off hyperparameter between accuracy and sparsity. Following the stochastic mirror descent representation of gRDA (see [6] Section 2) and given FðwÞ ¼ 1 2 fjjwgjj 2 2 , we can use the closed-form proximal operator of gðn; kÞPðwÞ [28], for j ¼ 1; 2; :::; d, DW Ã n;c;j ðvÞ ¼ sgnðv j Þ Á fðfjv j gj À gfðn; cgÞgÞ þ ; ð7Þ which will serve as our penalty function P for gRDA-l 1 .
Thanks to the closed-form proximal operator, the computational cost per iteration in the stochastic mirror descent gRDA is as cheap as SGD.
We present the algorithm for optimizing the sparse RESCAL model (sRESCAL) in Algorithm 1. We first initialize the weights of the entity and relation matrices (for each slice) E; R k . Then, for each triplet n in the training set D, we update the accumulator of gradients v by applying Eq. 6. Finally, we set the weights by following the update rule in Eq. 7. Algorithm 1 gRDA-l 1 algorithm for sparse RESCAL Input: D Initialize: e, ∀e ∈ A, w, ∀w ∈ R for n in D do t ← update time of triple n accumulate gradients v := cγ

Experiments
In this section, we analyze the performance in the link prediction task and the interpretability of the proposed algorithm. We compare our sparse model with several dense model baselines. First of all, we describe the datasets and the setup used for the experiments. Then, we study the link prediction task and compare our model with the stateof-the-art dense models. Finally, we analyze the interpretability of the model using the word intrusion task.

Datasets
The datasets used for the evaluation are the following (see Table 1): • FB15k [4] is a subset of the Freebase database which contains facts about the world.

• FB15k-237 [36] is a better-suited version of FB15k
where the inverse of many relations was removed to increase the difficulty. • WN18 [4] is a subset of WordNet, a hierarchical database containing lexical relations between words. • WN18RR [7] is a better-suited version of WN18 where the inverse of many relations was removed to increase the difficulty.
Both datasets were created for the link prediction task.

Implementation details
We open source the PyTorch implementation of the sRESCAL model on GitHub 1 . We select the hyper-parameters using random search by validation set performance. For FB15k and FB15k-237, we select the entity and relation embedding size from 128, 248, 512. Embedding size for WN18 and WN18RR is chosen from 50, 100, 200 due to the small number of relations in the dataset. Additionally, we apply batch normalization [14] and dropout [33] to ease the training procedure. We choose the dropout value in the range (0.1, 0.5) for every dataset. The learning rate is selected within the range (0.1, 0.9) also for both datasets as we observed high learning rate values necessary to overcome local minima. We set c to 0.00005 since we found it to be a suitable value for the starting sparsity in the embeddings. We choose l in the range (0.6, 0.8) where high values correspond to higher sparsity in embeddings. We analyze the impact of l in the following subsections. Finally, the batch size is selected from 248, 512, 1028. The best hyperparameters for each dataset are presented in Table 2.

Link prediction
For the evaluation of the link prediction task, we create all possible candidate triples by adding every entity in E to the test entity-pair, then we use our model to score and rank each of the candidates. We apply the filtered setting where all known true triples in the Knowledge Graph D are removed from the candidate set. We use the standard metrics for the task: mean reciprocal rank and hits@k, k 2 1, 3, 10. Mean reciprocal rank is the average of the inverse of the mean rank assigned to the true triple overall candidate triples. Hits@k measures the percentage of times a true triple is ranked within the top k candidate triples.
We present the link prediction results in Table 3. Although sRESCAL does not outperform the state-of-theart models, it does remain competitive while finding more interpretable and sparse solutions (see Sect. 4.4).
Regarding the simplest versions of the datasets, in WN18, sRESCAL achieves high results on every metric and gets close to the other models. For FB15k, sRESCAL suffers the same phenomena as the standard RESCAL model. The performance on the dataset is considerably lower when compared to other models. We argue that this happens due to not finding the optimal hyperparameters for the dataset. Results from [30,41] also provide low values for RESCAL in such dataset. However, as we will see next, in the more challenging version of the dataset, FB15k-237, RESCAL, and sRESCAL provide significantly better results, being two of the strongest models overall.
Regarding the most challenging datasets, sRESCAL achieves fantastic results, being competitive in every metric. Our model equates DistMult and is close to Com-plEx performance-wise in the WN18RR dataset and stays close to the state-of-the-art model, TuckER, by less than 4 points in the metrics. For FB15k-237, sRESCAL outperforms both DistMult and ComplEx by a significant margin in every metric. Furthermore, the performance almost equals RESCAL and TuckER providing fantastic results on every metric.
While the performance of sRESCAL remains competitive to other models, it does also achieve high sparsity and interpretability levels. Thus, we present sRESCAL as a valid and robust model for the link prediction task. Furthermore, as stated before, the induction of sparsity in the resulting embeddings will increase their interpretability by raising semanticity in their latent dimension. The increase of interpretability is further analyzed in Sect. 4.4 and the outcome is observable in Table 6. However, the introduction of sparsity to the embeddings does also have a penalization on performance. Thus, we analyze the tradeoff between sparsity, thus interpretability, and performance.

Sparsity and performance trade-off
The trade-off between the sparsity level and performance in the embeddings is a crucial aspect to study. sRESCAL is a flexible model that can be tuned to increase or decrease its sparsity levels and, thus, its performance.
Since sRESCAL uses the gRDA-l 1 optimization algorithm, sparsity is defined by hyperparameters c (initial sparsity level) and l, which defines the penalization applied to the learning weights. By tuning those hyperparameters, we can achieve the sparsity level we want at the cost of lowering the final performance of the model. To demonstrate the variation on those hyperparameters, we present different metrics: (a) mean rank value, (b) Dis-tRatio (an interpretability metric based on the word Table 2 Best hyperparameters for sRESCAL for datasets where: LR denotes learning rate, l is the trade-off hyperparameter between accuracy and sparsity, c is the hyperparameter controlling the starting sparsity value, d e and d r correspond to the entity and relation embedding size, d#k; k 2 f1; 2; 3g are the dropout values applied on the subject entity embedding, relation matrix, and subject entity embedding after it has been transformed by the relation matrix respectively, and LS is the label smoothing Bold numbers indicate the best performance across models intrusion task) value and (c) sparsity percentage for dataset FB15k-237 in Fig. 1. We provide results on different values of l while fixing every other hyperparameter (we also fix c since we found the value 0.0005 to be the most optimal for sRESCAL in every case).
Results show a clear trade-off between l, thus the sparsity level of the solution, and the final results on both performance and interpretability. Figure 1a presents a difference between l values where high values, 0.85 and 0.65, achieve worst results on mean rank when compared to the lower, 0.25, 0.45 values. However, we find that l ¼ 0:65 remains competitive to lower values as the difference in the mean rank is quite small. Furthermore, when revising the interpretability metric DistRatio (further explained in next subsection) in (b), the difference between the most interpretable models with high l values is evidenced. As expected, solutions with a high l value achieve good results on DistRatio while those with low l perform worse. This fact is directly related to the sparsity level of the solution, which is shown in (c), where high l valued solutions have higher sparsity levels. As we stated, gRDA allows sRESCAL to be a model that obtains high sparsity values and improves its interpretability 2 . Nevertheless, this comes with a trade-off on the standard link prediction performance metrics such as mean rank, lowering the model's performance on those but raising the interpretability of the outcome embeddings.

Interpretability
In this section, we analyze the interpretability of our sparse model compared to the dense state-of-the-art models. In the same manner as [10,23], we perform experiments on the word intrusion task to evaluate the interpretability of our model. For this section, we only consider the datasets FB15k-237 and WN18RR due to their difficulty and the fact that they are the standard datasets in the current literature.
The word intrusion task evaluates coherence regarding the semantic meaning in each dimension belonging to the representations. Since sparse models create embeddings with only a few dimensions activated, i.e., the value is not 0, each dimension should correspond to a meaningful semantic concept. The task works in the following way: for each dimension i of the embeddings, it finds the k (k 2 N) most relevant Knowledge Graph entities, which are those that have the highest values in the corresponding dimension. Then, a non-relevant Knowledge Graph entity (one that has a low value in the corresponding dimension) is chosen, and it is combined with the top-k entities to create a set of k ? 1 entities for dimension i. We refer to the nonrelevant Knowledge Graph entity as the intruder, and we seek to identify it. An example set of entities for k ¼ 5: {Screenwriter, Film director, Film producer, Television producer, Actor, Erie} where Erie is the intruder entity since it is a city and does not belong to the TV and film industry. Human annotators usually perform the word intrusion task; however, we adopt the automatic version of the task presented in [35]. In this version, the DistRatio evaluation metric is applied. The idea is that to find the intruder entity automatically, its distance to the top-k entities should be high. We measure the distance ratio between the intruder entity and the top-k entities to the distance between the top-k entities themselves. High ratio values mean better interpretability levels because the intruder entity is far (in the embedding space) from the top words (which are close due to their semantic meaning). The metric can formally be presented as: Bold numbers indicate the best performance across models Bold numbers indicate the best performance across models 2 gRDA can be reduced to RDA by setting gðn; cÞ ¼ nc and w 0 ¼ 0, which at the same time is an un-penalized version of SGD as setting PðwÞ and FðwÞ ¼ 1 2 fjjwgjj 2 w . In such a case, we could convert sRESCAL into RESCAL itself.
where top k ðiÞ denotes the top-k entities corresponding to dimension i, w bi denotes the intruder entity for dimension i, distðw j ; w k Þ is the distance between entities w j and w k , IntraDist i is the average distance between the top-k entities on dimension i and InterDist i denotes the average distance between the intruder entity and top-k words on dimension i. We set k ¼ 5 and the distance function to be the Euclidean distance.
We present the interpretability results on FB15k-237 and WN18RR in Tables 4 and 5 respectively. We provide sparsity percentages, DistRatio and negativity percentages for entities and relations for sRESCAL, RESCAl and TuckER models. sRESCAL achieves the best results on DistRatio for both datasets, except in relations for FB15k-237, while maintaining high sparsity values. Both RESCAL and TuckER do not have any sparsity level since they are optimized using the Adam method. Furthermore, our experiments demonstrate the effectiveness of sparsity for developing more interpretable embeddings. Moreover, we present results on negativity since gRDA-l 1 , while not constraining to positive values, enforces non-negativity on embeddings. Positivity is an important characteristic for the interpretability of the embeddings since human people do not describe a concept by what is not. Besides, positivity allows to perform additive combinations and create representations from differents parts [19,23]. Results present sRESCAL as a highly non-negative method when compared to RESCAL and TuckER, improving interpretability in the embeddings.
We also provide a qualitative evaluation of the interpretability results. We select the top 5 words of a few dimensions in RESCAL and sRESCAL and present them in Table 6. While the top 5 words provided by the standard RESCAL model do not have any coherence or semantic meaning, the sRESCAL model gets clear topics. From the first row to the fifth: dog breed, films, actors and directors, music topics (instruments), and basketball teams.

Conclusion
In this work, we present a novel technique for learning sparse Knowledge Graph Representations. The approach uses the generalized Regularized Dual Averaging online optimization algorithm and applies the l 1 regularization into the RESCAL model. The experiments demonstrate that the sparse RESCAL remains competitive with the state-of-the-art while achieving high sparsity and nonnegativity in the embeddings. We prove that gRDA-l 1 can effectively be applied to RESCAL and other tensor factorization models. This fact provides the opportunity to increase the interpretability in the link prediction task from the core elements used to perform it, the embeddings. Furthermore, the results in the word intrusion task show that the model's interpretability is effectively improved. The developed embeddings contain a higher semantic coherence and are more understandable for people. In the future, we consider to extend gRDA-l 1 to other tensor factorisation models.  Open Access This article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article's Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article's Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http://creativecommons. org/licenses/by/4.0/.