Stanford Seminar - Building the Smartest and Open Virtual Assistant to Protect Privacy - Monica Lam

Brought by: YouTube

Overview

Virtual assistants, providing a voice interface to web services and IoTs, can potentially develop into monopolistic platforms that threaten consumer privacy and open competition. This talk presents Almond as an open-source alternative.

We introduce a more cost-effective and robust methodology and tool set for building virtual assistants. We use an end-to-end neural model that translates natural language to directly executable code in our new virtual assistant programming language, called ThingTalk. As annotating real data training is prohibitively expensive, we train our neural network with mostly data synthesized with our Genie data engineering tool. Genie can automatically generate a dialogue agent from a database in given domains. In addition, it is designed to be extensible: developers can supply new domain schemas and APIs, domain-independent sentence templates and dialogue state machines in any language, as well as new ThingTalk constructs. Using this methodology, Almond has been shown to answer complex questions more accurately than existing commercial assistants in the domain of restaurant reservations.

To protect privacy, our Almond virtual assistant prototype has a federated design that lets users own their data and share their digital assets with full control. Almond has been integrated into Home Assistant, an open-source local gateway that can connect to hundreds of different IoT devices. By making all the tools, neural models, training data open-source, we wish to support open-world collaboration to create the smartest and open virtual assistant. Almond and more information are available on http://oval.cs.stanford.edu.

This research is supported by the NSF under grant No. 1900638.

Syllabus

Introduction.
Consumer Privacy.
Virtual Assistant Oligopoly.
Threats of Virtual Assistants.
Technical Barrier to Entry.
Scaling to the Future of Virtual Assistants.
This Talk.
Alexa: Syntax-Dependent Representation.
Alexa's 2-Step Approach.
Idea 1: End-to-End Translation.
Unique Semantic Representation.
Idea 2: Training-Data Engineering.
Genie: Synthesizes question/code from a schema.
Semantic Parser Generation Thingpedia.
Query Comparison - 4 Platforms.
Comparison of 415 Restaurant Questions.
Today's Dialogue Trees: Laborious & Brittle.
Annotate 1 Dialogue at a Time.
Genie: Transactional Dialogues State Machine.
Modular, Reusable Technical Stack.
Contextual Language Understanding Neural Model.
Preliminary Results.
Zero-Shot Learning Result.
Three Research Results.
Protect Privacy with an Open Federated Architecture.
Example: Asthma Patient.

Taught by

Stanford Online

Stanford Seminar - Building the Smartest and Open Virtual Assistant to Protect Privacy - Monica Lam
Go to course

Stanford Seminar - Building the Smartest and Open Virtual Assistant to Protect Privacy - Monica Lam

Brought by: YouTube

  • YouTube
  • Free
  • English
  • Certificate Not Available
  • Available at any time
  • All
  • N/A
8.1.2PHP Version266msRequest Duration2MBMemory UsageGET en/courses/{slug}Route
    • Booting (166ms)
    • Application (99.25ms)
    • 1 x Booting (62.34%)
      165.52ms
      1 x Application (37.38%)
      99.25ms
      14 templates were rendered
      • public.courses.show (resources/views/public/courses/show.blade.php)3bladefile
        Params
        0
        course
        1
        links
        2
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.courses.partials.details (resources/views/public/courses/partials/details.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.layouts.main (resources/views/public/layouts/main.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.meta (resources/views/public/layouts/partials/meta.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.navbar (resources/views/public/layouts/partials/navbar.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.links (resources/views/public/auth/profile/partials/links.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.layouts.partials.flash-session (resources/views/public/layouts/partials/flash-session.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      uri
      GET en/courses/{slug}
      middleware
      web, localize:en
      controller
      App\Http\Controllers\CourseController@show
      as
      en.courses.show
      namespace
      prefix
      /en
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      7 statements were executed6.01ms
      • select * from `courses` where `slug_en` = 'stanford-seminar---building-the-smartest-and-open-virtual-assistant-to-protect-privacy---monica-lam' limit 1
        4.48ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. stanford-seminar---building-the-smartest-and-open-virtual-assistant-to-protect-privacy---monica-lam
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:20
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • update `courses` set `visitors` = `visitors` + 1, `courses`.`updated_at` = '2025-04-09 09:46:35' where `id` = 1613
        340μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-04-09 09:46:35
        • 1. 1613
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:21
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `topic_id`, `slug_en`, `slug_ar` from `subjects` where `subjects`.`id` in (95)
        250μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `slug_en`, `slug_ar` from `topics` where `topics`.`id` in (1)
        200μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 25. /app/Http/Controllers/CourseController.php:23
        • 26. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 27. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 28. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 29. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `institutions` where `institutions`.`id` in (5) and `institutions`.`deleted_at` is null
        230μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `providers` where `providers`.`id` in (21) and `providers`.`deleted_at` is null
        220μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `html_files` where `html_files`.`id` = 1605 limit 1
        290μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 1605
        Backtrace
        • 21. /app/Models/Course.php:84
        • 28. view::public.courses.show:29
        • 30. /vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:125
        • 31. /vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • 32. /vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:72
      App\Models\HtmlFile
      1
      App\Models\Provider
      1
      App\Models\Institution
      1
      App\Models\Topic
      1
      App\Models\Subject
      1
      App\Models\Course
      1
        _token
        e8GbfcwotmBnDWdhmDzLz7NvvkCns5FM1Pay1zQs
        locale
        en
        _previous
        array:1 [ "url" => "https://www.corspedia.com/en/courses/stanford-seminar---building-the-smartest-...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /en/courses/stanford-seminar---building-the-smartest-and-open-virtual-assistant-to-protect-privacy---monica-lam
        status_code
        200
        
        status_text
        OK
        format
        html
        content_type
        text/html; charset=UTF-8
        request_query
        []
        
        request_request
        []
        
        request_headers
        0 of 0
        array:24 [ "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "priority" => array:1 [ 0 => "u=0, i" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "cf-ipcountry" => array:1 [ 0 => "US" ] "cf-connecting-ip" => array:1 [ 0 => "3.18.103.165" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "accept-encoding" => array:1 [ 0 => "gzip, br" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "x-forwarded-for" => array:1 [ 0 => "3.18.103.165" ] "cf-ray" => array:1 [ 0 => "92d913fefd13ad24-MSP" ] "host" => array:1 [ 0 => "www.corspedia.com" ] "content-length" => array:1 [ 0 => "" ] "content-type" => array:1 [ 0 => "" ] ]
        request_server
        0 of 0
        array:50 [ "USER" => "www-data" "HOME" => "/var/www" "HTTP_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_PRIORITY" => "u=0, i" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_CF_IPCOUNTRY" => "US" "HTTP_CF_CONNECTING_IP" => "3.18.103.165" "HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" "HTTP_SEC_FETCH_SITE" => "none" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_X_FORWARDED_FOR" => "3.18.103.165" "HTTP_CF_RAY" => "92d913fefd13ad24-MSP" "HTTP_HOST" => "www.corspedia.com" "REDIRECT_STATUS" => "200" "SERVER_NAME" => "corspedia.com" "SERVER_PORT" => "443" "SERVER_ADDR" => "141.95.147.152" "REMOTE_USER" => "" "REMOTE_PORT" => "54976" "REMOTE_ADDR" => "162.158.212.149" "SERVER_SOFTWARE" => "nginx/1.18.0" "GATEWAY_INTERFACE" => "CGI/1.1" "HTTPS" => "on" "REQUEST_SCHEME" => "https" "SERVER_PROTOCOL" => "HTTP/2.0" "DOCUMENT_ROOT" => "/var/www/corspedia/public" "DOCUMENT_URI" => "/index.php" "REQUEST_URI" => "/en/courses/stanford-seminar---building-the-smartest-and-open-virtual-assistant-to-protect-privacy---monica-lam" "SCRIPT_NAME" => "/index.php" "CONTENT_LENGTH" => "" "CONTENT_TYPE" => "" "REQUEST_METHOD" => "GET" "QUERY_STRING" => "" "SCRIPT_FILENAME" => "/var/www/corspedia/public/index.php" "PATH_INFO" => "" "FCGI_ROLE" => "RESPONDER" "PHP_SELF" => "/index.php" "REQUEST_TIME_FLOAT" => 1744191995.0132 "REQUEST_TIME" => 1744191995 ]
        request_cookies
        []
        
        response_headers
        0 of 0
        array:5 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Wed, 09 Apr 2025 09:46:35 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IlBwZzhuSHZCMXZHNXhXTHI1UDdPZGc9PSIsInZhbHVlIjoianhFUEs3eHFGa3lTaEM1djVJamtaYXhyQTQxSEk2TjQvcVFTTkxjVVJURXJVME1DMDhNVlorY0Vrdi8zYXlUUnFGdFlmdmcwS3hMNUtPak9PRFEzV0E4TkxKaGtOdU9MSjBxQUtXQ3ZNMVdDZHdpdGUrc2lNYWo5ZjE2TElJWXgiLCJtYWMiOiIzN2NkNDcyNjM0NWRhOWUxZWRmZWJjZjZhZjExNTcxNmQ4MDFhOTY1YjljNzEzM2UxODJhZTRhZGVhYzlhODM2IiwidGFnIjoiIn0%3D; expires=Wed, 09 Apr 2025 11:46:35 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6IlBwZzhuSHZCMXZHNXhXTHI1UDdPZGc9PSIsInZhbHVlIjoianhFUEs3eHFGa3lTaEM1djVJamtaYXhyQTQxSEk2TjQvcVFTTkxjVVJURXJVME1DMDhNVlorY0Vrdi8zYXlUUnFGdFlmd" 1 => "laravel_session=eyJpdiI6Im1oVmoyajhzV2VKRG9USGtTL0IwVEE9PSIsInZhbHVlIjoiTjZCOUhYSXJHZWN4aFgrY3E2THRjb3BNYy9aKzFiZVV3ODhMMFc4Zjd1bkw1NkhDNDRYTi9JNGgwS0dMQkhtWitBakdjYUs4eHpWTU5wbGJuZlNsZVRYVnhnZ053ZWdYNXI0b1ZJQTlHTWFZUUw4bDZ4aCtxenFLTjdzeVd2bGwiLCJtYWMiOiIyZjdlM2ZlZGI5ODc1YzNkMDk0ZjFkNzg2MjU3NDViNDFmNzkwOGQxY2VmMDUyNzhkZGE5NzYwZDE3MDg0YTJmIiwidGFnIjoiIn0%3D; expires=Wed, 09 Apr 2025 11:46:35 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6Im1oVmoyajhzV2VKRG9USGtTL0IwVEE9PSIsInZhbHVlIjoiTjZCOUhYSXJHZWN4aFgrY3E2THRjb3BNYy9aKzFiZVV3ODhMMFc4Zjd1bkw1NkhDNDRYTi9JNGgwS0dMQkhtWitB" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IlBwZzhuSHZCMXZHNXhXTHI1UDdPZGc9PSIsInZhbHVlIjoianhFUEs3eHFGa3lTaEM1djVJamtaYXhyQTQxSEk2TjQvcVFTTkxjVVJURXJVME1DMDhNVlorY0Vrdi8zYXlUUnFGdFlmdmcwS3hMNUtPak9PRFEzV0E4TkxKaGtOdU9MSjBxQUtXQ3ZNMVdDZHdpdGUrc2lNYWo5ZjE2TElJWXgiLCJtYWMiOiIzN2NkNDcyNjM0NWRhOWUxZWRmZWJjZjZhZjExNTcxNmQ4MDFhOTY1YjljNzEzM2UxODJhZTRhZGVhYzlhODM2IiwidGFnIjoiIn0%3D; expires=Wed, 09-Apr-2025 11:46:35 GMT; path=/XSRF-TOKEN=eyJpdiI6IlBwZzhuSHZCMXZHNXhXTHI1UDdPZGc9PSIsInZhbHVlIjoianhFUEs3eHFGa3lTaEM1djVJamtaYXhyQTQxSEk2TjQvcVFTTkxjVVJURXJVME1DMDhNVlorY0Vrdi8zYXlUUnFGdFlmd" 1 => "laravel_session=eyJpdiI6Im1oVmoyajhzV2VKRG9USGtTL0IwVEE9PSIsInZhbHVlIjoiTjZCOUhYSXJHZWN4aFgrY3E2THRjb3BNYy9aKzFiZVV3ODhMMFc4Zjd1bkw1NkhDNDRYTi9JNGgwS0dMQkhtWitBakdjYUs4eHpWTU5wbGJuZlNsZVRYVnhnZ053ZWdYNXI0b1ZJQTlHTWFZUUw4bDZ4aCtxenFLTjdzeVd2bGwiLCJtYWMiOiIyZjdlM2ZlZGI5ODc1YzNkMDk0ZjFkNzg2MjU3NDViNDFmNzkwOGQxY2VmMDUyNzhkZGE5NzYwZDE3MDg0YTJmIiwidGFnIjoiIn0%3D; expires=Wed, 09-Apr-2025 11:46:35 GMT; path=/; httponlylaravel_session=eyJpdiI6Im1oVmoyajhzV2VKRG9USGtTL0IwVEE9PSIsInZhbHVlIjoiTjZCOUhYSXJHZWN4aFgrY3E2THRjb3BNYy9aKzFiZVV3ODhMMFc4Zjd1bkw1NkhDNDRYTi9JNGgwS0dMQkhtWitB" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "e8GbfcwotmBnDWdhmDzLz7NvvkCns5FM1Pay1zQs" "locale" => "en" "_previous" => array:1 [ "url" => "https://www.corspedia.com/en/courses/stanford-seminar---building-the-smartest-and-open-virtual-assistant-to-protect-privacy---monica-lam" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]