tensorflow lattice
Toward Better AI: Monotonic Models
AI is fast becoming an amazing asset, having achieved superhuman levels of performance in domains such as image recognition, Go, and even poker. Many are excited about the future of AI and humanity. At the same time, there is a general sense that AI does suffer from one pesky flaw: AI in its current state can be unpredictably unreliable. The classical example is the Jeopardy! IBM Challenge, during which Watson, the IBM AI, cleaned the board with ease, only to miss the "Final Jeopardy!" question, which was under the category of US Cities: "Its largest airport is named for a World War II hero; its second largest for a World War II battle."
Monotonicity constraints in machine learning
In practical machine learning and data science tasks, an ML model is often used to quantify a global, semantically meaningful relationship between two or more values. For example, a hotel chain might want to use ML to optimize their pricing strategy and use a model to estimate the likelihood of a room being booked at a given price and day of the week. For a relationship like this the assumption is that, all other things being equal, a cheaper price is preferred by a user, so demand is higher at a lower price. However what might easily happen is that upon building the model, the data scientist discovers that the model is behaving unexpectedly: for example the model predicts that on Tuesdays, the clients would rather pay $110 than $100 for a room! The reason is that while there is an expected monotonic relationship between price and the likelihood of booking, the model is unable to (fully) capture it, due to noisiness of the data and confounds in it.
tensorflow/lattice
TensorFlow Lattice is a library that implements lattice based models which are fast-to-evaluate and interpretable (optionally monotonic) models, also known as interpolated look-up tables. It includes a collection of TensorFlow Lattice Estimators, which you can use like any TensorFlow Estimator, and it also includes lattices and piecewise linear calibration as layers that can be composed into custom models. Note that TensorFlow Lattice is not an official Google product. A lattice is an interpolated look-up table that can approximate arbitrary input-output relationships in your data. It overlaps a regular grid on your input space, and it learns values for the output in the vertices of the grid.
tensorflow/lattice
This is an implementation of Monotonic Calibrated Interpolated Look-Up Tables in TensorFlow. These are fast-to-evaluate and interpretable lattice models, also known as interpolated look-up tables. This library also provides a rich and intuitive set of regularizations and monotonicity constraints configurable per feature. This tutorial contains more detailed explanation about lattice models and usage in TensorFlow, and check out API docs for python APIs. TensorFlow Lattice is not an official Google product.
TensorFlow Lattice: Flexibility Empowered by Prior Knowledge
Crossposted on the Google Research Blog Machine learning has made huge advances in many applications including natural language processing, computer vision and recommendation systems by capturing complex input/output relationships using highly flexible models. However, a remaining challenge is problems with semantically meaningful inputs that obey known global relationships, like "the estimated time to drive a road goes up if traffic is heavier, and all else is the same." Flexible models like DNNs and random forests may not learn these relationships, and then may fail to generalize well to examples drawn from a different sampling distribution than the examples the model was trained on. Today we present TensorFlow Lattice, a set of prebuilt TensorFlow Estimators that are easy to use, and TensorFlow operators to build your own lattice models. Lattices are multi-dimensional interpolated look-up tables (for more details, see [1--5]), similar to the look-up tables in the back of a geometry textbook that approximate a sine function.