DigdagとEmbulkを利用してBigQueryにRDS(Aurora、MySQL)のマスタデータを同期する

こんにちは、バックエンドエンジニアの塩崎です。

先日、会社の広報のためのインターン生紹介記事にメンターとして掲載していただきました。 大学四年生のインターン生と一緒に写真撮影を行ったのですが、見た目だけではどちらが年上かわからなかったので、「メンターの塩崎(右)」という表記をされてしまいました(笑)

インターンでも実際のサービスに触れ、課題を解決!〜VASILY DEVELOPERS BLOGが公開されました〜

さて、VASILYではData WarehouseとしてGoogle BigQuery(BigQuery)を利用しています。

BigQuery内にはプロダクトのマスタデータとユーザーの行動ログが格納されています。 そして、それらに対する横断的なクエリを発行することでプロダクトの成長のためのKPIをモニタリングしています。

そのためAmazon Relational Database Service(RDS)に保存されているマスタデータをBigQueryに同期する処理を定期的に実行する必要があります。 先日、ワークフローエンジンであるDigdagとバルクデータローダーであるEmbulkを利用して、この処理を行うシステムを構築しました。 本記事ではどのようにしてDigdagとEmbulkを連携させたのかなどの具体的な方法を、設定ファイルを交えながら説明します。 なお、本システムが対象としているRDSのDBエンジンはAuroraですが、MySQLでも問題なく動作します。

続きを読む

開発効率を上げる!Swaggerの記法まとめ

f:id:vasilyjp:20170706190042p:plainこんにちは! バックエンドエンジニアのりほやんです。 以前、テックブログでAPIモックと仕様書を作成することができるSwaggerについてご紹介しました。 Swaggerそのものについて知りたい場合やSwaggerを実際に導入したい場合は、こちらの記事がとても参考になります。

tech.vasily.jp

本記事では、SwaggerのAPI定義を行うSwagger YAMLの記法についてまとめてみました。 使い初めはとっつきにくいSwaggerですが、この記事がSwaggerを使う方の参考になれば幸いです。

続きを読む

Embulkを利用したデータ転送基盤の構築

こんにちは。バックエンドエンジニアインターンの田島です。

VASILYでは分析にBigQueryを使用しており、MySQLのデータを毎日BigQueryに同期しています。この同期処理を行うシステムは、約2年前にRubyで書かれたもので、プロダクトの成長に伴うデータ量の増加に耐えることができなくなり始めていました。そのため、同期処理を行うシステムを一から作り直しましたので、その詳細についてご紹介します。

弊社DEVELOPERS BLOGでは以前、『インターン生がデータ転送基盤を一から設計する、VASILYバックエンドインターンの紹介』としてシステムの概要・開発の流れをご紹介しましたが、今回はシステムの詳細についてご紹介します。

f:id:vasilyjp:20170626143637j:plain (photoクレジット *1

続きを読む

初日から本番にデプロイ!VASILYフロントエンドインターンの紹介

f:id:vasilyjp:20170622145846j:plainこんにちは、フロントエンドエンジニアの茨木です。
VASILYでは通期でエンジニアインターンを募集しており、厳しい選考を突破した学生をインターン生として受け入れています。中にはインターン後選考に進んで内定を獲得するケースもあります。フロントエンドチームでも3月に来たT君が短期インターンを経てめでたく内定しました。本記事では、彼の事例をご紹介したいと思います。サマーインターンを考えている方々の参考になれば幸いです。

続きを読む

自己回帰型モデルの深層学習

初めまして、データチームの上月です。
今回はVASILYテックブログ初の論文紹介、テーマは 自己回帰型モデル(Autoregressive, AR)です。

f:id:vasilyjp:20170615175304j:plain

はじめに

VASILYではIQONの類似画像検索にAutoencoderを適用しています。
具体的にはアイテム画像で学習したAutoencoderの潜在変数を特徴量として類似画像検索を行っていますが、背景やモデルの影響を受けやすいなどの課題があります。
この問題は「潜在変数にどのような情報を持たせるか」を調整することで解決できる可能性が高く、潜在変数の分布にはdecoderの表現力が関係しています。 最近ではVAEのdecoderとしてRNNや自己回帰型モデルなどといった表現力のあるモデルを用いたり1、 decoderの後にPixelCNN2を追加することで潜在変数がもつ情報を目的にあったものにする例があります(PixelVAE3)。 そこで今回はARの中でも特に、画像と相性が良いといわれている畳み込み層がメインの 自己回帰型モデルを幾つか紹介します。

はじめに生成モデルとしてメジャーなVAE4とGAN5について触れた後にARを紹介します。


  1. Søren, M. F., Sønderby, K., Paquet, U., & Winther, O. (n.d.). Sequential Neural Models with Stochastic Layers. Retrieved from https://arxiv.org/pdf/1605.07571.pdf

  2. Oord, A. van den, Kalchbrenner, N., & Kavukcuoglu, K. (2016). Pixel Recurrent Neural Networks. Retrieved from http://arxiv.org/abs/1601.06759

  3. Gulrajani, I., Kumar, K., Ahmed, F., Taiga, A. A., Visin, F., Vazquez, D., & Courville, A. (n.d.). PIXELVAE: A LATENT VARIABLE MODEL FOR NATURAL IMAGES.

  4. Kingma, D. P., & Welling, M. (2013). Auto-Encoding Variational Bayes, (Ml), 1–14. Retrieved from http://arxiv.org/abs/1312.6114

  5. Goodfellow, I., Pouget-Abadie, J., Mirza, M., Xu, B., Warde-Farley, D., Ozair, S., … Bengio, Y. (2014). Generative Adversarial Nets. Advances in Neural Information Processing Systems 27, 2672–2680. Retrieved from http://papers.nips.cc/paper/5423-generative-adversarial-nets.pdf

続きを読む

Fashion Tech meetup vol.4を開催しました

2017年6月7日、第4回目となるFashion Tech meetupを開催しました。今回はVASILYが主催となり、バックエンドチーム、フロントエンドチーム、データチームが業務で行っている開発・運用のノウハウを発表しました。

本記事で弊社の登壇資料を公開しますので、ご参加できなかった方、Fashion Tech meetupを初めて知った方、是非ご一読ください。

続きを読む

レコメンドに画像の情報を活用する方法

データサイエンティストの中村です。 ファッションアイテムの画像から抽出した特徴量は検索以外にも利用することができます。 今回はレコメンドにおける画像特徴量の活用について、以下の3トピックを考えてみたいと思います。

  • 画像特徴量を利用したコンテンツベースレコメンド
  • モデルベース協調フィルタリングにおけるコールドスタート問題の軽減
  • 画像特徴量を利用したモデルベース協調フィルタリングの高度化
続きを読む