KDD2022 で気になった研究

2022/08/14 - 2022/08/18 に開催される Knowledge Discovery and Data Mining (KDD) 2022 の情報が出揃ってきたので、気になった情報をメモしておく。 自分が気になるトピックは、変わらず機械学習の実応用とその周辺領域なのでそれに偏ったリストになっている。 ADS invited speaker KDD 2022 ADS Invited Speakers An overview of AWS AI/ML’s recent contributions to open source ML tools: Accelerating discovery and innovation 招待講演は確か毎回論文化されて ACM で公開されるので論文公開されたらぜひ読みたい。 Tutorias KDD 2022 Tutorials Schedule に Tutorial の情報がまとまっているが、タイトルだけでウェブサイトへのリンクが一切なく、読み手に不親切なので来年は、改善してほしい。去年はそんなことなかったので、なんとか来年はもとに戻って欲しい。 Graph-based Representation Learning for Web-scale Recommender Systems. Authors: Ahmed El-Kishky (Twitter)*; Michael Bronstein (Twitter); Ying Xiao (Twitter); Aria Haghighi (Twitter) Twitter が開催する Tutorial で、すごく面白そうなのだが全く情報が見つからなかった。Twitter Cortex にも情報が更新されていないので、しばらくしたら公開されていることを祈る。 New Frontiers of Scientific Text Mining: Tasks, Data, and Tools....

August 15, 2022 Â· Shunya Ueta
poetry show の実行結果

poetry show でパッケージ名に (!) が付与されている意味

poetry show は、poetry の設定ファイルの pyproject.tomlに記載された利用可能なパッケージ名を表示してくれる。 例えば、ターミナルで poetry install を行う前に、poetry showを行うと以下のような結果がでる。 そして、grep で上記の結果を表示させてみると 1 2 > poetry show | grep aiohttp aiohttp (!) 3.8.1 Async http client/server framework (asyncio) と パッケージ名に (!)が付与されている。 この(!)ってそもそもどんな意味なのか気になったので調べてみました。 Poetry のコードを直接読んでみると、 test_show_basic_with_not_installed_packages_non_decoratedのテストケースが今回の事例にマッチしており、わかりやすかった。 意味としては、「インストールされたパッケージに対する show コマンドを非装飾モードで結果を出力」へのテストだ。 状況としては、cachyとpendulumを poetry add して、 cachyのみを poetry install している。 1 2 3 4 5 6 7 8 9 10 poetry.package.add_dependency(Factory.create_dependency("cachy", "^0.1.0")) poetry.package.add_dependency(Factory.create_dependency("pendulum", "^2.0.0")) cachy_010 = get_package("cachy", "0.1.0") cachy_010.description = "Cachy package" pendulum_200 = get_package("pendulum", "2....

August 10, 2022 Â· Shunya Ueta
リーダーの作法 ささいなことをていねいに

「リーダーの作法」マネジメントに限らず、エンジニアとして仕事の作法について書かれた良書

リーダーの作法 ささいなことをていねいにを読み終えた。 著者は Netscape でマネージャー、Apple でディレクター、Slack でエグゼクティブを経験した Michael Lopp さんで、過去にBeing Geek や Managing Humans を書かれている。 翻訳の質も非常に高く、楽しく読めた。1 そんなにマネジメント関係を読んでいるわけではないが、HITH OUTPUT MANAGEMENT や、エンジニアのためのマネジメントキャリアパス ―テックリードから CTO までマネジメントスキル向上ガイド 同じくらい良い書籍で、学びや共感を多く感じた。 自分はマネジメントのポジションについたことはないが、仕事をしていくなかでマネジメント関係のソフトスキルや複数人でどうやってうまくリーダシップを発揮して、大きい問題を解決するかに興味があるので、良い書籍が目につくと積極的に読んで解像度をあげている。 心に響いた文章と所感 マネジメントとは、まずチームが直面している障害やメンバー間の軋轢といった情報を明らかにすることであり、さらにそうして得た情報を分析して、進むべき正しい道を見出すことである、ということでした。 マネジメントの定義として、チームの課題は他の書籍でも述べられているがメンバー間の関係性について言及しているのは確かにねという腹落ちだった。 ポジションに関わらず全ての業務で一貫して言えるのは、なにが最も ROI が高い課題かを突き止めて地道に解決していくことだな~と思える。 6 章 プロフェッショナルとしての成長を図る質問表 6 章の成長を計測するための質問表は、あらためて自分が何をやりたいのかの解像度をあげる良い質問集だったので半年や一年ごとにこの質問を更新して、定期的に見つめ直していきたい。 新しい仕事では、一刻一刻で多くを学びます。その環境に関する情報をたくさん集めているのです。チームや自分の役割、そして会社についての自分の理解を日々新たにしているのです。 新メンバーがあげるチームの違和感は、フィードバックをもらった後に一ヶ月後見直して見ると重要度が下がることがあるよねと。これは、自分も経験あるが、チームで働くうちに内部の事情を理解して、重要だけど緊急じゃないよね、実際やりたいけどコスト的に割に合わないなど課題に対しての解像度があがることで、優先順位が変わることがありました。 そういう人たちが長年にわたって私に教えてくれた重要な教訓の一つは、壁に書かれた文字より、語られるストーリーの方が重要だということです。 ここで腹落ちしたのは、あらためて人を動かすのは物語(ストーリーテリング)だということ。「なぜ」 そうなったのかってものすごく重要だなと。DesignDocs もそうですが、なぜそうなったかがわかると人間ってものすごく腹落ちして理解できるな~と 自分もドキュメントを書くときは、「なぜ」そうなったのかをきちんと書いて人を動かせる文章を書けるようになっていきたい 手厳しいフィードバックの場合は、何も見落とさないようにするためにあと 2 段階のプロセスがあります。ステップ 1:どんなに批判的なフィードバックであっても、耳を傾け、ほんの少しでも理解の糸口を探す。ほんのわずかでも?よくぞ聞いてくれました。 時には、フィードバックがあまりにも衝撃的で、理解できないこともあります。そこで、第二のステップです。ステップ 2:聞いたことを繰り返しましょう。 ここのストーリーは面白くて、図星な本質的なフィードバックを感情的に反応しそうになってしまうのをどうやって傾聴して、フィードバックを受け入れて自己を改善するかが語られていて面白かった。 リアルタイムにフィードバックし、他のプレイヤーに親切かつ教育的な方法でアドバイスを送ります。災難に直面しても冷静さを失いません。わかりやすいコミュニケーション、実証された専門知識、わかりやすく行動につながるフィードバック、そして落ち着いた性格。堅実なリーダーの性質について説明しましたが、まだ大切なことがあります。いいでしょうか、こうしたふるまいは、多くの人がやっているのをこれまで見てきました。DJ が特別なのは、常にこのようなリーダーであることです。 ゲームを通して、リーダー像がどのように振る舞うべきなのかを説明しており、非常にわかりやすかった。 リーダーシップとは、他人に見せるために選ぶ服であり、私は揺るぎない優しさを選びます。 そして、書籍の最後の文章が、まさに「リーダーの作法」という心構えであり定期的に見返したい。 全体を通して、エッセイとして語られて教訓を学べるので楽しく読めた。2 他の書籍と比較すると、リーダーとして情緒的にどう振る舞うべきかも触れている点が、個人的に読み応えがあった。 自分があらためてマネジメントのポジションにつくことがあれば読み返したくなる書籍だった。...

August 8, 2022 Â· Shunya Ueta

Search Engineering Newsletter vol.08

Search Engineering Newsletter 8 回目の配信です。 今回のイチオシは、Retty さんの検索機能をマイクロサービスとして切り出したお話と、MoT さんの勉強会資料である「Tesla におけるコンピュータビジョン技術の調査」です。 Search 検索サービスの構築 - Retty Tech Blog Retty で検索サービスをマイクロサービスとして切り出したお話。 切り出した理由としては Elasticsearch が返すレスポンスをベースにして各サービスでそのまま使われていた。だが、各サービスがこのフォーマットに依存しているせいで気軽に Elasticsearch の更新ができなかったり、レスポンスを変えるような検索改善も行うのが難しくなっていたのを起因にマイクロサービスへと切り出した。 NOTE:インタフェース設計が割り切っており、お店の id のみを返し全てのデータは検索エンジンは返さないようにしているのが良い設計だなと思いました。今までは、検索エンジンに反映されるまでリードタイムが 1 日あり、古い結果が返ることもあったのところです。実際に、検索エンジンがお店の情報管理を責任を持つのは違いますしね。 また、Go で Elasticsearch の API client として、比較を行ったり、マイクロサービスの切替時にどうやって検索結果が等しく切り出せているかを検証しつつ切り出したのは面白かったです。 Elasticsearch で個人ごとに検索結果を表示するには? ZOZOTOWN を支える検索パーソナライズ基盤アーキテクチャ - ログミー Tech 2020 年 6 月の記事で少し古いですが、ZOZO さんの検索結果をパーソナライズする機能をどのようにつくったかが紹介されています。 「新しいおうち探し」のための AI アシスト検索 〜 Yahoo!不動産の技術紹介 - Yahoo! JAPAN Tech Blog 不動産検索で、機械学習をどうやって活用しているかの紹介記事。 アイデアとして面白いなと思ったのは、NIMA1という画像の審美的美しさを採点するモデルを使って、不動産の外観画像のスコアリングを行っていた点が面白かった。 Search architecture revamp Grab が検索システムをどう刷新したか。 2021 年以前、Grab の検索アーキテクチャは、Elasticsearch をベースにしたテキストマッチングのみをサポートしていた。 課題点としては、 テキストマッチングのみが検索にヒットし、検索意図や文脈が考慮されない たとえば、「Bread(パン)」というクエリで検索した場合、昼ならパンを提供するカフェを探している可能性が高いが、朝なら朝ごはんにパンを食べるために検索を行っている可能性が高い。 Grab は複数のビジネス領域をサポートしているが、各領域の結果が効果的に混ざっていない レガシーコードベースの影響で、改修速度が遅くなっており迅速な新機能開発ができない 刷新後の検索システムは、Multi-recall という枠組みで、検索エンジンを Elasticsearch 以外に、recall を向上させる見込みで埋め込み空間やグラフベースでの Semantic Search を追加。これにより、検索品質の改善を期待している。 (SementicSearch をどう実現しているかの詳細は全く書かれていなくて残念)...

July 15, 2022 Â· Shunya Ueta

Makefile でコマンドの前に @ を付けると、コマンド自身は表示されず結果のみ表示される

Makefile を眺めているとコマンドの前に@をつけているターゲットがあり、その効果を調べてみた1。日本語での記事が無かったので記事を書いた。 以下のように、コマンドの前に @をつけたコマンドとつけていないコマンド両方を実行してみる。 1 2 3 echoing-silencing: @echo "表示されない" echo "表示される" 1 2 3 4 > make echoing-silencing 表示されない echo "表示される" 表示される なので、例えばお役立ち事例として、Makefile でターゲットの実行時に、何を行うか説明をしたい場合に @を付けるとスッキリした文をターミナルに表示することができる。 https://makefiletutorial.com/ Command Echoing/Silencing Add an @ before a command to stop it from being printed You can also run make with -s to add an @ before each line ↩︎

June 22, 2022 Â· Shunya Ueta