TensorLog: A Probabilistic Database Implemented Using Deep-Learning Infrastructure

Authors: William Cohen, Fan Yang, Kathryn Rivard Mazaitis

JAIR 2020 | Venue PDF | Archive PDF | Plain Text | LLM Run Details

Reproducibility Variable Result LLM Response
Research Type Experimental Experimental results show that Tensor Log scales to problems involving hundreds of thousands of knowledge-base triples and tens of thousands of examples. To evaluate our proposal we conducted experiments to measure the scalability of the proposed algorithm, and to demonstrate how it can be integrated with Tensorflow. We also evaluated learners based on Tensor Log on two types of benchmark tasks: relational learning tasks, and query-answering against a KB.
Researcher Affiliation Academia William W. Cohen EMAIL Fan Yang EMAIL Kathryn Rivard Mazaitis EMAIL Machine Learning Department Carnegie Mellon University 5000 Forbes Avenue, Pittsburgh PA 15208
Pseudocode Yes Figure 5: Algorithm for unrolling belief propagation on a polytree into a sequence of message-computation operations.
Open Source Code No The current implementation of Tensor Log operates by first unrolling the belief-propagation inference to an intermediate form consisting of sequences of abstract operators, as suggested by the examples of Table 1. The unrolling code performs a number of optimizations to the sequence in-line: one important one is to use the fact that v X (v Y Many) = v X||v Y ||1 to avoid explicitly building Many. (If a clause is not a polytree, then this is detected when it is unrolled , as at least one random variable will have two paths connecting it to the input, and an error is generated.) These abstract operator sequences are then cross-compiled into expressions on one of two possible back end deep learning frameworks, Tensorflow (Abadi, Agarwal, Barham, Brevdo, E., Chen, Z., Citro, C., Corrado, G. S., Davis, A., Dean, J., Devin, M., et al., 2016) and Theano (Bergstra, J., Breuleux, O., Bastien, F., Lamblin, P., Pascanu, R., Desjardins, G., Turian, J., Warde-Farley, D., & Bengio, Y., 2010). Figure 6: Sample code for using Tensor Log within Tensorflow. The paper describes the system Tensor Log and provides sample code snippets, but does not provide a direct link to a code repository or an explicit statement about releasing the source code for the described methodology.
Open Datasets Yes As a final, larger scale, experiment, we used the Wiki Movies question-answering task proposed by (Miller et al., 2016). One was the CORA citation-matching task (from (Wang et al., 2013)), which has hand-constructed rules. A second was learning the most common relation, affects , from UMLS, using a rule set learned by the algorithm of (Wang et al., 2014). Also, motivated by comparisons between Pro PPR and embedding-based approaches to knowledge-base completion (Wang & Cohen, 2016), we compared to Pro PPR on two relation-prediction tasks involving Word Net, using rules from the non-recursive theories used in (Wang & Cohen, 2016).
Dataset Splits Yes We picked 1/3 of these queries as test data, and the remainder as train, and optimized training loss for 50 epochs using Adagrad Optimizer with a default learning rate of 1.0 and a minibatch size of 100. We picked 1/3 of these queries as test data, and the remainder as train.
Hardware Specification Yes For Tensorflow we evaluated performance in the CPU-only configuration on a machine with 4 16-core 2.3GHz AMD Opteron 6376 processors and 512Gb of RAM. The GPU configuration was evaluated on a machine with 2 8-core 2.4GHz Intel Xeon E5-2630 processors and a Ge Force GTX TITAN X graphics card with 12 GB memory.
Software Dependencies No These abstract operator sequences are then cross-compiled into expressions on one of two possible back end deep learning frameworks, Tensorflow (Abadi, Agarwal, Barham, Brevdo, E., Chen, Z., Citro, C., Corrado, G. S., Davis, A., Dean, J., Devin, M., et al., 2016) and Theano (Bergstra, J., Breuleux, O., Bastien, F., Lamblin, P., Pascanu, R., Desjardins, G., Turian, J., Warde-Farley, D., & Bengio, Y., 2010). The operator sequences can also be evaluated and differentiated on a backend implemented in the Sci Py sparse-matrix package (Jones, E., Oliphant, T., & Peterson, P., 2014). The paper mentions software tools like Tensorflow, Theano, and SciPy, and references optimizers (Adagrad, ADAM) but does not specify their version numbers.
Experiment Setup Yes We picked 1/3 of these queries as test data, and the remainder as train, and optimized training loss for 50 epochs using Adagrad Optimizer with a default learning rate of 1.0 and a minibatch size of 100. We used an ADAM optimizer (Kingma & Ba, 2014) with a learning rate of 0.1 and halted optimization when accuracy on the training set reached 100%: this took over 500 epochs on average (over 10 trials). Tensorflow backend, with minibatches of size 100 and an Adagrad optimizer with a learning rate of 0.1, running for 20 epochs, and no regularization.