Peter Norvig (Google Director of Research) – As We May Program (May 2019)


Chapters

00:00:04 From Machines to Machines: Revisiting Mensch-Computer Interaction
00:10:37 Machine Learning: Beyond the Hype
00:15:48 Automating Tasks with Limited Expertise in Data Science
00:20:02 Making Probabilistic Programming More User-Accessible
00:25:08 Conversational Computing: A New Phase for Computing?
00:30:24 Designing Interfaces for Uncertain and Complex Worlds
00:33:19 Designing Interfaces for Intelligent Assistants
00:40:14 Implementing and Designing More Secure, Fair, and Reliable Systems
00:51:13 Design Thinking in Machine Learning and Artificial Intelligence
00:53:24 AI's Potential to Transform and Challenge Human Understanding
00:56:22 Machine Learning Debuggability Challenges and Solutions
01:01:30 Future of Programming

Abstract

The Evolution of Programming: From the Memex to Conversational Computing and Beyond

The landscape of programming has undergone a profound transformation since Vannevar Bush’s vision of the Memex, a precursor to the modern digital encyclopedia. From the colossal, room-sized early computers to today’s compact terabyte devices, the journey of computing reflects a significant leap in capabilities. This article delves into the evolution of programming languages, tools, and techniques, the contributions of notable figures like Ada Lovelace and Margaret Hamilton, and the shift from traditional programming to machine learning. It also explores the challenges in making programming universally accessible, the nuanced views on data science skills, and the emerging paradigms in human-computer interaction and conversational computing.

The Journey of Computing and Programming

The evolution of computing has been a remarkable journey, from massive, limited-capacity machines to modern devices with vast storage and capabilities. This journey symbolizes the rapid advancement in technology. The tools and techniques in programming have matured, enabling the creation of more complex and reliable programs. This evolution signifies the deepening sophistication of the field. The history of programming is marked by pioneers like Ada Lovelace and Margaret Hamilton. Their contributions laid the groundwork for the expansion of programming into a vast industry. Despite advancements, challenges persist in making programming accessible to a wider audience, a goal that remains elusive in the field.

The Transition to Machine Learning

Machine learning represents a paradigm shift from the step-by-step approach of traditional programming to an empirical model akin to natural sciences. It extends beyond model training to include crucial aspects like data management and deployment, often underestimated in their complexity. Advocating for a differentiable workflow in machine learning, from data acquisition to deployment, can enhance automatic corrections and problem detection, making these tools more accessible and reliable.

Pitfalls of Current Programming Languages: Current programming languages are logical rather than probabilistic. Variables have a single value, not a probability distribution. Conditionals are Boolean, not probabilistic.

Probabilistic Programming Languages: Provide built-in probabilistic types and variables. Allow for inference in multiple directions. Examples include Bayes DB and infer.net.

Extension of Database Programming: Possible approach for making probabilistic programming more accessible. Similar to making queries to a SQL database with uncertain fields. Suitable for tasks where the cost of errors is low.

Extension of Spreadsheet Programming: Another possible approach for making probabilistic programming more accessible. Familiar and easy to understand for many users. Could be suitable for tasks involving data analysis and modeling.

The Power of Natural Language: Natural language is the most intuitive way for humans to communicate. Future programming languages may incorporate natural language processing. This would allow users to express their intentions and goals in a more natural way.

Rethinking Data Science and Skill Sets

The traditional view of data science requires an intersection of programming, statistics, and subject-matter expertise, creating a danger zone for those lacking statistical knowledge. An alternative view proposes a union of these skills, allowing success with partial expertise. Joel Grews’ updated Venn diagram adds a fourth circle representing thesis advisors who used to program but no longer do, emphasizing that statistical expertise is not essential for data science success. Makoto Koukei, a cucumber farmer’s son, wanted to automate cucumber sorting to avoid taking over the family business. He lacked subject-matter expertise but possessed mechanical engineering skills. He built a conveyor belt, downloaded TensorFlow, and used a camera to sort cucumbers into different categories. Koukei’s example raises the question of how much skill is needed for such automation tasks. Is it limited to exceptional engineers, or can anyone achieve it? To build a functional system, a user needs to communicate with it effectively. Ideal conversations would involve providing class examples, hints, and feedback. Instead of natural conversations, data scientists often engage in technical discussions about computational layers, learning rates, and batch sizes.

Enhancing Human-Computer Interaction

Present-day interactions with AI systems are often bogged down in technical details, lacking intuitiveness and naturalness. Emerging programming paradigms, such as probabilistic and database-like programming, integrate uncertainty and bidirectional reasoning, offering new avenues for user-friendly programming interfaces. The shift towards conversational computing, as discussed by Peter Norvig, faces hurdles in intent recognition, privacy, security, and the development of sophisticated conversational agents.

Designing Interfaces for Natural Language Processing and Speech Recognition:

– Interfaces for natural language processing and speech recognition face unique challenges due to the vast and complex nature of human language and the need to share extensive information between dialogue participants.

The Need for Simple Interfaces:

– Early web interfaces aimed for simplicity, focusing on passing basic information like names and zip codes between users and web pages.

– Complex interfaces become difficult to manage and can hinder communication.

Challenges in Interfacing with Devices:

– When interacting with devices using natural language, the interface requirements become much more complex.

– The system needs to understand the entire grammar of a language, speech patterns, background information, and world knowledge to effectively communicate.

Information Sharing Dilemmas:

– Determining how to share the vast amount of information required for natural language processing and speech recognition presents challenges.

– Questions arise regarding what information should be shared, who should initiate queries, and how to protect user privacy.

Design Thinking in Architecture:

– Peter Norvig explores design thinking in architecture as a potential model for interface design.

– Architects use specific design patterns and iterative processes to generate possibilities and explore design options.

Using Lego Blocks for Knowledge Expression:

– Norvig suggests providing designers with Lego-like tools to express their knowledge and explore design possibilities.

– Automating the process of generating diagrams based on constraints and feedback could facilitate the design process.

The Importance of Expressing Preferences and Desires:

– Machine learning systems require clear specifications of user preferences, utilities, and desires to optimize outcomes.

– Cautionary tales like King Midas and the genie’s lamp highlight the consequences of imprecise specifications.

Unexpected Consequences of Language Use:

– Norvig emphasizes the importance of considering the potential unexpected consequences of using natural language in interface design.

– The Forbidden Planet example illustrates how language can be manipulated to achieve unintended results.

Design Thinking and Interface Complexity

The complexity of user interfaces has increased in tandem with the advancement of AI, posing challenges in information sharing and privacy. Just as architects use design patterns to explore building possibilities, programming can benefit from a similar approach in expressing preferences and possibilities. Stories like King Midas’s wish and the clever recipient of a genie’s trick underscore the importance of precise language in programming to avoid unintended consequences.

The Future of Programming and AI

Machine Learning:

– Peter Norvig emphasizes that the life-changing moments in machine learning and AI occur when a created program surpasses human capabilities, leading to deep understanding and curiosity about the process.

Quantum AI:

– Quantum AI’s potential impact is significant, but its practical applications are still uncertain.

– Norvig acknowledges the progress made by Google’s quantum team and sees potential benefits for optimizing neural net parameters with fewer parameters and improved algorithms.

Debuggability:

– Debuggability is crucial, especially in critical software components and operating systems.

– Norvig acknowledges the challenges of debugging machine learning systems and suggests the need for better tools and techniques.

The future beckons a move from micromanagement in programming to a leadership-style approach, where systems are given clear objectives. The challenge lies in providing enough customization options without overwhelming the user or compromising system stability. Fairness, understanding data sources, and conversational systems represent areas needing more focus and investment. The potential of quantum AI looms large, promising revolutions in complex tasks, while the critical aspect of debuggability in both traditional programming and machine learning continues to demand attention.

Conclusion

As we navigate the intricate landscape of programming and AI, the balance between innovation and user-friendliness becomes paramount. The journey from Bush’s Memex vision to the current state of machine learning and conversational computing reveals a dynamic and evolving field. The need to understand and adapt to user preferences, the importance of precise language and specifications, and the pursuit of more natural, intuitive interfaces remain central themes. The future of programming and AI, intertwined with societal needs and ethical considerations, holds both challenges and immense possibilities, paving the way for transformative advancements in technology and human-computer interaction.


Notes by: QuantumQuest