3 ms·
IIRC these nets don't actually build a knowledge base (though I may be wrong, it's been a while). They're still functioning in lossy continuous space. This is
by popinman322 6y ago
IIRC these nets don't actually build a knowledge base (though I may be wrong, it's been a while). They're still functioning in lossy continuous space.
This is probably fine with a low number of symbols and relations, but once you get to the level of a neural theorem prover you need to properly handle symbol binding.
If I'm working with integers and integer-valued variables, how do I represent the variables? How do I represent the operations? This gets more complex once you leave a closed domain, where all the operations and variables are defined up front, and you enter an open domain like theorem proving.
There are definitely good applications for small-scale symbolic work; you could possibly improve efficiency of warehouse robots, for example.
Highly (pro/ef)ficient neural theorem provers would be amazingly useful, though. Not to mention reasoning over medical knowledge given only the source documents (journal articles).
In either of the two domains above you need to extract symbols and relations directly from text. I think symbol-identification and relation-identification, for unstructured documents, can likely be done with some of the state-of-the-art models (particularly thinking of Diffbot[0] here).
So use something like Diffbot to identify symbols+relations, then... how do you represent them? Once you have the symbols you can use traditional reasoning tech on them, but it's going to be extremely slow for any reasonable unit of work. Which is exactly why you'd want to piggyback off of neural work.
---
Some work has been done on neural theorem proving (NTP). See [1][2]. There are justifications for replacing the existing graph search vs. providing better search heuristics, but I'm fuzzy on the details. Either approach should be eligible for reinforcement learning.
[0]: https://www.diffbot.com/products/natural-language/ https://www.diffbot.com/products/natural-language/
[1]: https://arxiv.org/abs/1705.11040 https://arxiv.org/abs/1705.11040
[2]: https://arxiv.org/abs/1606.04442 https://arxiv.org/abs/1606.04442 (This is just for premise selection; it doesn't replace the prover machinery)
[3]: https://arxiv.org/abs/1701.06972 https://arxiv.org/abs/1701.06972 (More guided search)
- prox 6y agoThanks for this write up, it provided some context and confusion I had.
- nl 6y agoI don't think this is quite right. I've done some work around the edges of this space (not solving, more making sure predictions were explainable by combining deep nets and Bayesian models). The deep nets handle the object (and language) recognition, and build the vector representation (so comparisons are possible; ie, your lossy continuous space). But then you - somehow - build a mapping to symbolic space. Then when confronted with unmapped data the net can measure similarities to previously known examples, and use them to translate via similarity measures. I'm not entirely sure if this is the approach taken (I haven't read their paper) but my impression is that the "turn it into a symbolic program" means that the symbolic program itself is a traditional solver (whether it be a theorem solver or something like Prolog/Datalog is unclear)
- mikelevins 6y agoAlso, building symbolic models from neural models isn't the only useful way to combine the approaches. You can, for example, build symbolic models by capturing human knowledge and use the symbolic models to guide and constrain the neural ones. As an example from work I'm doing now, you might have a sample that the neural model recognizes as A, and causally-connected sample that it recognizes as B, and a symbolic model that says that a change from A to B implies C.