I. Introduction
Modern data processing tasks often manipulate structured data, where signal values are defined on the vertex set of a weighted and undirected graph. We refer to such data as graph signals, where the vertices of the graph represent the entities and the edge weights reflect the pairwise relationships between these entities. The signal values associated with the vertices carry the information of interest in observations or physical measurements. Numerous examples can be found in real world applications, such as temperatures within a geographical area, transportation capacities at hubs in a transportation network, or human behaviors in a social network. Such data representations have led to the emerging field of graph signal processing [1], [2], which studies the representation, approximation and processing of such structured signals. Currently, most of the research effort in this field has been devoted to the analysis and processing of the signals, which are defined on a graph that is a priori known or naturally chosen from the application domain, e.g., geographical or social friendship graphs. However, these natural choices of graphs may not necessarily describe well the intrinsic relationships between the entities in the data. Furthermore, a natural graph might not be easy to define at all in some applications. When a good graph is not readily available, it is desirable to learn the graph topology from the observed data such that it captures well the intrinsic relationships between the entities, and permits effective data processing and analysis. This is exactly the main objective of the present paper.