& 6,442,892\
\#std time slots & 24 & 24\
\# of locations & 5,846 & 200\
\# of $<$t, l$>$ patterns & 28,868 & 3,636\

Each check-in is stored as user-ID, POI-ID, POI-location in the form of latitude and longitude, check-in timestamp, and POI-content (only for Foursquare). In order to get the spatiotemporal patterns $<$t, l$>$ in Table \[tbl:dataset\], we use the same discretized method as that in  [@Xie_cikm16], i.e., dividing time into 24 time slots which correspond to 24 hours, and the whole geographical space into a set of regions according to 5,846 administrative divisions (for Foursquare) and 200 regions clustered by a standard *k*-means method (for Gowalla). We finally get 28,868 and 3,636 $<$t, l$>$ pairs on Foursquare and Gowalla, respectively.

**Baselines - {GE, STA-E, STA-H}** We use GE, the state-of-the-art location based recommendation approach in  [@Xie_cikm16], as our baseline. GE adopts a graph-based embedding framework. It learns the embeddings based on the POI-POI, POI-Time, POI-Location, and POI-Words graphs. By integrating the sequential, geographical, temporal cyclic, and semantic effect into a shared space, GE effectively overcomes the data sparsity problem and reaches the best performance so far.

We do not compare our method with other existing approaches because, 