読者です 読者をやめる 読者になる 読者になる

トルコ旅行記 No.1 ~エフェス遺跡編~

旅行

12月に挙式を行い、その流れで年末までトルコに新婚旅行に行ってきました。冬はトルコ旅行のベストシーズンではないですが、かなり楽しめました。シーズンじゃないという理由で避けている人がいたらもったいないので、いろんな情報を書いておこうと思います。少しでも参考になれば幸いです。

旅行日程は、12/21~12/30までの10日間、ただし、12/21~22までは日本~トルコ、12/29~30まではトルコ~日本の移動でつぶれます。かなりしんどいですね。直行便だと楽なのですが、私たちは、ドーハ経由トルコ行でした。なので、実質の旅行期間は、12/23~12/28の7日間です。

観光したのは、エフェス、パムッカレ、カッパドキアイスタンブールです。この順番で観光しました。このうち、イスタンブールは、実質3日間観光しました(12/26の午後~12/29の午前まで)。ちなみに、この旅行の最大のボトルネックは、パムッカレ~カッパドキアの移動です。この移動は、どうしても車になってしまうので、休憩しながらだと10時間ぐらいかかります。1日無駄にした気持ちになりますが、しょうがないところです。短い期間しか観光できない人は、どちらかを諦めるしかないかもしれません。

旅行会社

申し込みはファイブスターで行いました。


TOP | FiveStarClub|海外ツアーの専門店ファイブスタークラブ

現地で対応してくださった旅行会社は、Delil Travelです。


最高の旅を最良な価格で / デリルトラベル Delil Travel

レストランなど、地元のお店を教えてくれるので、良かったです。また、おみやげ屋も言えばスキップしてくれます。個人旅行の醍醐味ですよね。

ホテル(AKSAN HOTEL)

日本~トルコのイスタンブールまで移動して、そこから国内線でイズミールまで来ました。この時点で、17時なので、この日はホテルへ直行しました。宿泊したホテルは、AKSAN HOTELです。


アクサン ホテル (Aksan Hotel)|イズミルホテル|トルコホテル |【ホテルズ ドットコム】

1泊して朝食を食べました。部屋のクォリティは、可もなく不可もなく。Wi-Fi使えるのはありがたいですね。朝食はおいしかったです。シャンプー、コンディショナー、ボディソープ(シャワージェル)は備え付けられています。シャワーの水圧は、日本人からすると少し弱めだと感じました。

トルコ旅行でいくつかホテルに泊まりましたが、AKSAN HOTELのコスパは良い方ではないでしょうか。

写真を撮り忘れたので、写真はないです。

シリンジェ村

さて、私たちは、最初にシリンジェ村に向かい、その後、エフェス遺跡に向かいました。シリンジェ村は、昔、ギリシャ人が住んでいたのですが、ギリシャとトルコで住民交換を行い、今は、トルコ人が住んでいます。基本的に、観光地ですね。夏はすごい数の観光客らしいのですが、12月はほとんど観光客はいなかったですね。おみやげ屋の人たちもヒマそうでしたね。

f:id:ryokkie:20141223172430j:plain

こんな感じでがら~んとしてました。

エフェス遺跡

エフェス遺跡は、けっこう広いですが、きちんと残っている建物はそれほど多くないので、それほど時間をかけずに見ることができると思います。遺跡についての詳細は、ガイドブックやいろんなブログに書いてあるので、特に書かかないですが、写真は載せておきます。

f:id:ryokkie:20141223183244j:plain

f:id:ryokkie:20141223184050j:plain

f:id:ryokkie:20141223184910j:plain

天気も良かったし、オフシーズンなので観光客も少なめだったので、すごく観光しやすかったです。

次は、パムッカレについて書こうと思います。

統計処理の勉強メモ(4)

以下の本を読みました。

手を動かしながら学ぶ ビジネスに活かすデータマイニング

手を動かしながら学ぶ ビジネスに活かすデータマイニング

元がブログであるためか、普段からブログを読む人にとっては読みやすいです。位置づけとしては、Rを使って、各種統計解析の手法がどんな問題に適用できるのか?どんな結果が得られるのか?をまとめた資料集っぽい感じで使えると思います。実際、本の中身でも参考文献へのリンクが散りばめられており、より深い学習を目指す人へ配慮しています。Rの使い方もほとんど触れられていませんので、Rについて知りたい場合は、別の本を買うべきです。

パターン集として、手元にあるとうれしい本だと思います。著者もそのあたり割り切っていて、深い記述を意図的に避けていると思います。

統計処理の勉強メモ(3)

統計学

以下の本を読みました。

読み物として非常におもしろいです。ビッグデータ系の本の中では一番かな?最近は、どこもかしこもビッグデータビッグデータでみんなおなかいっぱいになっている感じがしますが、よく考えるとマシンログこそビッグデータです。ビッグデータという言葉自体に意味はあまりないですが、データ蓄積、分析、活用、フィードバックの流れはもう止められません。間違いなく、あと10年は主流です。

ビッグデータ系の本はいろいろあります。マーケティング系、統計学系、事例紹介系などさまざまな分野に影響を与えています。その中にあって、著者は、自身が関わってきた研究を中心に話しているので説得力があります。特に今までわかっているようでわかっていなかったことをデータを使って明らかにする説明はとてもおもしろいです。もう、「ビジネス的なビッグデータにあきちゃったよ。なんで常に金儲けなんだよ。おもしろそうだなって発想でやっちゃいけないのかよ。」って人には最適です。

さて、自分自身について悩んでたこともあり、しばらくブログを休んでましたが、大きな外的要因があり、ふっきれました。初心に戻って、承認欲求を満たしながら、いろんなことを学んでいこうと思います。

当面は、ElasticSearchかなぁ。

統計処理の勉強メモ(2)

統計学

以下の本を読みました。

1億人のための統計解析 エクセルを最強の武器にする

1億人のための統計解析 エクセルを最強の武器にする

Amazonの評価はとても低いですが、私自身は良いなと思う部分もけっこうありました。というのも、まず、ビジネス的な価値を意識している点です。やっぱり、この視点ってけっこう重要だと思うんですよ。企業とかでやろうと思うと、ある程度お金が発生しているんで、どうしたって最終的には誰かに説明しないといけないタイミングって来るはずで、そういう時に、ビジネス的な価値を意識していないと困ると思うんです。そういったビジネス的な価値と統計処理をどう結ぶかってことが最初の40ページぐらいに書かれていて、ここだけでも読む価値があるかなと。私みたいに統計素人には、統計処理の厳密さよりも、とりあえず何か結果だせるメソッドやフレームワークを提示してくれるってのは、けっこうありがたい。その後、興味があれば、より詳細に学べればいいかなって思います。

あとは、もう、そこらのExcelの解説書より丁寧じゃね?ってぐらいExcelでの統計処理に特化して説明してくれているところですね。エンジニア系の人と付き合っているとExcelの話題なんてあまり出ないですけど、ふつうの人ってやっぱりExcelなんですよね。そういった人たちに、統計処理の効果を伝えようと思ったら、Excelでできるっていうのは大きいと思うんですよ。

なので、この本は、ガチの人にはウケないと思いますが、会社で急に統計処理に取り組むことになった企画部門の人とかにはオススメです。とりあえず、Excelでなんかできますし、フレームワークでどんな分析をするか?まで明確にできれば、プロの人にアウトソースできますしね。著者が「一億人の」って言っているのはこのあたりかなって気もします。全員が全員、Rとかその他もろもろの専用ツールの使い方を知る必要ってない気がしますし。うまく分業できるのが良いような気がします。

ただ、私は、もう少し詳細な部分に興味が出てきたので、Twitterで情報を調べて、ガチっぽい統計の教科書とかも読むようにしているんですが、こちらはどうしたって時間がかかりますね。まぁ、もともと数学をよく勉強している人にとってはそうでもないんでしょうが。まだまだ先は長いと思います。ただ、簡潔データ構造を勉強し始めた時よりは情報が揃っているんでやりやすいですけど。

サーチアプリケーション

Computer

Solrは、3.Xの頃に調査したことがあったのですが、4.Xになってからは触れることがほとんどなく、なんか良くなったらしいということだけ聞こえてきていました。また、最近の世の中の事情もあって、構造化データと非構造化データを効率的に扱うことを考えるとサーチアプリケーションという選択肢もアリになっていると思います。専用のDWHを用意するという発想ももちろんアリだと思います。ただ、データの格納が必要なく、すでに稼働しているさまざまなデータを取出し、サーチアプリケーションのインデックスとしてだけ保持しておいて利用するというのもコストがあまりかからないので良いと思います。弱点としては、サーチアプリケーションごとに、機能の違いがあることと、元のデータソースとの同期を適切に行わないといけないというところでしょう。

全文検索というとテキストだけを対象としているように考えてしまいがちですが、ビッグデータブームもあり、Solrコミュニティは、構造化データと非構造化データを結合したアナリティクスを提供するという方向を意識しているように思います。例えば、IBMの方の以下の記事がわかりやすいと思います。

http://www.ibm.com/developerworks/jp/java/library/j-solr-lucene/

検索とアナリティクスの融合は、Splunkが先行していますが、Elasticsearchは、Kibanaなどを利用して、同様のことをより低価格で目指しているように見えます。

http://www.elasticsearch.org/overview/kibana/

このような状況でもあり、真面目に調査しようと思い、改訂版のSolr本とElasticsearch本を購入しました。

[改訂新版] Apache Solr入門 ~オープンソース全文検索エンジン (Software Design plus)

[改訂新版] Apache Solr入門 ~オープンソース全文検索エンジン (Software Design plus)

高速スケーラブル検索エンジン ElasticSearch Server

高速スケーラブル検索エンジン ElasticSearch Server

私は、関係者でもないですが、ステマしておきます。改訂版のSolr本は、前作のSolr本を踏襲しつつ、新しい内容が加筆されているので、前作を読んだことがある人は読みやすいと思います。Elasticsearch本は、まだ眺めただけですが、アプリケーションを利用する人にとっては、十分な情報が書かれているように思います。

サーチアプリケーションというのは、情報系の勉強をするのにもってこいだと思います。検索のUIは多くの人が慣れ親しんでいるのでとっつきやすいですし、結果も見慣れたものなので、苦痛ではないでしょう。Solrのサンプルを動かすだけだと簡単にできるでしょうし、楽しいと思います。さらにそこから深堀りできます。例えば、

  • 高速な検索をどう実現しているのだろうか?という疑問を持ち、高速な検索アルゴリズムを調べる。
  • より良い検索結果とは何だろうか?という疑問を持ち、情報検索の世界を調べる。
  • 世界には多くの言語があるが、それを柔軟に扱うにはどうしたら良いだろうか?という疑問を持ち、自然言語処理の世界を調べる。
  • 関連するものをいろいろ出してくれるレコメンドというのはどう実現されているのだろうか?という疑問を持ち、機械学習の世界を調べる。
  • 多くのユーザに安定的にサーチというサービスを提供するために、システムはどう構成されて、動いているのだろうか?という疑問を持ち、インフラ技術を調べる。

など、さまざまなことをサーチアプリケーションを入り口にして学ぶことができます。私も勉強中です。特に、分散検索などは、昔は試すのが難しかった(作るのが大変だった)ですが、Solrの登場でだいぶ敷居が下がりました。学生実験などでも十分にできると思います。私は、社会人になって、サーチアプリケーションから、検索アルゴリズムの世界に興味を持ち、簡潔データ構造を調べるようになり、いろいろ作ってみたりしました。Suffix ArrayやFM-Indexという技術ももちろんおもしろいですが、アプリケーションとしてのサーチもやはりおもしろいです。また、Luceneのコアは、転置索引やN-gramですが、なぜ、逐次探索(grep系)やSuffix Array系ではないのか?、Suffix Array系にしようと思うとどういった課題を解決しないといけないのか?というのを考えるのもおもしろいです。

私も、まだ、SolrやElasticsearchをあまり触っていないので、これから知識を深めていこうと思います。

文法圧縮(6)

NLP

仕事上での悩みもあり、なかなかエンジンがかからない状態が続いており、新年からずっとダラダラしている。いまいちモチベーションが上がらないが、ずっとダラダラしていてもしょうがないので、簡単なことからいろいろとやり始めることとした。「遅くともやらないよりはマシ」だと思うので。

今回、特に内容はないが、文法圧縮の入門に良い記事を見つけたので紹介しておく。九工大の坂本先生の記事である。*1

「圧縮情報処理ノススメ」
http://www.donald.ai.kyutech.ac.jp/~hiroshi/sakamoto_tutorial_2013_7.pdf

私の知る限り、文法圧縮をわかりやすく解説した日本語の解説はないので、大変貴重だと思う。*2私は、関東に住んでいないので、DSIRNLPには参加できなかったが、文法圧縮の話題も出ていたようなので、「文法圧縮」って何?という場合は、この記事を読むと良いと思います。文法圧縮の圧縮全文索引が出てくると、ストリーム処理向きの検索エンジンが作れるので、かなりおもしろいと思います。

ちなみに、文法圧縮には関係ないが、「百科事典棒」は、「なるほど!」とうなってしまった。おもしろい。

*1:私は、我流で学んだので、専門の方のこういう解説記事は知識が整理できるので大変ありがたい。

*2:あれば教えてください。

文法圧縮(5)

NLP

文法圧縮(Re-Pair)の構築部分については、線形時間で構築できるようになったが、文法圧縮部分の辞書をどう簡潔に保持するか?という問題が残っている。

例えば、

abcabcabb

という文字列に対して、Re-Pairを適用して、以下のような辞書(R)と圧縮文字列(C)が得られたとする。

辞書(R):
s ---> ab
t ---> sc
u ---> ts

圧縮文字列(C):
tub

このとき、辞書(R)を単純にハッシュで保持することもできるが、簡潔に保持することもできる。図に示す。

f:id:ryokkie:20140101174858p:plain

詳しい作り方は、後で述べるので、まずは、簡単に説明する。辞書(R)を2分木を使って表現し、その構造をRbというビットベクトルで表現する。ビットベクトルの1は、ノードであり、0が葉である。木を行きがけ順(pre-order)で探索して、Rbを表現する。また、葉の文字を行きがけ順に並べたのがRsである。このとき、uの中にsが出てくるが、すでに部分木として表現されているので、Rbでの部分木の位置をRsに表現する。なので、実際には、木というよりもDAGと表現した方が良い気がする。

例として、このデータ構造を使って、「t」を展開してみる。「t」が表現されているのは、Rbで1の位置である(位置は0からとする)。このとき、

rank_0(Rb, 1) = 0

なので、Rsの開始位置を0に設定する。つまり、Rbの開始位置を1とし、Rsの開始位置を0とする。ここからは、Rbを順番に探索して、0の数が1の数より大きくなった時点で探索を終了する。また、Rbが0の時は、Rsから文字を一つ取り出す。実際に探索してみる。Rbの1の位置と2の位置には、1があるので、1の数を2とする。Rbが3の位置から0が連続しているので、1の数が2だったので、0が2を超えるまで、Rsから順に文字を取り出すと、「abc」を取り出すことができる。これは、「t」を展開したことと等しい。

次にこのような簡潔表現を構築する方法について説明する。まず、辞書の各定義が別の定義から使われている数を数える。例の場合、以下のような回数となる。

s : 2
t : 1
u : 0

つまり、uはどの定義からも参照されていないことがわかる。このとき、どの定義からも参照されていないuを頂点として、再帰的に展開していく。Rbの0の位置に1を設定し、「u ---> ts」であるため、「t」を展開する。「t」は、展開可能であるため、Rbの1の位置に1を設定し、「t ---> sc」であるため、「s」を展開する。「s」は展開可能であるため、Rbの2の位置に1を設定する。「s ---> ab」の「a」と「b」はこれ以上展開できないため、Rbの3と4の位置に0を設定し、Rsの0と1の位置に「a」と「b」を設定する。次に、「t ---> sc」の「c」もこれ以上展開できないので、Rbの5の位置に0を設定し、Rsの2の位置に「c」を設定する。最後に、「u ---> ts」の「s」は、展開可能であるが、すでに表現されているので、Rbの6の位置に0を設定し、Rsには、その部分木の開始位置として、Rbの位置である2を設定する。圧縮文字列であるCについては、Rbの位置を使って表現する。

このように表現することで、辞書(R)の構造をRbを利用して、簡潔に表現できる。また、辞書(R)の「s t u」の展開後の文字列である「ab sc ts」の6文字は、冗長性を排除することで、Rsにおいて、4文字で表現することができる。Cは変わらない。また、Rbを完備辞書で表現すれば、ランダムアクセスも可能である。

ただし、辞書の簡潔表現は、一旦、Re-Pairの圧縮を行ってから辞書を圧縮する必要があると思うので、中間メモリは、簡潔にはならない。

次は、今回紹介した辞書の簡潔表現を使って、Re-Pairを利用した完備辞書についてまとめてみる。