Upgrade to Pro — share decks privately, control downloads, hide ads and more …

自然言語でナビを!VUIとしてのカーナビ

 自然言語でナビを!VUIとしてのカーナビ

2018年12月15日開催「Developers Boost~U30エンジニアの登竜門~」にて発表した資料です。

NAVITIME JAPAN
PRO

December 15, 2018
Tweet

More Decks by NAVITIME JAPAN

Other Decks in Technology

Transcript

  1. CONFIDENTIAL ©NAVITIME JAPAN
    自然言語でナビを!
    VUIとしてのカーナビ
    株式会社ナビタイムジャパン
    ACTS(研究開発部門) 本多 広晃
    C-6
    #devboostB

    View Slide

  2. CONFIDENTIAL ©NAVITIME JAPAN
    自己紹介
    本多 広晃
    Hiroaki Honda
    - サーバーサイド
    - 自然言語処理
    - フットサル
    - 温泉

    View Slide

  3. CONFIDENTIAL ©NAVITIME JAPAN
    NAVITIMEについて
    会社名 株式会社ナビタイムジャパン
    設立 2000年3月1日
    業務内容 コンシュマー向けナビゲーションアプリ/Webサイ
    トの運営・開発
    通信カーナビゲーション事業
    経路探索エンジンのライセンス事業 など
    従業員数 500名 ★うちエンジニアが8割以上!

    View Slide

  4. CONFIDENTIAL ©NAVITIME JAPAN
    NAVITIMEについて
    外国人&海外
    公共交通
    自動車
    NAVITIME 乗換
    NAVITIME
    こみれぽ
    バス
    NAVITIME
    ドライブ
    サポーター カーナビ
    タイム
    トラック
    カーナビ
    NAVITIME Transit
    NAVITIME for
    Japan Travel
    Plat by
    NAVITIME
    NAVITIME
    Travel
    ウォーキング
    NAVITIME-ALKOO-
    二輪車 トラベル&フィットネス
    自転車NAVITIME
    ツーリングサポーター
    月間ユニークユーザー数
    約5,100万人 有料会員数
    約480万人
    (2018/09時点)

    View Slide

  5. CONFIDENTIAL ©NAVITIME JAPAN
    NAVITIMEについて
    トータルナビ事業 ヘルスケア事業
    バス事業 ドライブ事業
    ツーリング事業 メディア
    トラベル事業
    インバウンド事業 キャリア協業事業
    テレマティクス事業 交通コンサル
    ティング事業
    ビジネス
    ナビタイム事業
    法人
    ソリューション事業
    ・トータルナビアプリ
    ・乗換検索アプリ
    ・法人向けウォーキングコース
    作成ツールの開発、販売
    ・バスアプリ
    ・公共交通事業者向け
    ソリューションサービス
    ・各種カーナビアプリ
    ・自転車、バイクの
    ナビアプリ
    ・旅行計画,予約アプリ
    ・海外乗換アプリ
    ・自治体向け観光アプリ
    ・外国人旅行客誘致等の
    コンサルティング
    ・通信キャリア会社との
    プロダクトアプリ
    ・国内外カーメーカー、車載機
    メーカー向けOEMアプリ
    ・移動に関するビッグデータを
    活用した各種コンサル
    ・動態管理ソリューション
    ・トラックアプリ
    ・サービス内で使用されている
    機能をAPi,SDKで販売
    事業領域
    B to C B to B / B to G

    View Slide

  6. CONFIDENTIAL ©NAVITIME JAPAN
    ボイスコントロールとは
    2013年ファーストリリース
    ハンズフリーでナビを操作可能
    「ナビタイム」または
    「ボイスコントロール」で起動

    View Slide

  7. CONFIDENTIAL ©NAVITIME JAPAN
    今日話すこと
    • 2013年当時に作りこんだ自前の自然言語処理エンジンはメンテナンスコストが
    嵩んでいた
    • 一方で、最近はVUIの開発環境が整っている
    • 開発ツール群
    • 設計ガイドライン
    • 既存のコードベースで改修を重ねるよりも、新しい技術スタックを使ってリプ
    レースした方がいいと判断
    ⇒この過程における苦労話と、得られた知見を共有します

    View Slide

  8. CONFIDENTIAL ©NAVITIME JAPAN
    Architecture
    Business Logic Controller NLP
    STT/TTS
    社内API群
    - 経路検索
    - 地図
    - 天気
    発話
    音声 テキスト
    解析結果
    音声 テキスト

    View Slide

  9. CONFIDENTIAL ©NAVITIME JAPAN
    本日のスコープ
    Business Logic Controller NLP

    View Slide

  10. CONFIDENTIAL ©NAVITIME JAPAN
    自前の自然言語処理エンジンの課題
    正規表現で
    ゴリゴリ
    ルールベースの処理が複雑…
    品詞分解も
    ゴリゴリ
    道路名称のパターン

    View Slide

  11. CONFIDENTIAL ©NAVITIME JAPAN
    自前の自然言語処理エンジンの課題
    言い回しの数だけDBにレコードが存在する…
    • 同じ意味の文言を、想定される
    言い回しの数(数十パターン)ぶん
    DBに格納
    • 1文字でも異なると認識不可
    例)

    View Slide

  12. CONFIDENTIAL ©NAVITIME JAPAN
    最初に考えたこと
    Business Logic Controller NLP
    ここを…

    View Slide

  13. CONFIDENTIAL ©NAVITIME JAPAN
    最初に考えたこと
    Business Logic Controller NLP
    こうしましょう

    View Slide

  14. CONFIDENTIAL ©NAVITIME JAPAN
    Language
    Understanding
    (LUIS)

    View Slide

  15. CONFIDENTIAL ©NAVITIME JAPAN
    What is LUIS?
    文章の
    意図解釈と
    固有表現抽出
    をしてくれる

    View Slide

  16. CONFIDENTIAL ©NAVITIME JAPAN
    What is LUIS?
    文章の
    意図解釈と
    固有表現抽出
    をしてくれる
    ユーザーの発話

    View Slide

  17. CONFIDENTIAL ©NAVITIME JAPAN
    What is LUIS?
    文章の
    意図解釈と
    固有表現抽出
    をしてくれる
    モデルに定義した意図
    0~1の値をとるスコア
    ※今回の話で非常に重要。後述。

    View Slide

  18. CONFIDENTIAL ©NAVITIME JAPAN
    What is LUIS?
    文章の
    意図解釈と
    固有表現抽出
    をしてくれる
    発話に含まれる固有表現
    モデルに定義した
    固有表現のタイプ

    View Slide

  19. CONFIDENTIAL ©NAVITIME JAPAN
    Why LUIS?
    • 機械学習により文言のゆらぎを吸収してくれる
    • 言い回しのDBを排除できる
    • 音声認識での失敗をカバー可能
    • ユーザーの発話:『近くのコンビニに行きたい』
    • 音声認識の結果:『近くのコンビニに期待』
    • 日本語に対応
    • 形態素解析もやってくれるので前処理不要

    View Slide

  20. CONFIDENTIAL ©NAVITIME JAPAN
    しかし

    View Slide

  21. CONFIDENTIAL ©NAVITIME JAPAN
    新事実の発覚
    Business Logic Controller NLP
    発話の意図解釈だけで
    なく会話の状態管理も
    担っていることが判明

    View Slide

  22. CONFIDENTIAL ©NAVITIME JAPAN
    状態を保持しないシーケンス
    天気は?
    周辺の朝9時の天気は曇り。
    気温は14度です。

    View Slide

  23. CONFIDENTIAL ©NAVITIME JAPAN
    状態を保持するシーケンス
    東京タワーに行きたい
    東京タワーが見つかりました。
    目的地にしますか?
    東京タワー周辺の朝9時の天気
    は曇り。気温は14度です。
    天気は?

    View Slide

  24. CONFIDENTIAL ©NAVITIME JAPAN
    リプレーススコープの拡大
    • 当初の想定では、NLPサーバーをLUISに置き換えるだけで完結
    するものだと思っていた
    • しかしNLPサーバーは状態を保持していたため、同じ「天気
    は?」という質問でも、それまでの会話の内容によって返答が
    変わる
    • 一方LUISはステートレスなサービスで、レスポンスは冪等
    ⇒この差異をどこかで吸収する必要が生じた

    View Slide

  25. CONFIDENTIAL ©NAVITIME JAPAN
    次に考えたこと
    Business Logic Controller NLP
    こいつを

    View Slide

  26. CONFIDENTIAL ©NAVITIME JAPAN
    次に考えたこと
    Business Logic Controller NLP
    こうしましょう

    View Slide

  27. CONFIDENTIAL ©NAVITIME JAPAN
    Bot Service

    View Slide

  28. CONFIDENTIAL ©NAVITIME JAPAN
    What is Bot Service?
    • 実装~デプロイ、分析などBot開発におけるライフサイ
    クルをサポートしてくれる統合環境
    • SDKによりBot開発が容易に
    • C#
    • JavaScript
    • 様々なチャネルと統合が可能
    • Slack, Facebook Messenger, Skype, Email …

    View Slide

  29. CONFIDENTIAL ©NAVITIME JAPAN
    Why Bot Service?
    状態管理を一任できる
    • 会話IDが発行され、ユーザー毎の状態管理が容易
    • 対応するアプリが増えても安心

    View Slide

  30. CONFIDENTIAL ©NAVITIME JAPAN
    しかしまた
    新たな課題が…

    View Slide

  31. CONFIDENTIAL ©NAVITIME JAPAN
    つくり始めて気づいたこと
    既存システムが優秀だった
    • 多機能で、全てを移植するとなると長引く
    • 現時点でのLUISでは対応できないケース
    (例) 字句の並びは似てるが意図が異なる発話
    ・「地図を小さく」⇒ 地図を小さくしてほしい
    ・「地図が小さい」⇒ 地図を大きくしてほしい

    View Slide

  32. CONFIDENTIAL ©NAVITIME JAPAN
    最終的な構成
    Business Logic
    Controller NLP
    Dispatcher

    View Slide

  33. CONFIDENTIAL ©NAVITIME JAPAN
    最終的な構成
    Business Logic
    Controller NLP
    Dispatcher
    既存の資産はそのまま流用

    View Slide

  34. CONFIDENTIAL ©NAVITIME JAPAN
    最終結果
    Business Logic
    Controller NLP
    Dispatcher
    新旧両方の解析器にリクエスト

    View Slide

  35. CONFIDENTIAL ©NAVITIME JAPAN
    最終結果
    Business Logic
    Controller NLP
    Dispatcher
    LUISが返却するスコア値が閾値
    を上回った場合、新解析器の結
    果を利用。閾値を下回ったら、
    旧解析器の結果を利用。

    View Slide

  36. CONFIDENTIAL ©NAVITIME JAPAN
    最終結果
    Business Logic
    Controller NLP
    Dispatcher
    段階的な
    機能移行
    が可能

    View Slide

  37. CONFIDENTIAL ©NAVITIME JAPAN
    うまくいった点
    旧システムをブラックボックスにしたまま移行できた
    • 結合テストを書くことで、調査を最低限に
    • 入り組んだロジックもAIもブラックボックスというアナロジー
    LUISのスコア判定による新旧システムの共存
    • 旧システム:今までの機能担保
    • 新システム:新機能や複雑な発話の対応
    • 段階的に移行できることで心に余裕ができた

    View Slide

  38. CONFIDENTIAL ©NAVITIME JAPAN
    既存システムに新サービスを組み込むには
    • つくりこまれた既存システムは得てして高機能
    • 一方、新しい技術は改善していくことを前提にして市場に投入されるため、
    最初は完全ではない
    • 段階的な移行はこのギャップを埋めるのに有効
    (可能な限り)段階的に移行する

    View Slide

  39. CONFIDENTIAL ©NAVITIME JAPAN
    既存システムに新サービスを組み込むには
    • いざモジュールをすげ替えようとした時に、APIが綺麗でないと結局全書き
    換えになる
    • とはいえ最初からきれいなインターフェースを見つけるのは難しいので、
    定期的なリプレースは有効かも
    システム間の疎結合を保っておく

    View Slide

  40. CONFIDENTIAL ©NAVITIME JAPAN
    ご清聴ありがとう
    ございました

    View Slide