GINGI99 Blog

データ分析や日常に関するブログ

KDD2018 : Customized Regression Model for Airbnb Dynamic Pricing を読んだ

論文はこちら:KDD 2018 | Customized Regression Model for Airbnb Dynamic Pricing

Airbnb の Applied Data Science Track Paper。読んでみてAirbnb特有の問題でもあるのかと思いきや、価格付けをサービス事業者側から提案するアプローチは、C to Cサービス等を提供する企業などで導入できる考えがあり、勉強になりました。

概要

商品の最適な値段付け(ユーザがぎりぎり買うまで高く値段付けしたい or 買わなかった商品を買ってくれるぎりぎりまで低く値段づけしたい)は難しいが、独自のメトリクスを定義して、値段付けが悪くならない方向に最適化を行う方法を提案。結果はAirbnbのデータで良好な結果を得ており、すでに1年以上デプロイしてるモデル。

Introduction

ホスト(部屋を貸す人たち)は自由に各日の宿泊費を設定できるが、Airbnbから適正な費用提案(Price Suggestion)をしたい。市場動向を考慮しながら日々動的に適正な価格付けをする方法を提案する。

動的な価格付けをするための困難なところが、需要の見積もり変化(時間変化とリスティング変化)と部分的な価格適用(ホストの値段設定の考えもいれるところ)。

リスティングってのは部屋という意味でいいのかな。リスティング変化とは、ホテルは部屋が同じ作りであるものが多いが、一般に家の部屋の作りはすべて異なるため、部屋の評価レビューを考慮しながら部屋ごとに値段設定する難しさがある。高すぎると予約されなくなることも考えながら。

価格Pと時刻tとリスティングidにより、需要曲線F(P,t,id)が決まる。

適切な価格付けを行うPricing Modelsは3段階の構成にわかれている。

1つ目に、今から部屋が予約される夜までの間に部屋が予約される確率を分類モデルを構築する。

2つ目に、予約確率を特徴に入れ、値段付けモデルを構築する。

3つ目に、値段付けモデルは、ホストの値段設定の考えを適用して、最適化する。

これらの結果、研究としては、価格付けの効果を評価するメトリクスと悪い価格提案が起こらないようなモデルを導入できたことが貢献。

Pricing System Overview

f:id:gingi99:20180825110725p:plain

Booking Probability Modelはある部屋の未来のある日が予約されるかどうかを予測する。一般的な2値分類モデル。学習に使う特徴として、部屋に関わる特徴・時系列特徴・需要と供給の特徴(近隣の予約できる部屋の数など)を使う。

Gradient Boosting Model(GBM)を使う。学習は、市場の大きさで3段階に分けるなど、エリアごとに学習モデルを作ったほうがGlobal AUCの精度があがったみたい。ここで、場所ごとにサンプリングレートを変えるなどのテクニックもある。

推定されたモデルの予約確率(y軸)と値段(x軸)を見てみると、真のデータよりも、端にいくほど外れている事がわかる。

f:id:gingi99:20180825111837p:plain

この問題の難しいところとして、データのスパースネス(基準となる値段から離れたところをあてるのは難しい=price extrapolation)、ユニークネス(部屋は一つ一つがユニークなものが多く、一般化するのは難しい)、値段に依存した特徴(値段が高すぎると、利用率の特徴量が小さくなるなどがあり、値段との相関が悪さをする)などが考えられる。

そこで、収益最大化のアプローチもやったと書いてるが、最適な値段というデータがない(データにあるのが最適な値段といえないので)ので、うまくいかなかった。最終的に、最適な値段付けのための正しい評価メトリクスを作ったほうがいいねとなった(そう考えるのか!)

Evaluation Price Suggestion

一般的な回帰の教師あり学習と違って、最適な値段というデータがないので、私達の値段付けの性質を使った評価メトリクスを導入する。

イデアとしては、正しい値段を考えるのではなくて、何が悪い値段づけなのかという方向から考える。

実際の部屋の値段をP、提示する部屋の値段をP_{sug}、最適な値段(存在すれば)をP_{o}とする。

悪い値段付けとは、「値段Pで予約された部屋をP_{sug} < Pで値段付けしてしまうこと」ゆえに、この場合はP_{o} \geq P。逆もしかりで、「値段Pで予約されなかった部屋をP_{sug} \geq Pで値段付けしてしまうこと」なので、この場合はP_{o} < P

また、提案した値段付けが良いか悪いか判断がつかないものとして、値段Pで予約された部屋をP_{sug} \geq Pで値段付けすること。値段をこれ以上上げても予約はされたかどうかが判断がつかない。もちろん、逆も同じ。

ということで、以下の表ができあがる。

上記の考えから、5つのメトリックを定義する。実際には、以下の2つの指標を特に重要だと述べている。

PDR=\frac{d}{d+b}BR=median_{bookings}(max(0,\frac{P - P_{sug}}{P}))である。

PDRは、予約されなかった部屋のうち、値段付けが実際の値段より低くできたもの。大きいほうが悪くはない。

BRは、予約された部屋のうち、値段付けが実際の値段より低くしてしまった部屋の場合、損失率を計算し、それ以外は0。それらの中央値を返す。小さいほうが悪くはない。

この2つはトレードオフの関係にあるので、PDRを改善しながら、なるべくBRを大きくしないような最適化を考える(なるほど)

Strategy Model

この章で、本質となるモデルがでてくる。まずは損失関数を定義する。

特徴(もともとの値段やGBMが算出した予約確率など)を含む対象x_iとそれの予約の有無を表すy_iからデータ\{x_i, y_i\}_{i=1}^{N}を用意する。

サンプルx_iに対して、モデルが付けた値段をf_{\theta}(x_i)とする。一旦パラメータ\thetaのことは置いておく。

損失関数は、Support Vector Regressionで使われるε-許容誤差の考えを参考に、以下の損失関数を定義する。

 \mathcal{L} = \arg \min_{\theta} \sum_{i=1}^{N} (L(P_i, y_i) - f_{\theta}(x_i))^{+} +  (f_{\theta}(x_i) - U(P_i, y_i))^{+}

ここで、 L(P_i, y_i) = y_i * P_i + (1 - y_i) * c_1 P_i U(P_i, y_i) = (1 - y_i) * P_i + y_i * c_2 P_i である。

これを理解するのは、以下の図を見るのが早い。

f:id:gingi99:20180825215948p:plain

つまり予約されたサンプル(y_i = 1)はもともとの値段P_iよりも少し大きいc_2 P_iくらいなら損失は0にする。

逆も同様の解釈でいける。この幅をもたせてるのが、ε-許容誤差と似てるが、LとU次第にかかるパラメータc次第で幅は大きく変化する。

続いて、最適化するパラメータを含むf_{\theta}(x_i)について。

モデルが付ける値段を定式化していくわけだが仮定として、「(1) 予約確率と相関はあるように付ける (2) もともとの値段の周りに付ける (3) なんらかの需要がでたときに容易に追加できるように」という3つのアイデアを入れて定式化する。

それが、f_{\theta}(x_i) = P_{sug} = P * V で、Vは以下。

Pはもともとホストがつけた値段、qGBMが付けた予約確率、Dが需要スコアといって、各マーケットごとに決めるダイナミックに変わる需要量。

\theta_1 は制御パラメータ、\theta_2は微調整パラメータと読める。

需要スコアDガウス分布で正規化する。高いほど、需要が大きい。それを制御するパラメータ1 < \phi_L < \phi_U < 2 で設定する。2つあるのが、UpとLowで別々の比率がほしいので、これが非対称(下図)

f:id:gingi99:20180826115337p:plain

あとは、\theta_1\theta_2の勾配を求めて、収束したら、P_{sug}が求まる。

学習時のテクニックとして、GBMを学習するときはマーケット別に学習したが、このStrategy Modelはすべてのデータを使う。これは、同じマーケットで同じ部屋でも、ホストがつける値段がバラバラすぎるので、全部のデータで学習したほうがホストの依存が少なくなることを期待しているみたい。

あと、\theta_1\theta_2の範囲に制約を入れるなどで、非現実的な値段にならないように調整する。学習には、Sparkを用いて確率的勾配降下法 (SGD)で最適化する。また制約をいれても、Proximal Algorithm(近接法)で容易に求まる(らしい)

Experiments

ある期間のデータを使ってオフライン評価を行う。

ds がStrategy Modelが値段付けした日、ds_eval が予約の有無のラベル集めた日、その間に1つ以上の予約があれば、その対象は正例となる。

3つのデータセットを使って、PDRBRを評価する。需要曲線に基づいて予想される収益を最大化する費用を提示するナイーブなモデルと比較する。

結果は、そのナイーブなモデルと比べて、良好な結果(下表)。

f:id:gingi99:20180826121704p:plain

評価指標に基づいて悪い提案を避けるモデルに設計した効果がでている。

すでにこのモデルを1年以上デプロイしているが、着実にこのメトリクスでみると、改善が行われているとオンライン評価で述べている。

また、実際にモデルが付けた値段の推移を可視化している。東京の例があり、4月の桜のシーズンにモデルは需要を読み取って値段をあげている(下図)

f:id:gingi99:20180826122202p:plain

追記

書き終わって、ふと検索して気づいたのですが、すでにわかりやすい日本語で解説記事が上がってました…orz。やはりAirbnbの論文は注目度が高いですね。しかし、自分の理解が深まったので良しとしよう。

honawork.hatenablog.com

repose.hatenadiary.jp

useR2018に参加&ポスター発表をしました

表題のとおり、useR2018@ブリスベンに参加&ポスター発表してきました。useR初参加です。

Rで分析を行っている自分たちのユースケースを発表しながら、世界のRユーザ・Rコミュニティの動向を肌で体感したいと思い参加しました。

概要

2018/7/10-13の4日間開催で、1日目と2日目の午前中まで、半日チュートリアル×3。その後、オープニングとキーノートがあったり、トークやLTが6パラレルで続く感じでした。ポスターは2日目の夜のレセプションと3日目のランチ時間に開かれていました。

会場はブリスベンの都市部のBrisbane convention & exhibition centerというところです。4Fのフロアをすべて貸し切ってるようでした。

キーノートをする会場はホール形式。

f:id:gingi99:20180711100117j:plain

参加者のバッチはRらしくヘキサゴン形でテンションが上がります。参加者の所属もざっと見ていると、オーストラリア系の大学や企業がやや多めで、他の国の大学系などアカデミアが多くて、インダストリも一部来ているかなーという印象でした。オーストラリアという場所に依存した参加傾向になったかもしれません(謎)

オーストラリアの形でパッケージのヘキサロゴを貼ってたりもしました。

f:id:gingi99:20180712074225j:plain

1日目

初日は午前と午後のチュートリアルが2本ありました。

Production-ready R: Getting started with R and docker

スライドはこちら:GitHub - SymbolixAU/useR_docker_tutorial: useR!2018 docker tutorial slides and notes drafts

Dockerを使ってRStudio等をデプロイする話に参加しました。Dockerも普段から使用するので、基本的なことは既知だったのですが、rockerのImageの依存関係は知らなかったので、どのImageをベースにDockerfileを作成するかは参考になりました。また、デプロイするときにどうしても、パスワードやAPIキーの管理をどうするかという話になるのですが、.Renvironで管理すればいいという話は試したことがなかった(たぶん基礎なのに…笑)ので、今後やってみたいと思いました。

fasteR: ways to speed up R code

スライドはこちら:GitHub - tslumley/useRfasteR: for a tutorial at useR2018

Rの高速化についてのチュートリアルに参加しました。チュートリアルというよりはプレゼンターの高速化のTipsまとめだった印象です。data.frameが遅いとか、vectorizeをしましょうといくつか知ってることもありましたが、if elseが遅いとかは知らなかったので、いくつかまたコードを見直すきっかけになりそうです。

また、コードを入念にRprofmicrobenchmarkを使ってデバッグしていくことはやはり必要なんだなと感じました。改めて、Rの高速化は基本的なテクニックを抑えながら、Profileして地道な作業と思いました。といいつつ、いまのところそこまでシビアに高速化する必要もなかったりで、、、

それとこのセッションを見て思ったのは、高速化をすると、コードの可読性も落ちてしまうケースもある気がするので、Rに習熟していない人と共有する場合に読みづらいコードになるのは避けたいなーという気持ちもあるので、バランスや高速化Tipsの方向性は揃えないといけないと感じました。

2日目

午前中は、useR2018の3つ目のチュートリアルに参加

Interactive data visualization on the web with R

スライドはこちら:Interactive dataviz on the web with R & plotly

最近plotlyをshinyで使っているのですが、知らない機能が知れてすごく有意義でした。とくにhighlight_keyで大量時系列の一部をハイライトする機能や生データとAggregationしたデータをひもづけた可視化など。複数系列から比較して見るのも容易になるので、最初からfilterしなくても対応できる場合がありそうで、これから試してみようと思いました。

午後からはOpening、KeynoteTalkが始まりました。

Talkで面白かったものを紹介します。

Automated unit test generation using genthat

GitHub - PRL-PRG/genthat: An R package for extracting unit tests from existing code

testスクリプトを自動生成するパッケージを開発している話でした。たしかにcoverage率あげるためにtesthatのスクリプトをがんばって書くこともあると思いますが、自動化できるならだれもがやりたいと思います。 論文としても発表しているみたいで、いろんなRのパッケージで実験して評価していました。興味深かったです。

Poster Session

Posterはロビーで47inchモニターを使った電子型ポスター発表です。

f:id:gingi99:20180711115501j:plain

自分たちはスライドを横長に作って、サイズをあわせて作ってきました。

f:id:gingi99:20180720220606j:plain

18.07.11_useR2018 Poster_Time Series Digger : Automatic time series a…

時系列データを分析する際のデータサイエンスプロセスと、EDAと特徴抽出とそれらに基づいて異常検知をパッケージ化して社内で使っている話をしました。 パッケージ公開の予定や具体的な手法や手法の使い分けなど議論できました。

他の参加者はShinyを使ったデモ形式で発表している人も多かったので、次回以降はそっちのほうが参加者と議論しやすくてわかりやすいかもと感じました。

3日目

この日のKeynoteでは、The Grammar of Animation(Thomas Lin Pedersen)に参加。主に、インタラクティブグラフやアニメーションの使い所についての話。

スライドはこちら:Keynote

gganimate 数年前に使ったときより、使いやすくなってそうだなと思いました。時間をアニメーションで動かして、散布図が動くやつ一度実データで描いてみたいです。

Talkでは、面白かったものを紹介します。

Statistical Inference: A Tidy Approach using R(Chester Ismay)

スライドはこちら:Statistical Inference: A Tidy Approach

tidyライクな統計的仮説検定を行えるinferの紹介。聞いててテンションがあがりました。まさか統計的仮説検定の各々もtidyベースで実行できるようになるとは…。これはこれから必須のパッケージになる予感です。

prioritizr: Systematic conservation prioritization in R(Jeffrey O. Hanson)

GitHub - prioritizr/prioritizr: Systematic conservation prioritization in R

整数計画問題を解くパッケージ。これまた簡単なインタフェースで直感的に制約条件などを設定できそうで便利なパッケージだなーと思いました。研究を進める上で開発したのかなと思いました。

Glue strings to data in R(James Hester)

GitHub - tidyverse/glue: Glue strings to data in R. Small, fast, dependency free interpreted string literals.

使いたいなーと思って使っていなかったglueパッケージ。pasteなどでがんばってprintしていたものを、変数なども分析するときに簡単にprintできたり、formatを揃えることができたりと、便利そうなパッケージ。使ってみて恩恵を感じたいと思います。

Data Preprocessing using Recipes(Max Kuhn)

GitHub - tidymodels/recipes: A preprocessing engine to generate design matrices

チュートリアルのスライドはこちら:user2018/Recipes_for_Data_Processing.pdf at master · topepo/user2018 · GitHub

caret開発者が現在開発している、データの特徴設計をtidyライクに書くことができるパッケージ。すごく簡単に特徴づくりできそうです。caretとの連携部分も開発中とのこと

Moving from Prototype to Production in R: A Look Inside the Machine Learning Infrastructure at Netflix

スライドはこちら:From Prototype to Production

Netflixで利用しているmetaflowの紹介。Rからデータを前処理してモデルを作って、デプロイしていくのを簡単にするパッケージの様子。ただ、まだ未公開なので、今後公開されることを祈る。この手のRでアドホックに分析したものをプロダクションに持っていくのをサポートするとこまでやっちゃうところはさすがNetflixだなーと思いました。ただ、やっぱりRでやる必要もないような…。

Estimating individual Customer Lifetime Values with R: The CLVTools Package(Bachmann Patrick)

解約予測の新たなパッケージ。分布の条件から、問題設定を4つに分けて、各種条件に応じてモデルを選択して予測できる。細かいアルゴリズムはわからなかったけど、パッケージももうすぐ公開予定みたい。

Large Scale Data Visualisation with Deck.gl and Shiny(Ian Hansel)

deck.gl

Uberで使ってる地理データのWebGL可視化ライブラリ。Rからのインタフェースもあるみたいでデモを見てたらきれいな絵がかけていた。大規模データでも耐えれるようにというモチベーションみたいだが、どれくらいのポイントでも動くか試してみたい。

Poster Sessin

この日はランチ時間帯にポスターセッションがありました。

日本から来ていたhoxo_mさんのmagic_forのユースケースが直接聞いて理解できたのと、自分たちが書いたコードでも思い当たる節があるので、これから使っていきたいと思います。コードがきれいになる予感がします。

GitHub - hoxo-m/magicfor: Magic Functions to Obtain Results from for Loops in R

4日目

Keynote : Teaching R to New Users: From tapply to Tidyverse (Roger Peng)

S言語からの話やRの歴史的発展、tidyverseの紹介なども最後まで飽きずに聞けました。

面白かったTalkをメモしておきます

Shinotate: an R-based shiny server for annotation and analysis of RNA-Seq transcriptome assemblies

GitHub - IdoBar/shiny-server: A shiny server to deliver apps to retrieve annotated transcriptome data stored in Trinotate db

Shinyでアノテーションツールを開発してる話です。期待してるものではなかったのですが、デザインの話やインタフェース設計は参考になりました。

DALEX will help you to understand this complex predictive model(Przemyslaw Biecek)

GitHub - pbiecek/DALEX: Descriptive mAchine Learning EXplanations

機械学習のモデルの解釈のためのパッケージです。breakDownやLIMEを包含したパッケージのようです。

fasster: Forecasting multiple seasonality with state switching(Mitchell O'Hara-Wild)

GitHub - tidyverts/fasster: Forecasting with Additive Switching of Seasonality, Trend and Exogenous Regressors

スライドはこちら:fasster::useR2018

時系列データのモデリングのためのパッケージで、季節成分を複数考慮したり等、拡張の幅が広そうなインタフェースで提供していました。最後にRMSE等でProphetよりも精度が高い結果も示していたので、要チェックなパッケージになりそうです。

seer: R package for feature-based forecast-model selection(Thiyanga Talagala)

GitHub - thiyangt/seer: Feature-based Forecast Model Selection (FFORMS)

時系列データの分類のための時系列データの特徴抽出をかなり作り込んでる印象でした。特徴抽出の手法の実装は参考になりそうです。

その他気になったパッケージ

Talk等はセッションがかぶっているため聞けなかったですが、気になったもの

教師あり学習のパッケージ。Self-Training以外は実装名からは検討がつきませんが、まとめている感じでしょうか。

GitHub - mabelc/SSC: The ssc R package

4日目のTalksであった時系列系のデータのtidy化をtidyvertsといったプロジェクトで行っているみたです。全然知らなかった。。

The 15th time series standard

forecast系のパッケージもfableでtidy化してるみたいです。便利すぎる。。

GitHub - tidyverts/fable: Forecasting with tidy objects

パッケージは関係ないですが、発表者のスライドをRmdやgganimateで気合入れて作ってる人が多くて、さすがのRのカンファレンスという印象でした。

発表までの流れ

次回以降useRで発表したい人のために、今回の発表までの流れを共有しておきます。

  • 2018/3/15 : アブストラクトを締切日に提出(1200文字)。単語数じゃないので注意。はやく提出した人からアクセプトされていくので、はやめに出したほうが良いみたいです。といっても、出そうかと話したのが3/14だったので、これ以上自分たちも早くはできなかった…。
  • 2018/3/23 : アクセプト通知がくる。最終日に提出してもいけたので問題なかったみたいです(むしろRejectはあったのか?)
  • 2018/6/16(くらい):ポスターの仕様が公開。47inchモニターに写して発表と知る。横長で作りなおした。
  • 2018/6/22(くらい):ポスター発表スケジュールが公開
  • 2018/7/11 : 発表

ブリスベンについて

ブリスベンへは、東京からカンタス航空で直通便がでており、8時間15分程度のフライトでした。オーストラリアの入国検査は無人で行えるスマートゲートですぐに入国できたのは感動的でした。いろんな国に導入してほしいな…。

到着後は、タクシーで約30分で会場近くのホテルに到着しました。景色や部屋も広くてとても快適でした。

オーストラリア自体が初めて訪れました。この時期は冬ということで、朝と夜は冷えますが、それでも10度程度ので、ユニクロのウルトラライトダウンで十分耐えれる感じです。昼でも日陰は冷たいですが、日なたは暑いくらいでカラッとした陽気はオーストラリアらしい天気でした。

f:id:gingi99:20180712113932j:plainf:id:gingi99:20180712114023j:plain

記念にカンガルステーキも食べることができました。

f:id:gingi99:20180712170714j:plain

ブリスベンはオーストラリア第3の都市と言われていますが、都市部はそれほど大きくなく、歩いて十分回ったりすることができました。シドニーメルボルンもいずれ行きたいと思いました。

さいごに

useRの発表はほぼすべて?ビデオで公開されているみたいですので気になったものは視聴することもできます。

R Consortium - YouTube

しかし、現地で生で聞いたほうが吸収率もあがる感じがするのは集中力の問題でしょうか…。 また、来年のuseR2019はフランスのトゥールーズで開催されるようです。別のネタでまた発表したいなと思いました。

www.user2019.fr

社会人博士課程を修了しました

2018年3月に博士(工学)の学位を頂きました。2013年3月に修士(工学)を卒業し、2015年4月に再び同大学で社会人博士課程で入学し、ちょうど3年で卒業しました。

私の研究は、簡単にいうとデータ分析の結果をさまざまな条件下で活用するための研究になります。社会人博士課程は大変と聞いていましたが、実際3年経って振り返ると自分の想像以上に大変でした。しかしながら、3年間取り組んで良かったと思います。実際に、博士の学位を取って後悔した人はほとんどいないと聞いていたとおり、私自身もそう感じています。なぜそう感じるかは、いろいろな面でのスキルアップやコミュニティ形成などがあったからなのでしょうが、私自身は博士論文を完成させるまでの過程で訓練される「本質とはなにかを考える力」が自分にとっては1番大きいものだと感じています。

この記事では、入学から卒業までの3年間の流れを振り返ります。これから社会人博士課程を目指す人になんらかの参考になればと思います。

入学の理由

  • 単純に博士という学位自体に興味があった。そして取り組みたい問題もあった
  • 学部時代に社会人博士課程に通っている先輩がいて、社会人をしながら研究・勉強を続けている姿に憧れを抱いた
  • 私も修士で就職すること(ソフトウェアエンジニア or データ分析者として)は決めていました。当時、社会で役立つものは何かを自分なりに考えてから、それを踏まえてもう一度研究をしたいと考えていたため

環境

入社してからデータ分析に関する研究開発部署に配属。今でも大きく環境は変化していません。 社会人2年目の後期に、当時の研究室の教授にアポイントをとり、直接相談して、社会人博士課程で入学することを快諾してくれました。

その後、会社では上司に相談。上司も快く快諾してくれた。私の所属が研究開発部署であったことがとても大きかったと思う。また、周りに社会人博士課程を卒業した先輩社員もいた。

入試

研究テーマに関して、入学する専攻の教授陣(10名〜20名)に対してプレゼンテーションを行いました。とくに3年間のストーリーを話すことができるかが議論の対象だと思います。

今思うと、このとき話した内容から大きくずれた研究もしているなと感じます…。

授業

自分の場合は修士と同じ大学であったため、取得する必要のある授業はなく、必修科目の研究指導関連のみ。これは社会人である自分にとってとても助かりました。

時間

平日は帰宅後、数時間。電車での移動中に論文読んだり、考えたり。残業もあまり無い環境であったので、環境にも恵まれたと思います。

あとは土日。ずっとっていうことは無く、妻と予定を立てて、ご飯を食べに行ったり、たまに日帰りで遊びにいったり、気分転換も割とやっていました。自分の場合は、研究はどこでもできる(脳内)と思っていたので、移動中に論文読んだり瞑想したりで少しでも研究脳を忘れないように意識はしました。また、幸いにも妻もいろいろと気を遣ってくれたことに本当に感謝。博士論文執筆中に、ちょうど子供も産まれましたが、多くのサポートをしてくれました。

費用

学費

国立大学の一般的な学費(入学金+授業料)がかかりました。

交通費

月1度、片道1万程度の新幹線がかかっていました。私の場合は、2年生前期〜3年前期からは仕事の都合で関西勤務となり、交通費を抑えることができたのは助かった。また、色んな経緯で貯めることができていたマイレージを使用して国内線特典予約をかなり利用できたので、金銭的に助かりました。

PC

大学からの支給品や自宅のMacbookで十分だった。

計算環境

これもリモートからログインして計算に利用できる十分なサーバが環境としてあったので問題なかった。これもかなり大きいのではと思います。

タスク管理

Trelloで管理した。とくにラベル付けなどをちゃんとして、見た目を充実させて自分のモチベーションを維持した。仕事ととの頭の切り替えが難しいときもあったので、すぐに研究で考えていたことを思い出せるように、Trello上にTO DOをダンプするようにした。

論文整理

Evernoteでまとめた。ダウンロードしたPDFファイルは、論文整理用のソフトは使わずに、Dropboxで[YEAR]_[AUTHOR]_[TITLE]でカテゴリごとにディレクトリを作って保存していた。しかし、最終的に効率の良さを考えて、Papers3 を導入した。学生なら49ドルで購入できるので、とても便利です。

英文校正

博士論文の質をあげるために、英文校正を行いました。基本的な英文法チェック等の一般的なものを使用した。 価格は最初の提示額から希望値段を言うと、半額以下に値下げることができたので、主張することは重要。

博論製本

私の大学では、PDFファイルを提出すれば、製本は不要でした。 そのため、落ち着いた3月に関係者に配るため、記念に製本しました。 研究室の製本機が不調だったので、インターネットで検索して専門業者に依頼しました。

博士過程の流れ

1年目(2015年)

  • 修士時代に行っていた研究を後輩が追加実験を行ってくれていて、それらを加えて、改修したものをジャーナル論文(1本目)として投稿した
  • もともと興味のあった分野の最近の動向や研究を調べて、予備実験を行っていた
  • 後半くらいから主張すべき点をまとめて、国内の全国大会向けに投稿した

2年目(2016年)

  • 春に全国大会発表、夏にも国内の学会で発表。学生賞を頂いた
  • 春に発表した内容をブラッシュアップして、国際学会で発表
  • 9月ごろに1本目の論文がアクセプト
  • 発表した国際学会の特集号を狙いに、12月頃にさらにブラッシュアップしたものを論文投稿(2本目)
  • ほぼ、同時に12月ごろに別の研究のアイデアがでてきて、実験したらうまくいったので、2月にそのまま国際学会に投稿

3年目(2017年)

  • 昨年発表したものがヤングリサーチャー賞を受賞。表彰される(とてもラッキーでした)
  • 特集号の2本目の論文がアクセプト
  • 国際学会発表
  • 国際学会発表後に、ブラッシュアップしたものを国内の学会誌に論文投稿(3本目)
  • 投稿後、それの拡張の実験をしていると同時に、博士論文執筆時期
  • 2月に国内の学会誌もアクセプト通知

博士論文のスケジュール

2017年春ごろ

  • 学位を取得した先輩から、論文のフォーマット(Tex)を頂く。ざっくり修了までの流れを雑談で聞く

2017年夏ごろ

  • とりあえず、頂いたTexがなぜかコンパイルできなかったので、ざっくり図とかの作りを見直す

2017年10月

  • とりあえず投稿したものをまず流しこんで体裁をざっくり整える

2017年11月 

  • 上旬:発表論文リストや謝辞もつくり、一旦完成させる。。この時期に、会社で行っていた研究のアクセプト通知。2月上旬にアメリカでの発表が確定したので、審査と重複しないか早めに確認
  • 中旬:主査の先生(担当教員)に提出
  • 下旬:副査の先生方にも提出。提出の際に、数十分程度軽く内容を説明する

2017年12月 

  • 上旬〜:担当教員から添削と修正点がはいる。かなり真っ赤になったことに反省。。
  • 上旬〜:添削頂いたところを修正
  • 中旬:公聴会で発表。副査の先生を中心にコメントをもらう
  • 下旬:学位申請書等の事務手続き資料を揃える。当時の後輩が論文の著者で連名になっているものがあったので、サインをもらったりが必要

2018年1月

  • 冬休みを利用して、論文を修正。 年越しの瞬間も論文修正してた。
  • 上旬:外部の英文校正会社に論文チェックをしてもらってさらに修正
  • 中旬:論文を印刷して、簡易製本を行い、学位申請書と共に事務に提出。これで一息つけた

2018年2月

  • 上旬:企業で行った研究について国際学会で発表@アメリカ
  • 中旬:最終諮問を実施。そのまま最終版を印刷して提出。終了

2018年3月

  • 上旬;最終審査を通過した連絡を頂く
  • 下旬:卒業式。学位記を受領

よかったこと

  • 博士論文を仕上げることで、技術はもちろんなのですが、問題に対して、議論の質をあげる力、執筆力、プレゼンテーション力など総合力が鍛えられたのかなと思います。目に見えるものではないですが、ときどき実感することはあります
  • 名刺に博士(工学)と書けること(わかりやすく嬉しい気がします)
  • なんとなく会社でも広まって、応援してくれたり、そういう目で見られてなんとなく評価ももらえたこと(直接的なものではないが、人間的によかった)
  • まだまだ企業人で博士の学位を取得している人は周りに多くいないので、自分自身のプレゼンス向上につながる(はず)

苦労したこと

  • 博士論文自体の執筆は、単なる投稿した論文の焼き直しではないことを実感。ストーリーから構成まで新たに執筆する部分が増えて大変でした。。研究の振り返りにもなると思うので、ストーリーはどこかのタイミングで定期的に考えないとなと思いました。
  • 執筆における英語の表現力が不足していることを痛感しながら、英語は最後まで苦労しました。。
  • 仕事の繁忙期と学会誌の締切が重なると普通に辛いですね。。

犠牲になったこと

少なくとも約3年間の平日と休日の余暇が犠牲になります。 例えば、友人と遊ぶ時間・飲み会の参加・他の勉強したいことができたときに優先度をうまくつけれるか等、多くの葛藤が生まれます。

私の場合は、例えば別の興味のある技術を勉強したい、会社でやっていた仕事で必要な技術を深めたい、などありました。今思えば、それらを並行になり遂げることもできたかもしれませんが、頭の中のパーセンテージを切り替えていくのも大変でした。このように、時折の自分自身のモチベーションが、優先度をつけてメリハリをつけて研究するための時間を捻出する精神力が必要になります。

そんな時もありましたが、妻がそばにいてくれたおかげで、良い息抜きもできました。逆にシングルは精神的に辛いことも増えるのかもしれません。

今後

一時期は、大学に戻ろうかなと考えていた時期もありましたが、周辺の大学の先生方の話を聞き、自分はデータがある企業でリサーチャー or データサイエンティストをしながら、現実の問題に向き合いながら、データを解析することに集中することにしました。仕事がら、大学とは何らかの関わりは今後とも継続するかと思いますが。

最後に私の恩師からありがたい言葉をいただきましたので、そのまま引用して終わりたいと思います。

10年後、20年後のことは、誰にも予測はできない時代になってしまいましたが、働きながら寸暇を惜しんで研究した経験は、きっと未来を照らす光になることは、私の経験上からも明らかです。

参考:博士課程に関するブログ

過去のブログ記事が出る度に読んで参考にしていました。こういう数少ない記事から、自分もがんばろうと思えていました。偉大なる先輩方に感謝です。

anond.hatelabo.jp

f-shin.net

社会人ドクターとして博士号を取得しました - K-ichi's tumblr

yumulog.hatenablog.com

d.hatena.ne.jp

statsbeginner.hatenablog.com

blog.goo.ne.jp

www.tamochan.com

社会人博士課程で情報学の学位をとる

next49.hatenadiary.jp

www.newsweekjapan.jp

ベストセラーコードを読んだ

ベストセラーコード 「売れる文章」を見きわめる驚異のアルゴリズム

ベストセラーコード 「売れる文章」を見きわめる驚異のアルゴリズム

ざっくり概要

機械が書籍のベストセラーを予測できるかという問いに対して、著者らが取り組んだ内容や分析について書かれています。 本の文書から、特徴を抽出して、機械学習によりベストセラーになる書籍を予測する問題に取り組んでいます。 予測した結果の精度は高い(80%)ことはもちろん、ベストセラーになる書籍の特徴を独自に分析。とくにフィフティ・シェイズ・オブ・グレイの例を用いて、本の中の感情の流れやベストセラーじゃない書籍との特徴を比較した分析が面白いです。

具体的なデータは、ニューヨーク・タイムズで紹介されたベストセラーリストをもとに500冊ほどのベストセラーの書籍とそれ以外の書籍数千冊の文書から、 形態素解析等のテキストマイニングにより2万以上の特徴を設計し、機械学習の分類モデル(SVMやk近傍法)を用いて、評価しています。

感想

問題設定が大きく、特徴抽出と機械学習の問題にして解くという好きなタイプの話でした(どこかに研究論文はあるのだろうか)。

また、モデルが出した答えは専門家から見れば当然なことも、機械がその答えを導き出せたことが、研究的にも大きな貢献。 専門家のカンみたいなのを定量的かつ言語化し、非専門家も納得できる客観情報にまで落とし込むのは、著者らの強い思いがあったのではないかと。 このプロジェクトはたしかどこかに4年かかったと書いていたと思いますが、問題の大きい研究をするというのは、こういうスケール感で達成されるものなのかな。

WSDM2018に参加しました

2018/2/5-9のロサンゼルスで開催されるWSDM2018に参加しました。この週はニューオリンズAAAI2018に参加・発表をしていたので、途中からこっちに向かうというスケジュールでした。

www.wsdm-conference.org

WSDMはWeb Search and Data Miningの名のとおり、Web検索とデータマイニングに関するトップカンファレンスです。514の投稿数のうち、84件がアクセプトされ採択率は16%のとても厳しい学会です。そのうち選ばれた数十件のみがシングルセッションで24分の口頭発表があり、残りはポスターセッションです。初めての参加でしたが、シングルセッションのためすべての発表を網羅的に聴講できたので、とても満足でした。また、コミュニティの温かさも感じることができ、大変有意義でした。

2/5

ニューオリンズを17時台に出発し、アメリカン航空で20時代に着きました。そこからタクシーで20分ほどのマリナ・デル・レイに向かいます。 マリナ・デル・レイはヨットの街で有名で、リゾート地として休暇を楽しむ人が訪れる街のようです。そのため、ロサンゼルスのダウンタウンからは離れた場所にあります。

f:id:gingi99:20180218153110p:plain

到着後、すでに先に到着していた同僚と近くのカフェ・レストランで食事をしました。

この日はVC・Industry Dayでのトークチュートリアルのセッションがあったようです。

2/6

From Search to Research: Direct answers, Perspectives and Dialog

WSDMの開始は、MicrosoftのHarry Shum氏からの講演でした。講演の内容はすぐにLinkedinの記事に上がっていました。

https://www.linkedin.com/pulse/from-search-research-harry-shum/

Microsoft検索エンジンBingについての講演でした。ユーザの検索意図を汲み取るための検索エンジンの進化を3つの例を用いて、説明していました。

f:id:gingi99:20180207024729j:plain

Direct Answersとは、検索ワードから意味を理解して答えを返す仕組み。Perspectivesとは、質問文の検索に対しての多様な答えを返す仕組み。Dialogとは、まさに対話型検索で、検索ワードから対話的に答えを返す仕組み。それぞれのケースを例を用いてBingの機能やアルゴリズムを説明していました。わかりやすい例も多くて、見てて面白かったです。

Search and Questions Answering

ここから本セッションが開始。興味深かった発表をいくつか紹介します。

Why People Search for Images using Web Search Engines

Tsinghua Universityの発表。ユーザのIntent別に画像検索の仕方がどう変わるかを分析した研究。最後にユーザの検索行動からIntentを予測できるかも最後評価していました。

Position Bias Estimation for Unbiased Learning to Rank in Personal Search

Googleの発表。去年のWSDM2017のベストペーパーから続いてのUnbiased Learning to Rankについての研究。ユーザがクリックするのは、ランキングによって決まる位置のバイアスがあるという点に焦点をあてているのがポイント。 つまり、クリックされるドキュメントは、ユーザがほしい情報と関連があるってことは想定できるが、逆はいつもTrueじゃない。なぜなら、Position Bias のせいで下のほうにあるドキュメントはいつもクリックされないかもしれないからである。よって、click dataはこのバイアスが入ってしまうので、そのようなバイアスを除くために、もっと単純な式にしてバイアスをノイズとして減らす定式化をする。

モデルパラメータの推定には、ランダマイゼーションで決める方法とEM使ってもうちょっとかしこくする方法を提案。Dataは述べていないが、GmailGoogle Driveで実験してるみたいでした。

Lunch

会期中はランチも提供してくれて、個人的にはこのランチがすごく美味しかった。さすが、リッツ・カールトンなのか。。

Conversations, Machine Learning and Privacy: LinkedIn's Path towards Transforming Interaction with its Members

LinkedinのChief Data OfficerのIgor Perisic氏からの講演。KDD2016のEmail Volume Optimization at LinkedInの話が中心で、Linkedinにおけるデータ分析の話。この話でこの論文知りました。Multi-Objective Optimization (MOO) problem とユーザの満足度を定義するUtility Functionの設定がポイントだと思う(細かいところがよくわからなかった)。

内容と関係ないが、Likedinのミッション「Create economic opportunity for every member of the global workforce」は個人的には好きです。

Poster セッション

いくつか興味のあるポスターの発表者と話した。全体的に、アルゴリズムが新しい話はDeep系のモデルで定式化してるのが特徴で、問題設定がユニークなのものはシンプルなアプローチなんだけど、実験しっかりしてるという印象を持ちました。

Learning to Rank Personal Photos for Public Sharing

GoogleのパーソナルフォトからSNS等で公開に適した写真を自動で選ぶ研究。手法は既存技術が中心で、シンプルに問題を解いてるところが好きでした。

この日は、そのままPosterセッションで出た軽食で満足して就寝。

2/7

Scalable Algorithms in the Age of Big Data and Network Sciences: Characterization, Primitives, and Techniques

この日最初のトークは、 USCのShang-Hua Teng先生のデータ探索の高速化の話。専門ではないので、途中から分からなくなってしまった…。

Crowdsourcing and Learning from Users

クラウドソーシングの研究はこれまであまり聴講したことなかったですが、全体的に面白くて興味を持ちました。

Ballpark Crowdsourcing: The Wisdom of Rough Group Comparisons

Bagとあいまいなラベルから学習させる。ECML PKDD 2016は2クラス分類問題のみだったが、それの回帰問題への拡張が今回の貢献部分。重みwとラベルyを同時に解く凸最適化問題に落とし込んで解く。 制約条件の上限と下限をクラウドソーシングで決める実験とか興味深い。議論としては、あいまいなラベルを制約条件のパラメータを今回みたいにある程度ノイズがあっても大丈夫なところ。本当に精度がそれで落ち着くのかが不思議だなーと感じました。

Orienteering Algorithms for Generating Travel Itineraries

Googleの研究で、旅程を自動で生成する方法。グラフで旅程を表現(ノードは訪問時間、エッジは移動時間)。Googleの発表は何ができるかをすごく丁寧に話してどうやっては論文見ろっていうのが多いんだなーと思った。評価はUtility関数とヒューマン評価で、自動生成したほうが満足度高かったという結果。

Matrix Factorization and Recommender Systems

Micro Behaviors: A New Perspective in E-commerce Recommender Systems

University of Minnesota & Data Science Lab, JD.comからの発表。ユーザのMicroな振る舞い(ユーザがモノを選ぶまでに見た行動履歴)の情報も使ってGRUでモデル化してる。この手の研究はデータの強さが一番だから、なんとも言えない…。

この日の夜はFantaSea One Yachtでのクルーズしながら、Conference Banquet。円卓で隣に座ったとある会社のエンジニアと話して年収の話や各国の教育の話で面白かったです。

f:id:gingi99:20180208140725j:plain

f:id:gingi99:20180208131636j:plain

2/8

Ads, Finance and More Matrix Factorization

Predicting Audio Advertisement Quality

Georgia Institute of Technologyからの発表。音広告の品質の予測で、Long Click Rateなどの特徴量からどれだけ予測できるかなどのUser Study。CNNがスコアは高いが計算時間が超高く、それを考えるとロジスステッィク回帰すげー優秀な成績だなと感じた。ストーリーがわかりやすくて、論文の構成が参考になりました。

Putting Data in the Driver’s Seat: Optimizing Earnings for On-Demand Ride-Hailing

Boston Universityからの発表。NYC Taxi Datasetを使って、タクシードライバーの収益を最大化しましょうっていう研究でした。

Business Lunch

この日だけLunch Boxを提供してくれてなぜかと思ったら、Business Lunchという名称で、学会の参加者数などの統計情報の発表や来年のWSDMに向けてオープンマイクで議論する時間が設けられた。

写真を撮り忘れたが、参加者数は500名ほどで、過去に比べてそこまで多いわけではなかった。また、発表されたトピックも概ね予想どおりでした。 f:id:gingi99:20180209061711j:plain

WSDM2019はメルボルンのようです。行ってみたい。

この日の午後から別件でサンフランシスコに向かったため、これでWSDMは終了しました。

おわりに

コミュニティがそこまで大きくなく全体的に温かい雰囲気のある学会でした。興味深い実データとそれに対する深いデータ解析を行う必要がありますが、何かしらの機会でもう一度行ければなーと感じました。

AAAI2018に参加・発表しました

2018/2/2-7でニューオリンズで開催されたAAAIに参加・発表したときの旅程も含めたメモです。 私自身は、2月5日の午前中に発表がありました。ロサンゼルスで開かれるWSDM2018に参加する予定もあったため、2/5の午後で抜けることになりました。

aaai.org

2/2

成田空港を17時代に出発しました。ヒューストン(IAH)経由で、ニューオリンズ(MSY)に17時に到着しました。空港から会場ホテル(ヒルトン)までは、タクシーで30ドルくらいの定額で、30分くらいだったと思います。 この時期はマルディグラのイベントがあったため、大きな道を渡ることすらちょっと難しい感じでした。

2/3

この日はEAAI、チュートリアル、ワークショップがありました。

私は発表準備で出席できなかったですが、別の参加者がFakeNewsのチュートリアルに出席しており、これまでのアプローチやデータセットなどのまとめ資料がとても良かったようです。

Computational Solutions against Fake News: AI vs. DB Approaches

夜はOpening Receptionがありました。すでにかなりの人数が参加していました。あまりがっつりご飯は食べずに近くの(といっても、徒歩20分くらい。。)スーパーに食材や水を調達しにいきました。マルディグラがあったため、道は少し遠回りになりました。。

2/4

AAAI / IAAI Welcome

開会の挨拶的なものから学会の統計情報等が発表されました。

参加者数は前回より、36%増加の2200名ほどだったみたいです。さすがのAIブームを感じました。 f:id:gingi99:20180204233630j:plain

投稿数は、47%増加の3800件と、参加者数以上に大幅に増えていました。 f:id:gingi99:20180204233647j:plain

国別のAccept数を見ると、アメリカについで、中国、続いて他の国が続くようです。 f:id:gingi99:20180204233724j:plain

論文の傾向ランキング、Machine Learning Method、Vision、NLPという順番です。個人的には、去年がどうだったかわからないですが、案外Application系の論文も多いなと感じました。 f:id:gingi99:20180204233744j:plain

発表の最後で、Baconという単語がある論文のAcceptance Rateが48%だったという報告で会場中の笑いを取っていました。逆にどんな論文にBaconが入っていたのだろうか…。

Challenges of Human-Aware AI Systems (AAAI-18 Invited Talk)

最初にアリゾナ州立大学のSubbarao Kambhampati先生から人間を意識したAIシステムに関するいくつかの問題点を紹介する話がありました。

人間がAIが定めたルールから意思決定をしていく場合に、AIが定めたルールを人間は選択しないことのほうが多い話が印象的でした。全体的に、AIを人間が適切に使うことがまだまだ難しいということがメッセージだったと思います。

IAAI-18: Focus on and Support of the Customer

Hi, how can I help you?: Automating enterprise IT support help desks

IBM Reseachの発表。QAシステムの話で、顧客が満足する回答を返す方法についての話。

CRM SALES PREDICTION USING CONTINUOUS TIME-EVOLVING CLASSIFICATION

CRMシステムの話で、時間の進化で顧客の嗜好も変わるからその分を考慮した(時刻を条件付きにして、特徴量を修正するような変換)アプローチの紹介。

VoC-DL: Revisiting Voice Of Customer Using Deep Learning

Adobe Researchの発表。顧客からの声が何のトピックか分類する問題。CNNとRNNを使って特徴をうまく作ってるような話。

IAAI-18: The Business of Time and Money

Secure and Automated Enterprise Revenue Forecasting

Microsoftの発表。収益予測が結構自動でうまく当てれる話。どの辺が効くのかの詳細を論文をあとで追う。

Investigating the Role of Ensemble Learning in High-Value Wine Identification

ワインの価格予測。アンサンブル学習(バギング、スタッキング)の方法を実験していた。

Poster

夜はポスターセッションがありました。軽食で出たハンバーガーが意外と美味しかったです。

Deep Learningの論文の図を解析し、自動でコード化する発表をしていたポスターが面白かったです。

2/5

IAAI-18: Analyzing Software and Network

Classification of Malware by using Structural Entropy on Convolutional Neural Networks

CNNを用いてマルウェアの分類精度をあげた話。

Mobile Network Failure Event Detection and Forecasting with Multiple User Activity Data Sets

ユーザ行動(ソーシャル上での行動、またはサービスに対するWebアクセスや検索)からサービス故障を検知・予測できるかという話を発表しました。予測はどうしてできるかのという点で質問をいただきました。

DarkEmbed: Exploit Prediction with Neural Language Models

Exploitをとらえるために、スパースなデータのEmbeddingをどうやるかについての研究。

ニューオリンズについて

アメリカ南部ははじめて行きました。会期中がたまたまマルディグラの時期で、1日中パレードがやっていたみたいです。なんとなく暗い道が多く、全体的に治安を心配するところもありました。

ミシシッピ川が会場ホテルのすぐそばで、RiverWalkがありました。あまりキレイな色ではなかったですが…笑。

f:id:gingi99:20180204135141j:plain

会場近くのGrand Isle Restaurantにいきました。ニューオリンズはアメリカの中で美食の街としても有名みたいで、海鮮が美味しいようです。ザリガニ料理などを食べました。たしかに美味しかったです。

f:id:gingi99:20180217231246p:plain

Amazon Echo が届いたので、生活を便利にできるか試してみた

Amazon Echo Dot がついに家に届きました。リクエストを発売日初日に出していたつもりでしたが、Amazon Echoの注文を見逃したからか、招待がキューの後ろに回されたように感じました。

Amazon Echo Dot (Newモデル)、ブラック

Amazon Echo Dot (Newモデル)、ブラック

EchoからIFTTTを使ってTO DOをTrelloに追加

私はTo Do リストとして、Trelloを利用しています。

食器の洗い物をしているときに「あれしなきゃな」と思ったことをTrelloに書き込みたい。だけど、手が使えないときに、To Doに忘れないうちに追加しておきたいと思うことがありました。

それを可能にするため、Amazon EchoからIFTTTを使って、Trelloに追加する設定を行いました。

IFにあたる部分は、Alexaの item added to your To Do List を選択します。

THENにあたる部分は、Trelloの create card を選択します。

これで設定完了すると、「Alexa 野菜ジュースを買ってくるってTODOリストに入れて」からTrelloのTO DOリストに追加が一言で済むのでとても便利です。

EchoからIFTTTを使って育児記録をLINEに通知

子供のおむつやトイレがいつしたかを妻が記録していますが、声だけでできないかなと思ってました。調べると、すでにDashボタンを利用して管理しているのを見つけました。

qiita.com

これを参考にとりあえず、IFTTTでできることを設定します。

IFにあたる部分は、Alexaの Say a specific phrase を選択して、ここでは「うんち」を入力。

THENにあたる部分は、事前に妻とLine Notifyのグループを作っておいて、そこに通知がくるように LINEの send message を選択。

これで設定完了すると、「Alexa うんちをトリガー」と言えば、LINEのグループに通知が来るようになりました。

少しハマったのは、「Alexa トリガー ◯◯」はダメで、「Alexa ◯◯ トリガー 」だと言うこと。 また、オムツだと反応してくれなかったりするのが、何が原因かわからなかったり。。

これだけだと、夜中でも声を出さなきゃだめな点がやはりネックなので全部の記録はできないですが、昼間はこれを利用しても良いかもと思いました。

ピカチュウトーク

最初にスキルをONにしたのがこれです。

息子がこれにどう反応するかがこれから楽しみです。

まとめてトピックを話してくれる

「Alexa 何かある?」でを話してくれるのは毎日使いたくなる感じがしますね。

英単語を流してくれる

キクタンのスキルをONにしました。英単語をリズミカルに流してくれるのは、口ずさみたくなる感じで良いですね。

まとめ

声で操作できるっていうのは、手で操作するよりやっぱり速いので、ワンフレーズで何かイベントを発生させるのは楽しいと思いました。

また、「Alexa ◯◯を教えて」はスマホで調べるより、まず最初にためそうかなと思います。

個人的にはTO DO 追加が一番便利になったかな…。