Research & Projects

Research Experiences

Spam Detection in User-Review Social Networks

Since Oct. 2015, I have been honored to join a group of Prof. Haojin Zhu (Google Scholar Page), led by a very nice master candidate Haizhong Zheng. Our intuition is to pinpoint fake reviews on Dianping (something like Yelp, a Chinese User-Review Social Network where users can share their reviews about many kinds of stores) posted by what we call senior sybil users. In our investigation, we find that many stores will pay to recruit users to post perfectly-designed reviews for publicity purposes. And the users they recruit tend to be more senior, because fake accounts cannot easily evade traditional detecting approaches. This kind of users may post real and irrelevant reviews in their ordinary life, and only post fake reviews when asked to. Even worse, we've found organizations which possess thousands of fake accounts. These fake accounts are maintained in a strict manner to evade detection.

Instead of creating profile and analyzing based on users, which may well fail in the presence of senior sybil users, we try to leverage the fact that because a sybil campaign requires the participation of a large number of users, there will be an abnormal campaign window in which the number of reviews rises dramatically. Thus, our approach is on the level of single comments, trying to find group behaviors from them.

We are currently targeting IEEE Symposium on Security and Privacy 2016. And we are more than honored to cooperate with Prof. Keith W. Ross on this topic.

Please feel free to contact me for more details about this project.

Acemap: Academic Search Engine & Recommendation System

Acemap is a project of Prof. Xinbing Wang. He found academic search engines like Google Scholar helps little when you want the information of more than one paper. So there is Acemap. By digging into data, we can present you with various perspectives of these papers, including topic maps, affiliation maps and more. Acemap also cooperates with Microsoft Academic, Aminer.

I've been in this group for about one year, and is now a leader of a subgroup. I've practised a lot in this project, and gained much precious experience in data crawling, data processing and website construction and maintenance. Specifically, I tried to gain some hands-on experience in website security, finding bugs like sql injection and access control.

What's Next

Since we don't have enough opportunities to learn about computer security (there's only one course: Computer Security and Cryptography), I'd like to learn more about this broad realm. In my senior year, I'd like to try something new, maybe Android security, to have a basic understanding of computer security.


Course Projects

We've finished many course projects during the first three years, and learned a lot from them. Some of them may be short-term, but we still have the chance to practice and apply what we learn.

Operating System Project: CPU Simulation

In this project, we're required to implement a CPU (program) to simulate process scheduling and page replacement, and test its performance under different combinations of page replacement algorithms, time quanta and memory sizes.

Computer Architecture Project

We've got two courses about computer architecture and multiple projects. The first one askes us to complete the code for a software simulated CPU to execute MIPS instructions. The second one askes us to write Verilog code and load the code to an FPGA board. The last one involves CUDA programming, implementing a small parallel string matching algorithm that runs on GPU's.

Embedded System Project

In this course, we learned to write C code to control the behavior of a Stellaris Cortex-M3 board, including the usage of the watchdog timer, interrupts, and UI.

Smart Car Project

In this series of courses, we are given a simple smart car and asked to perform different tasks. The first course require us to place a camera above a simple maze and write a program to guide the car to travel through it automatically. In the second one, we place one smartphone on the car, and use another one to control it by buttons, accelerometer, voice, video image and finger-drawn route.

Compiler Project

In this project, we are required to build a compiler to translate the language SmallC (a subset of C) into LLVM instructions that can run in LLVM virtual machines.

Programming Languages Project

After learning what is behind a programming language, we are required to design an interpreter for a simple functional programming language. Advanced functionalities include garbage collection, lazy evaluation and so on.

Software Engineering Project

Unfortunately, this course was compromised. The teacher who taught this course didn't really want to teach us about real software engineering. Instead, all the available topics were about computer graphics, from his lab. Thus, our group decided to learn something about how to build a real software and chose to implement a Chinese Checker game. We really learned a lot from this, including team cooperation, code documentation, simple AI and simple networking functionality.

Linux Kernel Project

In this project, we learned some basics about linux kernel programming, including compiling a kernel, writing a module, and adding changes to the task scheduler and a simple file system.

Natural Language Processing Project

We're given a lot of sentence pairs, and are asked to determine the relation between the two sentences, like restatement, cause and contrast. I decide to use CNN (Convolutional Neural Network) as the basic model, but maybe the model is overfitted, the result is not good enough :(.